diff options
210 files changed, 12693 insertions, 3160 deletions
diff --git a/.guix-authorizations b/.guix-authorizations index fc52e3fc19..531ea04ea5 100644 --- a/.guix-authorizations +++ b/.guix-authorizations @@ -75,6 +75,8 @@ (;; primary: "1BA4 08C5 8BF2 0EA7 3179 635A 865D C0A3 DED9 B5D0" "E31D 9DDE EBA5 4A14 8A20 4550 DA45 97F9 47B4 1025" (name "jlicht")) + ("8141 6036 E81A 5CF7 8F80 1071 ECFC 8398 8B4E 4B9F" + (name "jonsger")) ("83B6 703A DCCA 3B69 4BCE 2DA6 E6A5 EE3C 1946 7A0D" (name "kkebreau")) ("45E5 75FA 53EA 8BD6 1BCE 0B4E 3ADC 75F0 13D6 78F9" diff --git a/doc/guix.texi b/doc/guix.texi index b7f1bc1f00..ea220fbd63 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -82,6 +82,8 @@ Copyright @copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 Alexandru-Sergiu Marton@* +Copyright @copyright{} 2020 raingloom@* +Copyright @copyright{} 2020 Daniel Brooks@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -404,7 +406,7 @@ using a different distro underneath!}. @xref{GNU Distribution}. @cindex user interfaces Guix provides a command-line package management interface (@pxref{Package Management}), tools to help with software development -(@pxref{Development}), command-line utilities for more advanced usage, +(@pxref{Development}), command-line utilities for more advanced usage (@pxref{Utilities}), as well as Scheme programming interfaces (@pxref{Programming Interface}). @cindex build daemon @@ -1397,6 +1399,11 @@ install and run it, which lifts it into the @code{guix_daemon_t} domain. At that point SELinux could not prevent it from accessing files that are allowed for processes in that domain. +You will need to relabel the store directory after all upgrades to +@file{guix-daemon}, such as after running @code{guix pull}. Assuming the +store is in @file{/gnu}, you can do this with @code{restorecon -vR /gnu}, +or by other means provided by your operating system. + We could generate a much more restrictive policy at installation time, so that only the @emph{exact} file name of the currently installed @code{guix-daemon} executable would be labelled with @@ -6834,6 +6841,18 @@ commit: @end lisp @end deftp +For Mercurial repositories, the module @code{(guix hg-download)} defines +the @code{hg-fetch} origin method and @code{hg-reference} data type for +support of the Mercurial version control system. + +@deffn {Scheme Procedure} hg-fetch @var{ref} @var{hash-algo} @var{hash} @ + [name] +Return a fixed-output derivation that fetches @var{ref}, a +@code{<hg-reference>} object. The output is expected to have recursive +hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as +the file name, or a generic name if @code{#false}. +@end deffn + @node Defining Package Variants @section Defining Package Variants @@ -14527,6 +14546,9 @@ the name of the log-in program. When set to @code{#t} in conjunction with @var{auto-login}, the user will have to press a key before the log-in shell is launched. +@item @code{clear-on-logout?} (default: @code{#t}) +When set to @code{#t}, the screen will be cleared after logout. + @item @code{mingetty} (default: @var{mingetty}) The Mingetty package to use. @@ -16848,6 +16870,101 @@ Use this to add additional options and manage shared secrets out-of-band. @end table @end deftp +@defvr {Scheme Variable} yggdrasil-service-type +The service type for connecting to the @uref{https://yggdrasil-network.github.io/, +Yggdrasil network}, an early-stage implementation of a fully end-to-end +encrypted IPv6 network. + +@quotation +Yggdrasil provides name-independent routing with cryptographically generated +addresses. Static addressing means you can keep the same address as long as +you want, even if you move to a new location, or generate a new address (by +generating new keys) whenever you want. +@uref{https://yggdrasil-network.github.io/2018/07/28/addressing.html} +@end quotation + +Pass it a value of @code{yggdrasil-configuration} to connect it to public +peers and/or local peers. + +Here is an example using public peers and a static address. The static +signing and encryption keys are defined in @file{/etc/yggdrasil-private.conf} +(the default value for @code{config-file}). + +@lisp +;; part of the operating-system declaration +(service yggdrasil-service-type + (yggdrasil-configuration + (autoconf? #f) ;; use only the public peers + (json-config + ;; choose one from + ;; https://github.com/yggdrasil-network/public-peers + '((peers . #("tcp://1.2.3.4:1337")))) + ;; /etc/yggdrasil-private.conf is the default value for config-file + )) +@end lisp +@example +# sample content for /etc/yggdrasil-private.conf +@{ + # Your public encryption key. Your peers may ask you for this to put + # into their AllowedEncryptionPublicKeys configuration. + EncryptionPublicKey: 378dc5... + + # Your private encryption key. DO NOT share this with anyone! + EncryptionPrivateKey: 0777... + + # Your public signing key. You should not ordinarily need to share + # this with anyone. + SigningPublicKey: e1664... + + # Your private signing key. DO NOT share this with anyone! + SigningPrivateKey: 0589d... +@} +@end example +@end defvr + +@deftp {Data Type} yggdrasil-configuration +Data type representing the configuration of Yggdrasil. + +@table @asis +@item @code{package} (default: @code{yggdrasil}) +Package object of Yggdrasil. + +@item @code{json-config} (default: @code{'()}) +Contents of @file{/etc/yggdrasil.conf}. Will be merged with +@file{/etc/yggdrasil-private.conf}. Note that these settings are stored in +the Guix store, which is readable to all users. @strong{Do not store your +private keys in it}. See the output of @code{yggdrasil -genconf} for a +quick overview of valid keys and their default values. + +@item @code{autoconf?} (default: @code{#f}) +Whether to use automatic mode. Enabling it makes Yggdrasil use adynamic IP +and peer with IPv6 neighbors. + +@item @code{log-level} (default: @code{'info}) +How much detail to include in logs. Use @code{'debug} for more detail. + +@item @code{log-to} (default: @code{'stdout}) +Where to send logs. By default, the service logs standard output to +@file{/var/log/yggdrasil.log}. The alternative is @code{'syslog}, which +sends output to the running syslog service. + +@item @code{config-file} (default: @code{"/etc/yggdrasil-private.conf"}) +What HJSON file to load sensitive data from. This is where private keys +should be stored, which are necessary to specify if you don't want a +randomized address after each restart. Use @code{#f} to disable. Options +defined in this file take precedence over @code{json-config}. Use the output +of @code{yggdrasil -genconf} as a starting point. To configure a static +address, delete everything except these options: + +@itemize +@item @code{EncryptionPublicKey} +@item @code{EncryptionPrivateKey} +@item @code{SigningPublicKey} +@item @code{SigningPrivateKey} +@end itemize +@end table +@end deftp + @node Unattended Upgrades @subsection Unattended Upgrades @@ -17386,16 +17503,17 @@ CUPS service will generate a self-signed certificate if needed, for secure connections to the print server. Suppose you want to enable the Web interface of CUPS and also add -support for Epson printers @i{via} the @code{escpr} package and for HP -printers @i{via} the @code{hplip-minimal} package. You can do that directly, -like this (you need to use the @code{(gnu packages cups)} module): +support for Epson printers @i{via} the @code{epson-inkjet-printer-escpr} +package and for HP printers @i{via} the @code{hplip-minimal} package. +You can do that directly, like this (you need to use the +@code{(gnu packages cups)} module): @lisp (service cups-service-type (cups-configuration (web-interface? #t) (extensions - (list cups-filters escpr hplip-minimal)))) + (list cups-filters epson-inkjet-printer-escpr hplip-minimal)))) @end lisp Note: If you wish to use the Qt5 based GUI which comes with the hplip @@ -17424,7 +17542,7 @@ Available @code{cups-configuration} fields are: The CUPS package. @end deftypevr -@deftypevr {@code{cups-configuration} parameter} package-list extensions +@deftypevr {@code{cups-configuration} parameter} package-list extensions (default: @code{(list epson-inkjet-printer-escpr hplip-minimal foomatic-filters splix)}) Drivers and other extensions to the CUPS package. @end deftypevr @@ -22072,9 +22190,10 @@ Defaults to @samp{""}. @end deftypevr @deftypevr {@code{zabbix-front-end-configuration} parameter} string db-secret-file -Secret file which will be appended to @file{zabbix.conf.php} file. This -file contains credentials for use by Zabbix front-end. You are expected -to create it manually. +Secret file containing the credentials for the Zabbix front-end. The value +must be a local file name, not a G-expression. You are expected to create +this file manually. Its contents will be copied into @file{zabbix.conf.php} +as the value of @code{$DB['PASSWORD']}. Defaults to @samp{""}. @@ -24791,14 +24910,18 @@ Defaults to @samp{tun}. @end deftypevr -@deftypevr {@code{openvpn-client-configuration} parameter} string ca +If you do not have some of these files (eg.@: you use a username and +password), you can disable any of the following three fields by setting +it to @code{'disabled}. + +@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr {@code{openvpn-client-configuration} parameter} string cert +@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -24806,7 +24929,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr {@code{openvpn-client-configuration} parameter} string key +@deftypevr {@code{openvpn-client-configuration} parameter} maybe-string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -24942,14 +25065,18 @@ Defaults to @samp{tun}. @end deftypevr -@deftypevr {@code{openvpn-server-configuration} parameter} string ca +If you do not have some of these files (eg.@: you use a username and +password), you can disable any of the following three fields by setting +it to @code{'disabled}. + +@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string ca The certificate authority to check connections against. Defaults to @samp{"/etc/openvpn/ca.crt"}. @end deftypevr -@deftypevr {@code{openvpn-server-configuration} parameter} string cert +@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string cert The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}. @@ -24957,7 +25084,7 @@ Defaults to @samp{"/etc/openvpn/client.crt"}. @end deftypevr -@deftypevr {@code{openvpn-server-configuration} parameter} string key +@deftypevr {@code{openvpn-server-configuration} parameter} maybe-string key The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}. @@ -29126,18 +29253,18 @@ the password from can also be specified, and this is more secure. A file containing the password to use when connecting to the coordinator. -@item @code{systems} (default: @var{#f}) +@item @code{systems} (default: @code{#f}) The systems for which this agent should fetch builds. The agent process will use the current system it's running on as the default. @item @code{max-parallel-builds} (default: @code{1}) The number of builds to perform in parallel. -@item @code{derivation-substitute-urls} (default: @code{1}) +@item @code{derivation-substitute-urls} (default: @code{#f}) URLs from which to attempt to fetch substitutes for derivations, if the derivations aren't already available. -@item @code{non-derivation-substitute-urls} (default: @code{1}) +@item @code{non-derivation-substitute-urls} (default: @code{#f}) URLs from which to attempt to fetch substitutes for build inputs, if the input store items aren't already available. @@ -30909,11 +31036,27 @@ a value. Docker images are built to contain exactly what they need, so the @option{--image-size} option is ignored in the case of @code{docker-image}. +@cindex disk-image, creating disk images The @code{disk-image} command can produce various image types. The -image type can be selected using the @command{--image-type} option. It -defaults to @code{raw}. When its value is @code{iso9660}, the +image type can be selected using the @option{--image-type} option. It +defaults to @code{raw}. When its value is @code{iso9660}, the @option{--label} option can be used to specify a volume ID with -@code{disk-image}. +@code{disk-image}. By default, the root file system of a disk image is +mounted non-volatile; the @option{--volatile} option can be provided to +make it volatile instead. When using @code{disk-image}, the bootloader +installed on the generated image is taken from the provided +@code{operating-system} definition. The following example demonstrates +how to generate an image that uses the @code{grub-efi-bootloader} +bootloader and boot it with QEMU: + +@example +image=$(guix system disk-image --image-type=qcow2 \ + gnu/system/examples/lightweight-desktop.tmpl) +cp $image /tmp/my-image.qcow2 +chmod +w /tmp/my-image.qcow2 +qemu-system-x86_64 -enable-kvm -hda /tmp/my-image.qcow2 -m 1000 \ + -bios $(guix build ovmf)/share/firmware/ovmf_x64.bin +@end example When using the @code{raw} image type, a raw disk image is produced; it can be copied as is to a USB stick, for instance. Assuming @@ -30927,10 +31070,17 @@ the image to it using the following command: The @code{--list-image-types} command lists all the available image types. +@cindex vm-image, creating virtual machine images When using @code{vm-image}, the returned image is in qcow2 format, which -the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, -for more information on how to run the image in a virtual machine. - +the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for +more information on how to run the image in a virtual machine. The +@code{grub-bootloader} bootloader is always used independently of what +is declared in the @code{operating-system} file passed as argument. +This is to make it easier to work with QEMU, which uses the SeaBIOS BIOS +by default, expecting a bootloader to be installed in the Master Boot +Record (MBR). + +@cindex docker-image, creating docker images When using @code{docker-image}, a Docker image is produced. Guix builds the image from scratch, not from a pre-existing Docker base image. As a result, it contains @emph{exactly} what you define in the operating diff --git a/etc/snippets/text-mode/guix-commit-message-add-cl-package b/etc/snippets/text-mode/guix-commit-message-add-cl-package new file mode 100644 index 0000000000..b0f7ef65e3 --- /dev/null +++ b/etc/snippets/text-mode/guix-commit-message-add-cl-package @@ -0,0 +1,13 @@ +# -*- mode: snippet -*- +# name: guix-commit-message-add-cl-package +# key: addcl +# condition: git-commit-mode +# -- +gnu: Add ${1:`(with-temp-buffer + (magit-git-wash #'magit-diff-wash-diffs + "diff" "--staged") + (beginning-of-buffer) + (when (search-forward "+(define-public " nil 'noerror) + (thing-at-point 'sexp 'no-properties)))`}. + +* `(car (magit-staged-files))` (${1:$(replace-regexp-in-string (rx line-start "sbcl" (optional "-cl")) "cl" yas-text)}, ${1:$(replace-regexp-in-string "^sbcl" "ecl" yas-text)}, $1): New variables.
\ No newline at end of file diff --git a/etc/snippets/text-mode/guix-commit-message-add-package b/etc/snippets/text-mode/guix-commit-message-add-package index 0dff2cbcf5..e54a06de7e 100644 --- a/etc/snippets/text-mode/guix-commit-message-add-package +++ b/etc/snippets/text-mode/guix-commit-message-add-package @@ -7,7 +7,7 @@ gnu: Add ${1:`(with-temp-buffer (magit-git-wash #'magit-diff-wash-diffs "diff" "--staged") (beginning-of-buffer) - (when (search-forward "(define-public " nil 'noerror) + (when (search-forward "+(define-public " nil 'noerror) (thing-at-point 'sexp 'no-properties)))`}. * `(car (magit-staged-files))` ($1): New variable.
\ No newline at end of file diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm index 2eebb8e9d9..6d7352ddd2 100644 --- a/gnu/bootloader.scm +++ b/gnu/bootloader.scm @@ -22,6 +22,8 @@ (define-module (gnu bootloader) #:use-module (guix discovery) + #:use-module (guix gexp) + #:use-module (guix profiles) #:use-module (guix records) #:use-module (guix ui) #:use-module (srfi srfi-1) @@ -66,7 +68,9 @@ bootloader-configuration-additional-configuration %bootloaders - lookup-bootloader-by-name)) + lookup-bootloader-by-name + + efi-bootloader-chain)) ;;; @@ -227,3 +231,122 @@ record." (eq? name (bootloader-name bootloader))) (force %bootloaders)) (leave (G_ "~a: no such bootloader~%") name))) + +(define (efi-bootloader-profile files bootloader-package hooks) + "Creates a profile with BOOTLOADER-PACKAGE and a directory collection/ with +links to additional FILES from the store. This collection is meant to be used +by the bootloader installer. + +FILES is a list of file or directory names from the store, which will be +symlinked into the collection/ directory. If a directory name ends with '/', +then the directory content instead of the directory itself will be symlinked +into the collection/ directory. + +FILES may contain file like objects produced by functions like plain-file, +local-file, etc., or package contents produced with file-append. + +HOOKS lists additional hook functions to modify the profile." + (define (bootloader-collection manifest) + (define build + (with-imported-modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26)) + #~(begin + (use-modules ((guix build utils) + #:select (mkdir-p strip-store-file-name)) + ((ice-9 ftw) + #:select (scandir)) + ((srfi srfi-1) + #:select (append-map every remove)) + ((srfi srfi-26) + #:select (cut))) + (define (symlink-to file directory transform) + "Creates a symlink to FILE named (TRANSFORM FILE) in DIRECTORY." + (symlink file (string-append directory "/" (transform file)))) + (define (directory-content directory) + "Creates a list of absolute path names inside DIRECTORY." + (map (lambda (name) + (string-append directory name)) + (or (scandir directory (lambda (name) + (not (member name '("." ".."))))) + '()))) + (define name-ends-with-/? (cut string-suffix? "/" <>)) + (define (name-is-store-entry? name) + "Return #t if NAME is a direct store entry and nothing inside." + (not (string-index (strip-store-file-name name) #\/))) + (let* ((collection (string-append #$output "/collection")) + (files '#$files) + (directories (filter name-ends-with-/? files)) + (names-from-directories + (append-map (lambda (directory) + (directory-content directory)) + directories)) + (names (append names-from-directories + (remove name-ends-with-/? files)))) + (mkdir-p collection) + (if (every file-exists? names) + (begin + (for-each (lambda (name) + (symlink-to name collection + (if (name-is-store-entry? name) + strip-store-file-name + basename))) + names) + #t) + #f))))) + + (gexp->derivation "bootloader-collection" + build + #:local-build? #t + #:substitutable? #f + #:properties + `((type . profile-hook) + (hook . bootloader-collection)))) + + (profile (content (packages->manifest (list bootloader-package))) + (name "bootloader-profile") + (hooks (append (list bootloader-collection) hooks)) + (locales? #f) + (allow-collisions? #f) + (relative-symlinks? #f))) + +(define* (efi-bootloader-chain files + final-bootloader + #:key + (hooks '()) + installer) + "Define a bootloader chain with FINAL-BOOTLOADER as the final bootloader and +certain directories and files from the store given in the list of FILES. + +FILES may contain file like objects produced by functions like plain-file, +local-file, etc., or package contents produced with file-append. They will be +collected inside a directory collection/ inside a generated bootloader profile, +which will be passed to the INSTALLER. + +If a directory name in FILES ends with '/', then the directory content instead +of the directory itself will be symlinked into the collection/ directory. + +The procedures in the HOOKS list can be used to further modify the bootloader +profile. It is possible to pass a single function instead of a list. + +If the INSTALLER argument is used, then this function will be called to install +the bootloader. Otherwise the installer of the FINAL-BOOTLOADER will be called." + (let* ((final-installer (or installer + (bootloader-installer final-bootloader))) + (profile (efi-bootloader-profile files + (bootloader-package final-bootloader) + (if (list? hooks) + hooks + (list hooks))))) + (bootloader + (inherit final-bootloader) + (package profile) + (installer + #~(lambda (bootloader target mount-point) + (#$final-installer bootloader target mount-point) + (copy-recursively + (string-append bootloader "/collection") + (string-append mount-point target) + #:follow-symlinks? #t + #:log (%make-void-port "w"))))))) diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm index 0899fab61f..af7b7561ff 100644 --- a/gnu/bootloader/grub.scm +++ b/gnu/bootloader/grub.scm @@ -573,21 +573,24 @@ fi~%")))) (define install-grub-efi #~(lambda (bootloader efi-dir mount-point) - ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the - ;; system whose root is mounted at MOUNT-POINT. - (let ((grub-install (string-append bootloader "/sbin/grub-install")) - (install-dir (string-append mount-point "/boot")) - ;; When installing Guix, it's common to mount EFI-DIR below - ;; MOUNT-POINT rather than /boot/efi on the live image. - (target-esp (if (file-exists? (string-append mount-point efi-dir)) - (string-append mount-point efi-dir) - efi-dir))) - ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or - ;; root partition. - (setenv "GRUB_ENABLE_CRYPTODISK" "y") - (invoke/quiet grub-install "--boot-directory" install-dir - "--bootloader-id=Guix" - "--efi-directory" target-esp)))) + ;; There is nothing useful to do when called in the context of a disk + ;; image generation. + (when efi-dir + ;; Install GRUB onto the EFI partition mounted at EFI-DIR, for the + ;; system whose root is mounted at MOUNT-POINT. + (let ((grub-install (string-append bootloader "/sbin/grub-install")) + (install-dir (string-append mount-point "/boot")) + ;; When installing Guix, it's common to mount EFI-DIR below + ;; MOUNT-POINT rather than /boot/efi on the live image. + (target-esp (if (file-exists? (string-append mount-point efi-dir)) + (string-append mount-point efi-dir) + efi-dir))) + ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or + ;; root partition. + (setenv "GRUB_ENABLE_CRYPTODISK" "y") + (invoke/quiet grub-install "--boot-directory" install-dir + "--bootloader-id=Guix" + "--efi-directory" target-esp))))) (define (install-grub-efi-netboot subdir) "Define a grub-efi-netboot bootloader installer for installation in SUBDIR, diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm new file mode 100644 index 0000000000..d65df09f37 --- /dev/null +++ b/gnu/build/chromium-extension.scm @@ -0,0 +1,192 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu build chromium-extension) + #:use-module (gcrypt base16) + #:use-module ((gcrypt hash) #:prefix hash:) + #:use-module (ice-9 iconv) + #:use-module (guix gexp) + #:use-module (guix packages) + #:use-module (gnu packages base) + #:use-module (gnu packages check) + #:use-module (gnu packages chromium) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages tls) + #:use-module (gnu packages xorg) + #:use-module (guix build-system trivial) + #:export (make-chromium-extension)) + +;;; Commentary: +;;; +;;; Tools to deal with Chromium extensions. +;;; +;;; Code: + +(define (make-signing-key seed) + "Return a derivation for a deterministic PKCS #8 private key using SEED." + + (define sha256sum + (bytevector->base16-string (hash:sha256 (string->bytevector seed "UTF-8")))) + + ;; certtool.c wants a 56 byte seed for a 2048 bit key. + (define size 2048) + (define normalized-seed (string-take sha256sum 56)) + + (computed-file (string-append seed "-signing-key.pem") + #~(system* #$(file-append gnutls "/bin/certtool") + "--generate-privkey" + "--key-type=rsa" + "--pkcs8" + ;; Use the provable FIPS-PUB186-4 algorithm for + ;; deterministic results. + "--provable" + "--password=" + "--no-text" + (string-append "--bits=" #$(number->string size)) + (string-append "--seed=" #$normalized-seed) + "--outfile" #$output) + #:local-build? #t)) + +(define* (make-crx signing-key package #:optional (package-output "out")) + "Create a signed \".crx\" file from the unpacked Chromium extension residing +in PACKAGE-OUTPUT of PACKAGE. The extension will be signed with SIGNING-KEY." + (define name (package-name package)) + (define version (package-version package)) + + (with-imported-modules '((guix build utils)) + (computed-file + (string-append name "-" version ".crx") + #~(begin + ;; This is not great. We pull Xorg and Chromium just to Zip and + ;; sign an extension. This should be implemented with something + ;; lighter. (TODO: where is the CRXv3 documentation..?) + (use-modules (guix build utils)) + (let ((chromium #$(file-append ungoogled-chromium "/bin/chromium")) + (xvfb #$(file-append xorg-server "/bin/Xvfb")) + (packdir "/tmp/extension")) + (mkdir-p (dirname packdir)) + (copy-recursively (ungexp package package-output) packdir) + (system (string-append xvfb " :1 &")) + (setenv "DISPLAY" ":1") + (sleep 2) ;give Xorg some time to initialize... + ;; Chromium stores the current time in the .crx Zip archive. + ;; Use a fixed timestamp for deterministic behavior. + ;; FIXME (core-updates): faketime is missing an absolute reference + ;; to 'date', hence the need to set PATH. + (setenv "PATH" #$(file-append coreutils "/bin")) + (invoke #$(file-append libfaketime "/bin/faketime") + "2000-01-01 00:00:00" + chromium + "--user-data-dir=/tmp/signing-profile" + (string-append "--pack-extension=" packdir) + (string-append "--pack-extension-key=" #$signing-key)) + (copy-file (string-append packdir ".crx") #$output))) + #:local-build? #t))) + +(define* (crx->chromium-json crx version) + "Return a derivation that creates a Chromium JSON settings file for the +extension given as CRX. VERSION is used to signify the CRX version, and +must match the version listed in the extension manifest.json." + ;; See chrome/browser/extensions/external_provider_impl.cc and + ;; extensions/common/extension.h for documentation on the JSON format. + (computed-file "extension.json" + #~(call-with-output-file #$output + (lambda (port) + (format port "{ + \"external_crx\": \"~a\", + \"external_version\": \"~a\" +} +" + #$crx #$version))) + #:local-build? #t)) + + +(define (signing-key->public-der key) + "Return a derivation for a file containing the public key of KEY in DER +format." + (computed-file "der" + #~(system* #$(file-append gnutls "/bin/certtool") + "--load-privkey" #$key + "--pubkey-info" + "--outfile" #$output + "--outder") + #:local-build? #t)) + +(define (chromium-json->profile-object json signing-key) + "Return a derivation that installs JSON to the directory searched by +Chromium, using a file name (aka extension ID) derived from SIGNING-KEY." + (define der (signing-key->public-der signing-key)) + + (with-extensions (list guile-gcrypt) + (with-imported-modules '((guix build utils)) + (computed-file + "chromium-extension" + #~(begin + (use-modules (guix build utils) + (gcrypt base16) + (gcrypt hash)) + (define (base16-string->chromium-base16 str) + ;; Translate STR, a hexadecimal string, to a Chromium-style + ;; representation using the letters a-p (where a=0, p=15). + (define s1 "0123456789abcdef") + (define s2 "abcdefghijklmnop") + (let loop ((chars (string->list str)) + (converted '())) + (if (null? chars) + (list->string (reverse converted)) + (loop (cdr chars) + (cons (string-ref s2 (string-index s1 (car chars))) + converted))))) + + (let* ((checksum (bytevector->base16-string (file-sha256 #$der))) + (file-name (base16-string->chromium-base16 + (string-take checksum 32))) + (extension-directory (string-append #$output + "/share/chromium/extensions"))) + (mkdir-p extension-directory) + (symlink #$json (string-append extension-directory "/" + file-name ".json")))) + #:local-build? #t)))) + +(define* (make-chromium-extension p #:optional (output "out")) + "Create a Chromium extension from package P and return a package that, +when installed, will make the extension contained in P available as a +Chromium browser extension. OUTPUT specifies which output of P to use." + (let* ((pname (package-name p)) + (version (package-version p)) + (signing-key (make-signing-key pname))) + (package + (inherit p) + (name (string-append pname "-chromium")) + (source #f) + (build-system trivial-build-system) + (native-inputs '()) + (inputs + `(("extension" ,(chromium-json->profile-object + (crx->chromium-json (make-crx signing-key p output) + version) + signing-key)))) + (propagated-inputs '()) + (outputs '("out")) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (copy-recursively (assoc-ref %build-inputs "extension") + (assoc-ref %outputs "out")))))))) diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 8ec8eac896..b762e82ad2 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 David C. Trudgian <dave@trudgian.net> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; @@ -218,6 +218,58 @@ if DEVICE does not contain an linux-swap file system." "Return the label of Linux-swap superblock SBLOCK as a string." (null-terminated-latin1->string (sub-bytevector sblock (+ 1024 4 4 4 16) 16))) + + +;;; +;;; Bcachefs file systems. +;;; + +;; <https://evilpiepirate.org/git/bcachefs-tools.git/tree/libbcachefs/bcachefs_format.h> + +(define-syntax %bcachefs-endianness + ;; Endianness of bcachefs file systems. + (identifier-syntax (endianness little))) + +(define (bcachefs-superblock? sblock) + "Return #t when SBLOCK is an bcachefs superblock." + (bytevector=? (sub-bytevector sblock 24 16) + #vu8(#xc6 #x85 #x73 #xf6 #x4e #x1a #x45 #xca + #x82 #x65 #xf5 #x7f #x48 #xba #x6d #x81))) + +(define (read-bcachefs-superblock device) + "Return the raw contents of DEVICE's bcachefs superblock as a bytevector, or #f +if DEVICE does not contain a bcachefs file system." + ;; We completely ignore the back-up superblock & any checksum errors. + ;; Superblock field names, with offset & length respectively, in bytes: + ;; 0 16 bch_csum + ;; 16 8 version + ;; 24 16 magic + ;; 40 16 uuid ← ‘internal UUID’, you probably don't want this + ;; 56 16 user_uuid ← ‘external UUID’, the one by which to mount + ;; 72 32 label + ;; … there are more & the superblock is extensible, but we don't care yet. + (read-superblock device 4096 104 bcachefs-superblock?)) + +(define (bcachefs-superblock-external-uuid sblock) + "Return the external UUID of bcachefs superblock SBLOCK as a 16-byte +bytevector." + (sub-bytevector sblock 56 16)) + +(define (bcachefs-superblock-volume-name sblock) + "Return the volume name of SBLOCK as a string of at most 32 characters, or +#f if SBLOCK has no volume name." + (null-terminated-latin1->string (sub-bytevector sblock 72 32))) + +(define (check-bcachefs-file-system device) + "Return the health of a bcachefs file system on DEVICE." + (match (status:exit-val + (apply system* "bcachefs" "fsck" "-p" "-v" + ;; Make each multi-device member a separate argument. + (string-split device #\:))) + (0 'pass) + (1 'errors-corrected) + (2 'reboot-required) + (_ 'fatal-error))) ;;; @@ -638,6 +690,8 @@ partition field reader that returned a value." ext2-superblock-volume-name) (partition-field-reader read-linux-swap-superblock linux-swap-superblock-volume-name) + (partition-field-reader read-bcachefs-superblock + bcachefs-superblock-volume-name) (partition-field-reader read-btrfs-superblock btrfs-superblock-volume-name) (partition-field-reader read-fat32-superblock @@ -656,6 +710,8 @@ partition field reader that returned a value." ext2-superblock-uuid) (partition-field-reader read-linux-swap-superblock linux-swap-superblock-uuid) + (partition-field-reader read-bcachefs-superblock + bcachefs-superblock-external-uuid) (partition-field-reader read-btrfs-superblock btrfs-superblock-uuid) (partition-field-reader read-fat32-superblock @@ -763,6 +819,7 @@ containing ':/')." (define check-procedure (cond ((string-prefix? "ext" type) check-ext2-file-system) + ((string-prefix? "bcachefs" type) check-bcachefs-file-system) ((string-prefix? "btrfs" type) check-btrfs-file-system) ((string-suffix? "fat" type) check-fat-file-system) ((string-prefix? "jfs" type) check-jfs-file-system) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 32e3536039..bfaac9ec1f 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> ;;; @@ -110,6 +111,58 @@ OPTION doesn't appear in ARGUMENTS." (substring arg (+ 1 (string-index arg #\=))))) arguments))) +(define (resume-if-hibernated device) + "Resume from hibernation if possible. This is safe ONLY if no on-disk file +systems have been mounted; calling it later risks severe file system corruption! +See <Documentation/swsusp.txt> in the kernel source directory. This is the +caller's responsibility, as is catching exceptions if resumption was supposed to +happen but didn't. + +Resume only from DEVICE if it's a string. If it's #f, use the kernel's default +hibernation device (CONFIG_PM_STD_PARTITION). Never return if resumption +succeeds. Return nothing otherwise. The kernel logs any details to dmesg." + + (define (string->major:minor string) + "Return a string with MAJOR:MINOR numbers of the device specified by STRING" + + ;; The "resume=" kernel command-line option always provides a string, which + ;; can represent a device, a UUID, or a label. Check for all three. + (let* ((spec (cond ((string-prefix? "/" string) string) + ((uuid string) => identity) + (else (file-system-label string)))) + ;; XXX The kernel's swsusp_resume_can_resume() waits if ‘resumewait’ + ;; is found on the command line; our canonicalize-device-spec gives + ;; up after 20 seconds. We could emulate the former by looping… + (device (canonicalize-device-spec spec)) + (rdev (stat:rdev (stat device))) + ;; For backwards compatibility, device numbering is a baroque affair. + ;; This is the full 64-bit scheme used by glibc's <sys/sysmacros.h>. + (major (logior (ash (logand #x00000000000fff00 rdev) -8) + (ash (logand #xfffff00000000000 rdev) -32))) + (minor (logior (logand #x00000000000000ff rdev) + (ash (logand #x00000ffffff00000 rdev) -12)))) + (format #f "~a:~a" major minor))) + + ;; Write the resume DEVICE to this magic file, using the MAJOR:MINOR device + ;; numbers if possible. The kernel will immediately try to resume from it. + (let ((resume "/sys/power/resume")) + (when (file-exists? resume) ; this kernel supports hibernation + ;; Honour the kernel's default device (only) if none other was given. + (let ((major:minor (if device + (or (false-if-exception (string->major:minor + device)) + ;; We can't parse it. Maybe the kernel can. + device) + (let ((default (call-with-input-file resume + read-line))) + ;; Don't waste time echoing 0:0 to /sys. + (if (string=? "0:0" default) + #f + default))))) + (when major:minor + (call-with-output-file resume ; may throw an ‘Invalid argument’ + (cut display major:minor <>))))))) ; may never return + (define* (make-disk-device-nodes base major #:optional (minor 0)) "Make the block device nodes around BASE (something like \"/root/dev/sda\") with the given MAJOR number, starting with MINOR." @@ -507,6 +560,12 @@ upon error." (load-linux-modules-from-directory linux-modules linux-module-directory) + (unless (member "noresume" args) + ;; Try to resume immediately after loading (storage) modules + ;; but before any on-disk file systems have been mounted. + (false-if-exception ; failure is not fatal + (resume-if-hibernated (find-long-option "resume" args)))) + (when keymap-file (let ((status (system* "loadkeys" keymap-file))) (unless (zero? status) diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm index ea7de58553..99796adba6 100644 --- a/gnu/build/linux-initrd.scm +++ b/gnu/build/linux-initrd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2015, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,8 +39,9 @@ #:key (compress? #t) (gzip "gzip")) - "Write a cpio archive containing DIRECTORY to file OUTPUT. When -COMPRESS? is true, compress it using GZIP. On success, return OUTPUT." + "Write a cpio archive containing DIRECTORY to file OUTPUT, with reset +timestamps in the archive. When COMPRESS? is true, compress it using GZIP. +On success, return OUTPUT." ;; Note: as per `ramfs-rootfs-initramfs.txt', always add directory entries ;; before the files that are inside of it: "The Linux kernel cpio @@ -141,12 +142,6 @@ REFERENCES-GRAPHS." (symlink (string-append guile "/bin/guile") "proc/self/exe") (readlink "proc/self/exe") - ;; Reset the timestamps of all the files that will make it in the initrd. - (for-each (lambda (file) - (unless (eq? 'symlink (stat:type (lstat file))) - (utime file 0 0 0 0))) - (find-files "." ".*")) - (write-cpio-archive output "." #:gzip gzip)) ;; Make sure directories are writable so we can delete files. diff --git a/gnu/ci.scm b/gnu/ci.scm index bf9952a450..a5afef91ae 100644 --- a/gnu/ci.scm +++ b/gnu/ci.scm @@ -57,6 +57,7 @@ #:use-module (gnu system install) #:use-module (gnu system images hurd) #:use-module (gnu system images pine64) + #:use-module (gnu system images pinebook-pro) #:use-module (gnu tests) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -205,7 +206,8 @@ SYSTEM." (define %guix-system-images (list hurd-barebones-qcow2-image - pine64-barebones-raw-image)) + pine64-barebones-raw-image + pinebook-pro-barebones-raw-image)) (define (image-jobs store system) "Return a list of jobs that build images for SYSTEM." diff --git a/gnu/installer/newt/parameters.scm b/gnu/installer/newt/parameters.scm index 95112b5780..8fb1aa3abb 100644 --- a/gnu/installer/newt/parameters.scm +++ b/gnu/installer/newt/parameters.scm @@ -20,6 +20,7 @@ #:use-module (gnu installer proxy) #:use-module (gnu installer steps) #:use-module (gnu installer newt page) + #:use-module (guix build syscalls) #:use-module (guix i18n) #:use-module (ice-9 match) #:use-module (newt) @@ -40,7 +41,8 @@ empty string, proxy usage will be disabled.") (let* ((items (list (cons (G_ "Change keyboard layout") keyboard-layout-selection) - (cons (G_ "Configure HTTP proxy") run-proxy-page))) + (cons (G_ "Configure HTTP proxy") run-proxy-page) + (cons (G_ "Reboot") reboot))) (result (run-listbox-selection-page #:info-text (G_ "Please choose one of the following parameters or \ diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index 8561eb1ecf..81cf68d782 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -64,7 +64,7 @@ are being formatted." ;; of device names of the user partitions that will be formatted. (run-confirmation-page (format #f (G_ "We are about to write the configured \ partition table to the disk and format the partitions listed below. Their \ -data will be lost. Do you wish to continue?~%~{ - ~a~%~}") +data will be lost. Do you wish to continue?~%~%~{ - ~a~%~}") (map user-partition-file-name (filter user-partition-need-formatting? partitions))) diff --git a/gnu/local.mk b/gnu/local.mk index 2301a04d2f..14b626c600 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -111,6 +111,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/boost.scm \ %D%/packages/bootloaders.scm \ %D%/packages/bootstrap.scm \ + %D%/packages/browser-extensions.scm \ %D%/packages/build-tools.scm \ %D%/packages/busybox.scm \ %D%/packages/c.scm \ @@ -651,12 +652,14 @@ GNU_SYSTEM_MODULES = \ \ %D%/system/images/hurd.scm \ %D%/system/images/pine64.scm \ + %D%/system/images/pinebook-pro.scm \ \ %D%/machine.scm \ \ %D%/build/accounts.scm \ %D%/build/activation.scm \ %D%/build/bootloader.scm \ + %D%/build/chromium-extension.scm \ %D%/build/cross-toolchain.scm \ %D%/build/image.scm \ %D%/build/file-systems.scm \ @@ -844,7 +847,6 @@ dist_patch_DATA = \ %D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-mingw-w64-timestamp.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \ - %D%/packages/patches/bitcoin-core-python-compat.patch \ %D%/packages/patches/blender-2.79-gcc8.patch \ %D%/packages/patches/blender-2.79-gcc9.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ @@ -933,6 +935,7 @@ dist_patch_DATA = \ %D%/packages/patches/ecl-16-format-directive-limit.patch \ %D%/packages/patches/ecl-16-ignore-stderr-write-error.patch \ %D%/packages/patches/ecl-16-libffi.patch \ + %D%/packages/patches/eigen-remove-openmp-error-counting.patch \ %D%/packages/patches/eigen-stabilise-sparseqr-test.patch \ %D%/packages/patches/einstein-build.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ @@ -989,6 +992,7 @@ dist_patch_DATA = \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ + %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch \ %D%/packages/patches/ganeti-deterministic-manual.patch \ %D%/packages/patches/ganeti-disable-version-symlinks.patch \ %D%/packages/patches/ganeti-drbd-compat.patch \ @@ -1011,6 +1015,8 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-4.9-libsanitizer-ustat.patch \ %D%/packages/patches/gcc-libsanitizer-ustat.patch \ %D%/packages/patches/gcc-4.9-libsanitizer-mode-size.patch \ + %D%/packages/patches/gcc-6-fix-isl-includes.patch \ + %D%/packages/patches/gcc-6-fix-buffer-size.patch \ %D%/packages/patches/gcc-6-libsanitizer-mode-size.patch \ %D%/packages/patches/gcc-7-libsanitizer-mode-size.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ @@ -1308,6 +1314,7 @@ dist_patch_DATA = \ %D%/packages/patches/lrcalc-includes.patch \ %D%/packages/patches/lrzip-CVE-2017-8842.patch \ %D%/packages/patches/lsh-fix-x11-forwarding.patch \ + %D%/packages/patches/lsof-fatal-test-failures.patch \ %D%/packages/patches/lua-CVE-2014-5461.patch \ %D%/packages/patches/lua-pkgconfig.patch \ %D%/packages/patches/lua51-liblua-so.patch \ @@ -1356,7 +1363,6 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mrrescue-support-love-11.patch \ %D%/packages/patches/mtools-mformat-uninitialized.patch \ - %D%/packages/patches/multipath-tools-sans-systemd.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mumps-shared-libseq.patch \ %D%/packages/patches/mumps-shared-mumps.patch \ @@ -1387,8 +1393,8 @@ dist_patch_DATA = \ %D%/packages/patches/nvi-dbpagesize-binpower.patch \ %D%/packages/patches/nvi-db4.patch \ %D%/packages/patches/nyacc-binary-literals.patch \ - %D%/packages/patches/oath-toolkit-glibc-compat.patch \ %D%/packages/patches/ocaml-bitstring-fix-configure.patch \ + %D%/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch \ %D%/packages/patches/ocaml-CVE-2015-8869.patch \ %D%/packages/patches/ocaml-Add-a-.file-directive.patch \ %D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch \ @@ -1428,6 +1434,7 @@ dist_patch_DATA = \ %D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \ %D%/packages/patches/ppsspp-disable-upgrade-and-gold.patch \ %D%/packages/patches/samba-fix-fcntl-hint-detection.patch \ + %D%/packages/patches/sdcc-disable-non-free-code.patch \ %D%/packages/patches/sdl-pango-api_additions.patch \ %D%/packages/patches/sdl-pango-blit_overflow.patch \ %D%/packages/patches/sdl-pango-fillrect_crash.patch \ @@ -1449,6 +1456,7 @@ dist_patch_DATA = \ %D%/packages/patches/perl-text-markdown-discount-unbundle.patch \ %D%/packages/patches/perl-module-pluggable-search.patch \ %D%/packages/patches/perl-reproducible-build-date.patch \ + %D%/packages/patches/perl-www-curl-fix-struct-void.patch \ %D%/packages/patches/perl-www-curl-remove-symbol.patch \ %D%/packages/patches/picard-fix-id3-rename-test.patch \ %D%/packages/patches/picprog-non-intel-support.patch \ @@ -1525,6 +1533,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-paste-remove-timing-test.patch \ %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ %D%/packages/patches/python-pycrypto-time-clock.patch \ + %D%/packages/patches/python-pydot-regression-test.patch \ %D%/packages/patches/python2-pygobject-2-deprecation.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ %D%/packages/patches/python-robotframework-source-date-epoch.patch \ @@ -1592,7 +1601,6 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-integer-declarations.patch \ %D%/packages/patches/screen-hurd-path-max.patch \ - %D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seed-webkit.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ @@ -1648,7 +1656,6 @@ dist_patch_DATA = \ %D%/packages/patches/tk-find-library.patch \ %D%/packages/patches/transcode-ffmpeg.patch \ %D%/packages/patches/ttf2eot-cstddef.patch \ - %D%/packages/patches/tomb-fix-errors-on-open.patch \ %D%/packages/patches/tup-unbundle-dependencies.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/twinkle-bcg729.patch \ @@ -1721,12 +1728,12 @@ dist_patch_DATA = \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ %D%/packages/patches/xpra-4.0.1-systemd-run.patch \ - %D%/packages/patches/xpra-4.0.4-norequests.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ %D%/packages/patches/xsane-support-ipv6.patch \ %D%/packages/patches/xsane-tighten-default-umask.patch \ + %D%/packages/patches/yggdrasil-extra-config.patch \ %D%/packages/patches/zziplib-CVE-2018-16548.patch MISC_DISTRO_FILES = \ diff --git a/gnu/packages/ada.scm b/gnu/packages/ada.scm index e58b0d7754..d24aa2b168 100644 --- a/gnu/packages/ada.scm +++ b/gnu/packages/ada.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,10 +25,126 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz)) + #:use-module (gnu packages python-xyz) + #:use-module (ice-9 match)) + +(define-public ada/ed + (package + (name "ada-ed") + (version "1.11.2") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; The HOME-PAGE sources, mirrored by one of the original authors. + (url "https://github.com/daveshields/AdaEd") + (commit "57daecfb7ccadfd9aaf13b4d54f51065affbe599"))) + (sha256 + (base32 "1k97a8nqsvbsadizrmhhypcx758sxqkai8wq3ckk853qxvzaasd8")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (supported-systems (list "i686-linux" "x86_64-linux" + "armhf-linux" "aarch64-linux")) + (outputs (list "out" "debug")) + (arguments + `(#:system + ,@(match (%current-system) + ;; This package predates 64-bit PCs: a ‘64-bit’ adaexec segfaults. + ;; Force a 32-bit build targeting a similar architecture. + ((or "armhf-linux" "aarch64-linux") + `("armhf-linux")) + (_ + `("i686-linux"))) + #:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append + "CFLAGS=-g" ; compile with :debug symbols + " -DOP_SYS='\"GNU\"'" ; sic; quoting gets mangled somewhere + " -DSYSTEM_V" ; closest to modern GNU + " -DWORDSIZE32" + " -DALIGN4") ; suffices on both x86 and ARM + "LFLAGS=" ; don't link against -lg + (string-append "BINDIR=" out "/bin") + (string-append "LIBDIR=" out "/lib") + (string-append "MANDIR=" out "/share/man"))) + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-sources + (lambda _ + ;; Rename the custom (and incompatible) getline() implementation. + (substitute* "adalex.c" + (("getline") "adaed_getline")) + ;; Work around ‘error: initializer element is not constant’ by not + ;; initialising MSGFILE. + (substitute* "vars.ch" + (("INIT\\(stdout\\)") "")) + #t)) + (delete 'configure) ; no configure script + (add-before 'build 'find-build-scripts + (lambda _ + (setenv "PATH" (string-append ".:" (getenv "PATH"))) + #t)) + (add-after 'build 'build-predef + (lambda* (#:key make-flags #:allow-other-keys) + ;; These aren't otherwise compiled until the ‘install’ phase. + (apply invoke "make" "predef" make-flags) + #t)) + (delete 'check) ; no test suite; run our own below + (add-before 'install 'create-output-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/share/man/manl")) + #t))) + (add-after 'install 'check + ;; Run most of the included demos as our own ‘test suite’. + (lambda* (#:key outputs tests? #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (when tests? + (setenv "ADAED" (string-append out "/lib")) + (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))) + (with-directory-excursion "demos" ; won't run outside of it + (for-each + delete-file + '("runc" ; ‘invalid data. Please make it a positive no.’ + "rund" ; deadlocks by design + "rune" ; ‘dining2.ada: No such file or directory’ + "rung")) ; ‘mathlib cannot be used as a library’ (!) + (for-each (lambda (script) + (format #t "\n=== Invoking ~a ===\n" script) + (invoke script)) + (find-files "." "^run"))))))) + (add-after 'install 'clean-up-output + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + ;; These needn't be executable. + (for-each (cut chmod <> #o644) + (append (find-files "lib" "\\....$") + (find-files "share" "."))) + #t))))))) + (native-inputs + `(("sed" ,sed))) + (home-page (string-append "https://web.archive.org/web/20140902150609/" + "http://www2.informatik.uni-stuttgart.de/iste/ps/" + "ada-software/html/dos_ada.html")) + (synopsis "Ada 83 interpreter") + (description "Ada/Ed is a translator-interpreter for Ada 83. It's intended +primarily as a teaching tool and lacks the capacity, performance, and robustness +of other contemporary or modern-day Ada compilers. + +Ada/Ed was the first Ada compiler to pass the @acronym{ACVC, Ada Compiler +Validation Suite} version 1.7 but fails many newer tests and is not a validated +Ada system. Being an interpreter, it does not implement most representation +clauses, and thus does not support systems programming close to the machine +level.") + (license license:gpl2+))) (define-public python2-langkit (let ((commit "fe0bc8bf60dbd2937759810df76ac420d99fc15f") diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 24833a04d5..20d5978e6d 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -443,7 +443,7 @@ graphs and can export its output to different formats.") (define-public facter (package (name "facter") - (version "4.0.44") + (version "4.0.46") (source (origin (method git-fetch) (uri (git-reference @@ -452,7 +452,7 @@ graphs and can export its output to different formats.") (file-name (git-file-name name version)) (sha256 (base32 - "0cs4cr5xc3yvnln9k3gdhypnq6iw4zfrhqrhslvli11l9mwdbjwn")))) + "1pi93i1jfpmxxw22b5r4gyx5jzgrammlrjzhjr3q2bpn3kcas91j")))) (build-system ruby-build-system) (arguments `(#:phases @@ -1494,7 +1494,7 @@ commands and their arguments.") (define-public opendoas (package (name "opendoas") - (version "6.6.1") + (version "6.8") (source (origin (method git-fetch) (uri (git-reference @@ -1503,7 +1503,7 @@ commands and their arguments.") (file-name (git-file-name name version)) (sha256 (base32 - "07kkc5729p654jrgfsc8zyhiwicgmq38yacmwfvay2b3gmy728zn")))) + "1dlwnvy8r6slxcy260gfkximp1ms510wdslpfq9y6xvd2qi5izcb")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1511,19 +1511,17 @@ commands and their arguments.") (replace 'configure ;; The configure script doesn't accept most of the default flags. (lambda* (#:key configure-flags #:allow-other-keys) - ;; The configure script can only be told which compiler to use + ;; The configure script can be told which compiler to use only ;; through environment variables. (setenv "CC" ,(cc-for-target)) (apply invoke "./configure" configure-flags))) (add-before 'install 'fix-makefile (lambda* (#:key outputs #:allow-other-keys) - (substitute* "bsd.prog.mk" + (substitute* "GNUmakefile" (("^\tchown.*$") "")) #t))) #:configure-flags (list (string-append "--prefix=" (assoc-ref %outputs "out")) - ;; Nothing is done with this value (yet?) but it's supported. - ;; (string-append "--target=" (or ,(%current-target-system) "")) "--with-timestamp") ;; Compiler choice is not carried over from the configure script. #:make-flags @@ -1561,10 +1559,10 @@ features of sudo with a fraction of the codebase.") #t)))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) + (lambda _ (chdir "wpa_supplicant") (copy-file "defconfig" ".config") (let ((port (open-file ".config" "al"))) @@ -1578,6 +1576,15 @@ features of sudo with a fraction of the codebase.") CONFIG_LIBNL32=y CONFIG_READLINE=y\n" port) (close-port port)) + ;; Make sure we have a pkg-config when cross compiling + (substitute* '(".config" + "Android.mk" + "Makefile" + "dbus/Makefile") + (("pkg-config") + (or (which "pkg-config") + (which (string-append ,(%current-target-system) + "-pkg-config"))))) #t)) (add-after 'install 'install-documentation (lambda* (#:key outputs #:allow-other-keys) @@ -1606,7 +1613,7 @@ features of sudo with a fraction of the codebase.") "wpa_supplicant.conf")) #t)))) - #:make-flags (list "CC=gcc" + #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "BINDIR=" (assoc-ref %outputs "out") "/sbin") (string-append "LIBDIR=" (assoc-ref %outputs "out") @@ -1716,10 +1723,10 @@ command.") "1mrbvg4v7vm7mknf0n29mf88k3s4a4qj6r4d51wq8hmjj1m7s7c8")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) + (lambda _ ;; This is mostly copied from 'wpa-supplicant' above. (chdir "hostapd") (copy-file "defconfig" ".config") @@ -1731,6 +1738,14 @@ command.") CONFIG_IEEE80211AC=y\n" port) (close-port port)) #t)) + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* "src/drivers/drivers.mak" + (("pkg-config") + (or (which "pkg-config") + (string-append ,(%current-target-system) + "-pkg-config")))) + #t)) (add-after 'install 'install-man-pages (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1747,7 +1762,7 @@ command.") (find-files "." "\\.8")) #t)))) - #:make-flags (list "CC=gcc" + #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "BINDIR=" (assoc-ref %outputs "out") "/sbin") (string-append "LIBDIR=" (assoc-ref %outputs "out") @@ -1842,7 +1857,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") (define-public acpica (package (name "acpica") - (version "20200717") + (version "20201113") (source (origin (method url-fetch) (uri (string-append @@ -1850,13 +1865,13 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).") version ".tar.gz")) (sha256 (base32 - "0jyy71szjr40c8v40qqw6yh3gfk8d6sl3nay69zrn5d88i3r0jca")))) + "0fmck3zklc328c8nzvfzm2xyh2i8zszzrd4k8kk8q30y4avnc6z1")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) (arguments - '(#:make-flags (list (string-append "PREFIX=" %output) - "CC=gcc" + `(#:make-flags (list (string-append "PREFIX=" %output) + (string-append "CC=" ,(cc-for-target)) "HOST=_LINUX" "OPT_CFLAGS=-Wall -fno-strict-aliasing") #:tests? #f ; no 'check' target @@ -2376,17 +2391,20 @@ lookup to YAML Mode. You could enable the mode with @code{(add-hook `(#:phases (modify-phases %standard-phases (delete 'configure) (replace 'build - (lambda _ - (invoke "make" "CC=gcc" "-Csrc"))) + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "-Csrc" make-flags))) (replace 'check - (lambda _ - (invoke "make" "CC=gcc" "-Ctests"))) + (lambda* (#:key tests? make-flags #:allow-other-keys) + (when tests? + (apply invoke "make" "-Ctests" make-flags)) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (install-file "src/cpulimit" bin)) - #t))))) + #t))) + #:make-flags (list (string-append "CC=" ,(cc-for-target))))) (home-page "https://github.com/opsengine/cpulimit") (synopsis "Limit CPU usage") (description @@ -3357,14 +3375,14 @@ information tool.") (define-public nnn (package (name "nnn") - (version "3.4") + (version "3.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/jarun/nnn/releases/download/v" version "/nnn-v" version ".tar.gz")) (sha256 - (base32 "189h950m1jjrnhvgcvzk6nj89l58rkxim7bxa0441ssajxpaw0vq")))) + (base32 "1ww18vvfjkvi36rcamw8kpix4bhk71w5bw9kmnh158crah1x8dp6")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) @@ -3372,15 +3390,23 @@ information tool.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - '(#:tests? #f ; no tests + `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - (delete 'configure)) ; no configure script + (delete 'configure) ; no configure script + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* "Makefile" + (("pkg-config") + (or (which "pkg-config") + (string-append ,(%current-target-system) + "-pkg-config")))) + #t))) #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc"))) + (string-append "CC=" ,(cc-for-target))))) (home-page "https://github.com/jarun/nnn") (synopsis "Terminal file browser") (description "@command{nnn} is a fork of @command{noice}, a blazing-fast @@ -3393,7 +3419,7 @@ make it a perfect utility on modern distros.") (define-public thermald (package (name "thermald") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) @@ -3402,30 +3428,47 @@ make it a perfect utility on modern distros.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nrhv3bypyc48h9smj5cpq63rawm6vqyg3cwkhpz69rgjnf1283m")))) + (base32 "0cisaca2c2z1x9xvxc4lr6nl6yqx5bww6brh73m0p1n643jgq1dl")))) (build-system gnu-build-system) (arguments `(#:configure-flags (let ((out (assoc-ref %outputs "out"))) (list (string-append "--with-dbus-sys-dir=" out "/etc/dbus-1/system.d") - "--localstatedir=/var")))) + "--localstatedir=/var")) + #:make-flags + (list "V=1") ; log build commands + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'no-early-./configure + (lambda _ + (setenv "NO_CONFIGURE" "yet") + ;; XXX thd_trip_point.h redefines "__STDC_LIMIT_MACROS" after + ;; <xz>/include/lzma.h. ./configure forcibly appends -Werror + ;; to CXXFLAGS, overriding any -Wno-error we'd add. + (substitute* "configure.ac" + (("-Werror") "")) + #t))))) (native-inputs `(("autoconf" ,autoconf) ("autoconf-archive" ,autoconf-archive) ("automake" ,automake) ("glib" ,glib "bin") ; for glib-genmarshal, etc. + ("gtk-doc" ,gtk-doc) ("pkg-config" ,pkg-config))) (inputs `(("dbus-glib" ,dbus-glib) - ("libxml2" ,libxml2))) + ("libevdev" ,libevdev) + ("libxml2" ,libxml2) + ("upower" ,upower) + ("xz" ,xz))) (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.") ;; arm and aarch64 don't have cpuid.h. (supported-systems '("i686-linux" "x86_64-linux")) - (license license:gpl2+))) + (license license:gpl2))) (define-public masscan (package @@ -3444,9 +3487,9 @@ on systems running the Linux kernel.") (inputs `(("libpcap" ,libpcap))) (arguments - '(#:test-target "regress" + `(#:test-target "regress" #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases @@ -3574,7 +3617,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.1.08-1") + (version "3.1.09-1") (source (origin (method git-fetch) @@ -3583,7 +3626,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "15b0fn8kv09k7kzyzix1pr1wmjw5yinzgw01v8pf9p547m4a899a")))) + (base32 "0m6s8kxjppy3jm39is5i1lbrah29cw86rq0vamvx46izbdyf84y5")))) (build-system trivial-build-system) (inputs `(("bash" ,bash-minimal) @@ -4088,7 +4131,7 @@ entries, providing commands to add, remove, comment, and search.") (method git-fetch) (uri (git-reference - (url "https://github.com/jclehner/nmrpflash.git") + (url "https://github.com/jclehner/nmrpflash") (commit (string-append "v" version)))) (sha256 (base32 "1fdjrxhjs96rdclbkld57xarf592slhkp79h46z833npxpn12ck1")) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 3facc6894f..6628a8ead3 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -50,7 +50,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/nu-book/zxing-cpp.git") + (url "https://github.com/nu-book/zxing-cpp") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2dca86cbec..5b391449a0 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -355,7 +355,7 @@ precision.") (define-public giac (package (name "giac") - (version "1.6.0-25") + (version "1.6.0-31") (source (origin (method url-fetch) @@ -367,7 +367,7 @@ precision.") "~parisse/debian/dists/stable/main/source/" "giac_" version ".tar.gz")) (sha256 - (base32 "11kik2csdg9wy0npiih21kaag0nc89i9ldgk7ak7gvf9ycddm6mh")))) + (base32 "1dr1y88sx2gzldn0zl6p8b1ngjjcmh89iv4kzyhi2cf74j3yw85m")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 ftw) @@ -1005,16 +1005,20 @@ Optional thin wrappers allow usage of the library from other languages.") (define-public eigen (package (name "eigen") - (version "3.3.7") + (version "3.3.8") (source (origin (method url-fetch) - (uri (string-append "https://bitbucket.org/eigen/eigen/get/" - version ".tar.bz2")) + (uri (list + (string-append "https://bitbucket.org/eigen/eigen/get/" + version ".tar.bz2") + (string-append "mirror://debian/pool/main/e/eigen3/eigen3_" + version ".orig.tar.bz2"))) (sha256 (base32 - "1km3fyfzyqfdvmnl79drps3fjwnz3zbh0c7l34mfbqyvvs8cy4wz")) + "1vxrsncfnkyq6gwxpsannpryp12mk7lc8f42ybvz3saf7icwc582")) (file-name (string-append name "-" version ".tar.bz2")) - (patches (search-patches "eigen-stabilise-sparseqr-test.patch")) + (patches (search-patches "eigen-remove-openmp-error-counting.patch" + "eigen-stabilise-sparseqr-test.patch")) (modules '((guix build utils))) (snippet ;; There are 3 test failures in the "unsupported" directory, @@ -1089,7 +1093,7 @@ features, and more.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/QuantStack/xtensor") + (url "https://github.com/xtensor-stack/xtensor") (commit version))) (sha256 (base32 @@ -1103,7 +1107,7 @@ features, and more.") `(#:configure-flags '("-DBUILD_TESTS=ON") #:test-target "xtest")) - (home-page "https://quantstack.net/xtensor") + (home-page "https://xtensor.readthedocs.io/en/latest/") (synopsis "C++ tensors with broadcasting and lazy computing") (description "xtensor is a C++ library meant for numerical analysis with multi-dimensional array expressions. diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 7d3c2ef1c3..7a6d20116f 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 John Darrington <jmd@gnu.org> -;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu> ;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> @@ -11,6 +11,7 @@ ;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -170,6 +171,13 @@ dictionaries, including personal ones.") (hash (content-hash sha256)))) (home-page "https://www.softcatala.org/pub/softcatala/aspell/")))) +(define-public aspell-dict-cs + (aspell-dictionary "cs" "Czech" + #:version "20040614-1" + #:sha256 + (base32 + "0rihj4hsw96pd9casvmpvw3r8040pfa28p1h73x4vyn20zwr3h01"))) + (define-public aspell-dict-de (aspell-dictionary "de" "German" #:version "20161207-7-0" @@ -275,6 +283,7 @@ dictionaries, including personal ones.") (define-public aspell-dict-mi (aspell-dictionary "mi" "Maori" #:version "0.50-0" + #:prefix "aspell-" #:sha256 (base32 "12bxplpd348yx8d2q8qvahi9dlp7qf28qmanzhziwc7np8rixvmy"))) @@ -290,6 +299,7 @@ dictionaries, including personal ones.") (define-public aspell-dict-nn (aspell-dictionary "nn" "Norwegian Nynorsk" #:version "0.50.1-1" + #:prefix "aspell-" #:sha256 (base32 "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc"))) @@ -297,6 +307,7 @@ dictionaries, including personal ones.") (define-public aspell-dict-pl (aspell-dictionary "pl" "Polish" #:version "0.51-0" + #:prefix "aspell-" #:sha256 (base32 "1a3ccji6k5gys7l3ilr2lh5pzxgzb7ipc5vb737svl6nqgdy8757"))) @@ -363,8 +374,8 @@ dictionaries, including personal ones.") (source (origin (method url-fetch) (uri (string-append - "http://downloads.sourceforge.net/wordlist/scowl-" - version ".tar.gz")) + "mirror://sourceforge/wordlist/SCOWL/" + version "/scowl-" version ".tar.gz")) (sha256 (base32 "11lkrnhwrf5mvrrq45k4mads3n9aswgac8dc25ba61c75alxb5rs")))) diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 12954c9c1f..a20ae542ce 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com> ;;; Copyright © 2019 Andy Tai <atai@atai.org> @@ -51,7 +51,7 @@ #:use-module (gnu packages shells) #:use-module (gnu packages xml) #:use-module ((guix utils) - #:select (%current-system))) + #:select (%current-system cc-for-target))) (define-public nasm (package @@ -265,7 +265,7 @@ runtime") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/rednex/rgbds") + (url "https://github.com/gbdev/rgbds") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -276,13 +276,21 @@ runtime") `(#:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* "Makefile" + (("pkg-config") + (or (which "pkg-config") + (string-append ,(%current-target-system) + "-pkg-config")))) + #t)) (replace 'check (lambda _ (with-directory-excursion "test/asm" (invoke "./test.sh")) (with-directory-excursion "test/link" (invoke "./test.sh"))))) - #:make-flags `("CC=gcc" + #:make-flags `(,(string-append "CC=" ,(cc-for-target)) ,(string-append "PREFIX=" (assoc-ref %outputs "out"))))) (native-inputs @@ -292,7 +300,7 @@ runtime") ("util-linux" ,util-linux))) (inputs `(("libpng" ,libpng))) - (home-page "https://github.com/rednex/rgbds") + (home-page "https://github.com/gbdev/rgbds") (synopsis "Rednex Game Boy Development System") (description "RGBDS (Rednex Game Boy Development System) is an assembler/linker @@ -436,7 +444,7 @@ sets, both THUMB and ARM mode.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/intelxed/mbuild.git") + (url "https://github.com/intelxed/mbuild") (commit "5304b94361fccd830c0e2417535a866b79c1c297"))) (sha256 (base32 diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6733c8d212..852b56e80f 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Nikita <nikita@n0.is> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> @@ -140,7 +140,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git") + (url "https://github.com/KhronosGroup/OpenSL-ES-Registry") (commit "ea5104bf37bf525c25e6ae2386586048179d0fda"))) (file-name (git-file-name name version)) (sha256 @@ -202,7 +202,7 @@ promoting the market for advanced audio.") (method git-fetch) (uri (git-reference - (url "https://github.com/Mindwerks/wildmidi.git") + (url "https://github.com/Mindwerks/wildmidi") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -277,7 +277,7 @@ Coding (AAC) encoder.") (method git-fetch) (uri (git-reference - (url "https://github.com/tinyalsa/tinyalsa.git") + (url "https://github.com/tinyalsa/tinyalsa") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -3522,8 +3522,11 @@ interface.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version - "/qsynth-" version ".tar.gz")) + (uri (list + (string-append "mirror://sourceforge/qsynth/qsynth/" version + "/qsynth-" version ".tar.gz") + (string-append "mirror://sourceforge/qsynth/qsynth (attic)" + "/qsynth-" version ".tar.gz"))) (sha256 (base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6")))) (build-system gnu-build-system) @@ -3802,8 +3805,11 @@ machine-readable ASCII format.") (version "3.0.10") (source (origin (method url-fetch) - (uri (string-append "http://etree.org/shnutils/shntool/dist/src/" - "shntool-" version ".tar.gz")) + (uri (list + (string-append "http://etree.org/shnutils/shntool/dist/src/" + "shntool-" version ".tar.gz") + (string-append "mirror://debian/pool/main/s/shntool/shntool_" + version ".orig.tar.gz"))) (sha256 (base32 "00i1rbjaaws3drkhiczaign3lnbhr161b7rbnjr8z83w8yn2wc3l")))) @@ -3834,9 +3840,9 @@ use them split WAVE data into multiple files.") (build-system gnu-build-system) (arguments ;; Test files are missing: https://github.com/foo86/dcadec/issues/53 - '(#:tests? #f + `(#:tests? #f #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) ;; Build shared library. "CONFIG_SHARED=1" (string-append "PREFIX=" (assoc-ref %outputs "out")) @@ -3911,8 +3917,8 @@ loudness of audio and video files to the same level.") "0hbb290n3wb23f2k692a6bhc23nnqmxqi9sc9j15pnya8wifw64g")))) (build-system gnu-build-system) (arguments - '(#:make-flags (list (string-append "PREFIX=" %output) - "CC=gcc") + `(#:make-flags (list (string-append "PREFIX=" %output) + (string-append "CC=" ,(cc-for-target))) #:tests? #f ; No tests #:phases (modify-phases %standard-phases @@ -4080,14 +4086,14 @@ on the ALSA software PCM plugin.") (define-public snd (package (name "snd") - (version "20.8") + (version "20.9") (source (origin (method url-fetch) (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/" "snd-" version ".tar.gz")) (sha256 (base32 - "1hw81innyyiwiyb8jkpq9aj7idmcb41yvgd1blac997023h78sss")))) + "0jxkycxn6jcbs4gklk9sk3gfr0y26dz1m71nxah9rnx80wnzj6hr")))) (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/authentication.scm b/gnu/packages/authentication.scm index b3ff912c8f..afa20945e7 100644 --- a/gnu/packages/authentication.scm +++ b/gnu/packages/authentication.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. @@ -33,26 +33,14 @@ (define-public oath-toolkit (package (name "oath-toolkit") - (version "2.6.2") + (version "2.6.4") (source (origin (method url-fetch) (uri (string-append "https://download.savannah.nongnu.org/releases/" name "/" name "-" version ".tar.gz")) - (patches - (append (search-patches "oath-toolkit-glibc-compat.patch") - (list (origin - ;; This huge commit updates gnulib for GCC 7 compatibility. - (method url-fetch) - (uri (string-append - "https://gitlab.com/oath-toolkit/oath-toolkit/commit/" - "2fffce2a471f74a585939c84cce16ef3015e5d3d.diff")) - (file-name "oath-toolkit-update-gnulib.patch") - (sha256 - (base32 - "088c9s4ay1b54bjqc4mwfs5l3f6357zj5vpw771zlq5g4addd4s0")))))) (sha256 - (base32 "182ah8vfbg0yhv6mh1b6ap944d0na6x7lpfkwkmzb6jl9gx4cd5h")))) + (base32 "116na9nncpwshl3ww8w3llzwk49igilplxcjy1k6jzl3mmg2bimz")))) (build-system gnu-build-system) (arguments ;; TODO ‘--enable-pskc’ causes xmlsec-related test suite failures. diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 2f8a0da0cf..89a63239a5 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> -;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> @@ -82,7 +82,7 @@ (define-public duplicity (package (name "duplicity") - (version "0.8.15") + (version "0.8.17") (source (origin (method url-fetch) @@ -91,7 +91,7 @@ "-series/" version "/+download/duplicity-" version ".tar.gz")) (sha256 - (base32 "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc")))) + (base32 "114rwkf9b3h4fcagrx013sb7krc4hafbwl9gawjph2wd9pkv2wx2")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) ; for msgfmt @@ -392,7 +392,7 @@ list and implement the backup strategy.") `(("librsync" ,librsync-0.9))) (arguments `(#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")) - "CC=gcc") + ,(string-append "CC=" ,(cc-for-target))) #:tests? #f ;test input not distributed #:phases ;; no configure phase @@ -1072,7 +1072,7 @@ interactive mode.") (define-public burp (package (name "burp") - (version "2.3.36") + (version "2.3.38") (source (origin (method git-fetch) @@ -1080,7 +1080,7 @@ interactive mode.") (url "https://github.com/grke/burp") (commit version))) (sha256 - (base32 "18gj1sv1naql0xais01yniyzs8dxc8xk5sk8y9hsc0cd93mxgk17")) + (base32 "0m0s6rrgxn3l6bad45vyhks6iz6bwvd0f3rzdsc7l28gar79wsj6")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index 8a8309ce52..fa70d2773e 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -47,14 +47,14 @@ (define-public fio (package (name "fio") - (version "3.23") + (version "3.24") (source (origin (method url-fetch) (uri (string-append "https://brick.kernel.dk/snaps/" "fio-" version ".tar.bz2")) (sha256 (base32 - "0cy32431hv0i84yrryna5byj4r610n6i1rm8nfflnrznbf051axs")))) + "0qshbyqpvm01hmpkmk0v0jhjz23sngqhy291kiz38z04s2df4vxn")))) (build-system gnu-build-system) (arguments '(#:test-target "test" diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index f63ae5f324..939dc79d15 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com> -;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl> +;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2020 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> @@ -12,12 +12,13 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018, 2019, 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> -;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -102,6 +103,7 @@ #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) + #:use-module (gnu packages node) #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) #:use-module (gnu packages parallel) @@ -112,10 +114,12 @@ #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-compression) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages serialization) @@ -354,6 +358,28 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1. (license (list license:gpl3+ license:expat)))) +(define-public bcftools-1.9 + (package (inherit bcftools) + (name "bcftools") + (version "1.9") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/samtools/bcftools/" + "releases/download/" + version "/bcftools-" version ".tar.bz2")) + (sha256 + (base32 + "1j3h638i8kgihzyrlnpj82xg1b23sijibys9hvwari3fy7kd0dkg")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.9") + #t)))) + (build-system gnu-build-system) + (native-inputs + `(("htslib" ,htslib-1.9) + ("perl" ,perl))))) + (define-public bedops (package (name "bedops") @@ -437,7 +463,7 @@ computational cluster.") (native-inputs `(("python" ,python-wrapper))) (inputs - `(("samtools" ,samtools) + `(("samtools" ,samtools-1.9) ("zlib" ,zlib))) (home-page "https://github.com/arq5x/bedtools2") (synopsis "Tools for genome analysis and arithmetic") @@ -1894,7 +1920,7 @@ multiple sequence alignments.") (define-public python-pysam (package (name "python-pysam") - (version "0.16.0.1") + (version "0.15.1") (source (origin (method git-fetch) ;; Test data is missing on PyPi. @@ -1904,7 +1930,7 @@ multiple sequence alignments.") (file-name (git-file-name name version)) (sha256 (base32 - "168bwwm8c2k22m7paip8q0yajyl7xdxgnik0bgjl7rhqg0majz0f")) + "1vj367w6xbn9bpmksm162l1aipf7cj97h1q83y7jcpm33ihwpf7x")) (modules '((guix build utils))) (snippet '(begin ;; Drop bundled htslib. TODO: Also remove samtools @@ -1934,13 +1960,8 @@ multiple sequence alignments.") ;; This file contains tests that require a connection to the ;; internet. (delete-file "tests/tabix_test.py") - ;; These tests fail (see: - ;; https://github.com/pysam-developers/pysam/issues/939). - (delete-file "tests/compile_test.py") + ;; FIXME: This test fails (delete-file "tests/AlignmentFile_test.py") - (delete-file "tests/AlignmentFileHeader_test.py") - (delete-file "tests/StreamFiledescriptors_test.py") - (delete-file "tests/VariantRecord_test.py") ;; Add first subdirectory of "build" directory to PYTHONPATH. (setenv "PYTHONPATH" (string-append @@ -1960,7 +1981,7 @@ multiple sequence alignments.") ;; FIXME: tests keep timing out on some systems. (invoke "nosetests" "-v" "--processes" "1"))))))) (propagated-inputs - `(("htslib" ,htslib))) ; Included from installed header files. + `(("htslib" ,htslib-1.9))) ; Included from installed header files. (inputs `(("ncurses" ,ncurses) ("curl" ,curl) @@ -1968,10 +1989,9 @@ multiple sequence alignments.") (native-inputs `(("python-cython" ,python-cython) ;; Dependencies below are are for tests only. - ("samtools" ,samtools) - ("bcftools" ,bcftools) - ("python-nose" ,python-nose) - ("python-pytest" ,python-pytest))) + ("samtools" ,samtools-1.9) + ("bcftools" ,bcftools-1.9) + ("python-nose" ,python-nose))) (home-page "https://github.com/pysam-developers/pysam") (synopsis "Python bindings to the SAMtools C API") (description @@ -2563,6 +2583,132 @@ accessing bigWig files.") (define-public python2-pybigwig (package-with-python2 python-pybigwig)) +(define-public python-schema-salad + (package + (name "python-schema-salad") + (version "7.0.20200811075006") + (source + (origin + (method url-fetch) + (uri (pypi-uri "schema-salad" version)) + (sha256 + (base32 + "0wanbwmqb189x1m0vacnhpivfsr8rwbqknngivzxxs8j46yj80bg")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cachecontrol" ,python-cachecontrol-0.11) + ("python-lockfile" ,python-lockfile) + ("python-mistune" ,python-mistune) + ("python-rdflib" ,python-rdflib) + ("python-rdflib-jsonld" ,python-rdflib-jsonld) + ("python-requests" ,python-requests) + ("python-ruamel.yaml" ,python-ruamel.yaml) + ("python-typing-extensions" ,python-typing-extensions))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/common-workflow-language/schema_salad") + (synopsis "Schema Annotations for Linked Avro Data (SALAD)") + (description + "Salad is a schema language for describing JSON or YAML structured linked +data documents. Salad schema describes rules for preprocessing, structural +validation, and hyperlink checking for documents described by a Salad schema. +Salad supports rich data modeling with inheritance, template specialization, +object identifiers, object references, documentation generation, code +generation, and transformation to RDF. Salad provides a bridge between document +and record oriented data modeling and the Semantic Web.") + (license license:asl2.0))) + +(define-public cwltool + (package + (name "cwltool") + (version "3.0.20201121085451") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/common-workflow-language/cwltool") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1awf99n7aglxc5zszrlrv6jxp355jp45ws7wpsgjlgcdv7advn0w")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'loosen-version-restrictions + (lambda _ + (substitute* "setup.py" + (("== 1.5.1") ">=1.5.1") ; prov + ((", < 3.5") "")) ; shellescape + #t)) + (add-after 'unpack 'dont-use-git + (lambda _ + (substitute* "gittaggers.py" + (("self.git_timestamp_tag\\(\\)") + (string-append "time.strftime('.%Y%m%d%H%M%S', time.gmtime(int(" + (string-drop ,version 4) ")))"))) + #t)) + (add-after 'unpack 'modify-tests + (lambda _ + ;; Tries to connect to the internet. + (delete-file "tests/test_udocker.py") + (delete-file "tests/test_http_input.py") + (substitute* "tests/test_load_tool.py" + (("def test_load_graph_fragment_from_packed") + (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" + "def test_load_graph_fragment_from_packed"))) + (substitute* "tests/test_examples.py" + (("def test_env_filtering") + (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" + "def test_env_filtering"))) + ;; Tries to use cwl-runners. + (substitute* "tests/test_examples.py" + (("def test_v1_0_arg_empty_prefix_separate_false") + (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n" + "def test_v1_0_arg_empty_prefix_separate_false"))) + #t))))) + (propagated-inputs + `(("python-argcomplete" ,python-argcomplete) + ("python-bagit" ,python-bagit) + ("python-coloredlogs" ,python-coloredlogs) + ("python-mypy-extensions" ,python-mypy-extensions) + ("python-prov" ,python-prov) + ("python-pydot" ,python-pydot) + ("python-psutil" ,python-psutil) + ("python-rdflib" ,python-rdflib) + ("python-requests" ,python-requests) + ("python-ruamel.yaml" ,python-ruamel.yaml) + ("python-schema-salad" ,python-schema-salad) + ("python-shellescape" ,python-shellescape) + ("python-typing-extensions" ,python-typing-extensions) + ;; Not listed as needed but still necessary: + ("node" ,node))) + (native-inputs + `(("python-arcp" ,python-arcp) + ("python-humanfriendly" ,python-humanfriendly) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-mock" ,python-pytest-mock) + ("python-pytest-runner" ,python-pytest-runner) + ("python-rdflib-jsonld" ,python-rdflib-jsonld))) + (home-page + "https://github.com/common-workflow-language/common-workflow-language") + (synopsis "Common Workflow Language reference implementation") + (description + "This is the reference implementation of the @acronym{CWL, Common Workflow +Language} standards. The CWL open standards are for describing analysis +workflows and tools in a way that makes them portable and scalable across a +variety of software and hardware environments, from workstations to cluster, +cloud, and high performance computing (HPC) environments. CWL is designed to +meet the needs of data-intensive science, such as Bioinformatics, Medical +Imaging, Astronomy, Physics, and Chemistry. The @acronym{cwltool, CWL reference +implementation} is intended to be feature complete and to provide comprehensive +validation of CWL files as well as provide other tools related to working with +CWL descriptions.") + (license license:asl2.0))) + (define-public python-dendropy (package (name "python-dendropy") @@ -4256,6 +4402,19 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and ;; the rest is released under the Expat license (license (list license:expat license:bsd-3)))) +(define-public htslib-1.9 + (package (inherit htslib) + (name "htslib") + (version "1.9") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/samtools/htslib/releases/download/" + version "/htslib-" version ".tar.bz2")) + (sha256 + (base32 + "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0")))))) + ;; This package should be removed once no packages rely upon it. (define htslib-1.3 (package @@ -4476,26 +4635,40 @@ experiments.") ;; The PyPi tarball does not contain tests. (method git-fetch) (uri (git-reference - (url "https://github.com/taoliu/MACS") + (url "https://github.com/macs3-project/MACS") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15")))) + "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15")) + (modules '((guix build utils))) + ;; Remove files generated by Cython + (snippet + '(begin + (for-each (lambda (file) + (let ((generated-file + (string-append (string-drop-right file 3) "c"))) + (when (file-exists? generated-file) + (delete-file generated-file)))) + (find-files "." "\\.pyx$")) + (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c") + #t)))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-v")))))) + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "pytest" "-v")) + #t))))) (inputs `(("python-numpy" ,python-numpy))) (native-inputs - `(("python-pytest" ,python-pytest))) - (home-page "https://github.com/taoliu/MACS/") + `(("python-cython" ,python-cython) + ("python-pytest" ,python-pytest))) + (home-page "https://github.com/macs3-project/MACS") (synopsis "Model based analysis for ChIP-Seq data") (description "MACS is an implementation of a ChIP-Seq analysis algorithm for @@ -5678,6 +5851,31 @@ variant calling (in conjunction with bcftools), and a simple alignment viewer.") (license license:expat))) +(define-public samtools-1.9 + (package (inherit samtools) + (name "samtools") + (version "1.9") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/samtools/samtools/" + version "/samtools-" version ".tar.bz2")) + (sha256 + (base32 + "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8")) + (modules '((guix build utils))) + (snippet '(begin + ;; Delete bundled htslib. + (delete-file-recursively "htslib-1.9") + #t)))) + (inputs + `(("htslib" ,htslib-1.9) + ("ncurses" ,ncurses) + ("perl" ,perl) + ("python" ,python) + ("zlib" ,zlib))))) + (define-public samtools-0.1 ;; This is the most recent version of the 0.1 line of samtools. The input ;; and output formats differ greatly from that used and produced by samtools @@ -15369,7 +15567,7 @@ patterns.") (define-public methyldackel (package (name "methyldackel") - (version "0.4.0") + (version "0.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -15378,7 +15576,7 @@ patterns.") (file-name (git-file-name name version)) (sha256 (base32 - "10gh8k0ca92kywnrw5pkacq3g6r8s976s12k8jhp8g3g49q9a97g")))) + "1sfhf2ap75qxpnmy1ifgmxqs18rq8mah9mcgkby73vc6h0sw99ws")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -15391,11 +15589,14 @@ patterns.") (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (substitute* "Makefile" + (("-lhts ") "-lhts -lBigWig ") (("install MethylDackel \\$\\(prefix\\)" match) (string-append "install -d $(prefix); " match))) #t))))) (inputs - `(("htslib" ,htslib) + `(("curl" ,curl) ; XXX: needed by libbigwig + ("htslib" ,htslib-1.9) + ("libbigwig" ,libbigwig) ("zlib" ,zlib))) ;; Needed for tests (native-inputs diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 2a4339fda0..09bff49818 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Leo Famulari <leo@famulari.name> -;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> @@ -93,14 +93,18 @@ (rename-file (string-append out "/bin/transmission-gtk") (string-append gui "/bin/transmission-gtk")) - ;; Move the '.desktop' and icon files as well. (mkdir (string-append gui "/share")) (for-each (lambda (dir) (rename-file (string-append out "/share/" dir) (string-append gui "/share/" dir))) - '("applications" "icons" "pixmaps"))) - #t))))) + '("appdata" "applications" "icons" "locale" "pixmaps")) + + (mkdir-p (string-append gui "/share/man/man1")) + (rename-file + (string-append out "/share/man/man1/transmission-gtk.1") + (string-append gui "/share/man/man1/transmission-gtk.1")) + #t)))))) (inputs `(("libevent" ,libevent) ("curl" ,curl) @@ -355,7 +359,7 @@ downloads, download scheduling, download rate limiting.") (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) ; no configure script - #:make-flags (list "CC=gcc" + #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out")) "NO_HASH_CHECK=1" "USE_LARGE_FILES=1" diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 7034085d67..2e9709982f 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016, 2017 David Craven <david@craven.ch> -;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 nee <nee@cock.li> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> @@ -115,11 +115,12 @@ ;; determine the root file system when it's a RAID ;; device. Failing to do that, 'grub-probe' silently ;; fails if 'mdadm' is not in $PATH. - (substitute* "grub-core/osdep/linux/getroot.c" - (("argv\\[0\\] = \"mdadm\"") - (string-append "argv[0] = \"" - (assoc-ref inputs "mdadm") - "/sbin/mdadm\""))) + (when (assoc-ref inputs "mdadm") + (substitute* "grub-core/osdep/linux/getroot.c" + (("argv\\[0\\] = \"mdadm\"") + (string-append "argv[0] = \"" + (assoc-ref inputs "mdadm") + "/sbin/mdadm\"")))) ;; Make the font visible. (copy-file (assoc-ref (or native-inputs inputs) @@ -133,6 +134,20 @@ (string-append (assoc-ref inputs "console-setup") "/bin/ckbcomp "))) #t)) + (add-after 'unpack 'set-freetype-variables + ;; These variables need to be set to the native versions + ;; of the dependencies because they are used to build + ;; programs which are executed during build time. + (lambda* (#:key native-inputs #:allow-other-keys) + (when (assoc-ref native-inputs "freetype") + (let ((freetype (assoc-ref native-inputs "freetype"))) + (setenv "BUILD_FREETYPE_LIBS" + (string-append "-L" freetype + "/lib -lfreetype")) + (setenv "BUILD_FREETYPE_CFLAGS" + (string-append "-I" freetype + "/include/freetype2")))) + #t)) (add-before 'check 'disable-flaky-test (lambda _ ;; This test is unreliable. For more information, see: @@ -149,10 +164,11 @@ (("test_unset grub_func_test") "test_unset")) #t))) - ;; Disable tests on ARM and AARCH64 platforms. - #:tests? ,(not (any (cute string-prefix? <> (or (%current-target-system) - (%current-system))) - '("arm" "aarch64"))))) + ;; Disable tests on ARM and AARCH64 platforms or when cross-compiling. + #:tests? ,(not (or (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("arm" "aarch64")) + (%current-target-system))))) (inputs `(("gettext" ,gettext-minimal) @@ -194,6 +210,7 @@ ("flex" ,flex) ("texinfo" ,texinfo) ("help2man" ,help2man) + ("freetype" ,freetype) ; native version needed for build-grub-mkfont ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils ;; capable of assembling 64-bit instructions. However, our default @@ -424,7 +441,7 @@ menu to select one of the installed operating systems.") `(("python" ,python))) (arguments `(#:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) ;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1. (string-append "LDFLAGS=-Wl,-rpath=" @@ -435,6 +452,15 @@ menu to select one of the installed operating systems.") "INSTALL=install") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-pkg-config + (lambda _ + (substitute* '("Makefile" + "tests/run_tests.sh") + (("pkg-config") + (or (which "pkg-config") + (string-append ,(%current-target-system) + "-pkg-config")))) + #t)) (delete 'configure)))) ; no configure script (home-page "https://www.devicetree.org") (synopsis "Compiles device tree source files") diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm new file mode 100644 index 0000000000..688a1373e3 --- /dev/null +++ b/gnu/packages/browser-extensions.scm @@ -0,0 +1,123 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages browser-extensions) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system copy) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu build chromium-extension) + #:use-module (gnu packages compression) + #:use-module (gnu packages python)) + +(define play-to-kodi + (package + (name "play-to-kodi") + (version "1.9.1") + (home-page "https://github.com/khloke/play-to-xbmc-chrome") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01rmcpbkn9vhcd8mrah2jmd2801k2r5fz7aqvp22hbwmh2z5f1ch")))) + (build-system copy-build-system) + (synopsis "Send website contents to Kodi") + (description + "Play to Kodi is a browser add-on that can send video, audio, and other +supported content to the Kodi media center.") + (license license:expat))) + +(define-public play-to-kodi/chromium + (make-chromium-extension play-to-kodi)) + +(define uassets + (let ((commit "0cef83c9fc68fdad8f3ee9dc07f6356ebc12791c")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uBlockOrigin/uAssets") + (commit commit))) + (file-name (git-file-name "uAssets" (string-take commit 9))) + (sha256 + (base32 + "13mjql3rr5f3zilx05i8r7slnp7xyj6zn43dcfl3gdgi8ik483dd"))))) + +(define ublock-origin + (package + (name "ublock-origin") + (version "1.31.0") + (home-page "https://github.com/gorhill/uBlock") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wfg1g061l83fqwllp8q1jr1kvwxy2kbbzfk6ynlf18kjng9v3h5")))) + (build-system gnu-build-system) + (outputs '("xpi" "firefox" "chromium")) + (arguments + '(#:tests? #f ;no tests + #:allowed-references () + #:phases + (modify-phases (map (lambda (phase) + (assq phase %standard-phases)) + '(set-paths unpack patch-source-shebangs)) + (add-after 'unpack 'link-uassets + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (symlink (string-append (assoc-ref (or native-inputs inputs) + "uassets")) + "../uAssets") + #t)) + (add-after 'unpack 'make-files-writable + (lambda _ + ;; The build system copies some files and later tries + ;; modifying them. + (for-each make-file-writable (find-files ".")) + #t)) + (add-after 'patch-source-shebangs 'build-xpi + (lambda _ + (invoke "./tools/make-firefox.sh" "all"))) + (add-after 'build-xpi 'build-chromium + (lambda _ + (invoke "./tools/make-chromium.sh"))) + (add-after 'build-chromium 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((firefox (assoc-ref outputs "firefox")) + (xpi (assoc-ref outputs "xpi")) + (chromium (assoc-ref outputs "chromium"))) + (install-file "dist/build/uBlock0.firefox.xpi" + (string-append xpi "/lib/mozilla/extensions")) + (copy-recursively "dist/build/uBlock0.firefox" firefox) + (copy-recursively "dist/build/uBlock0.chromium" chromium) + #t)))))) + (native-inputs + `(("python" ,python-wrapper) + ("uassets" ,uassets) + ("zip" ,zip))) + (synopsis "Block unwanted content from web sites") + (description + "uBlock Origin is a @dfn{wide spectrum blocker} for IceCat and +ungoogled-chromium.") + (license license:gpl3+))) + +(define-public ublock-origin/chromium + (make-chromium-extension ublock-origin "chromium")) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 85ff7bb352..3f140efdb3 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> ;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,7 +68,7 @@ "13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6")))) (build-system gnu-build-system) (arguments - `(#:make-flags `("CC=gcc" + `(#:make-flags `(,(string-append "CC=" ,(cc-for-target)) ,(string-append "INSTALL_PREFIX=" (assoc-ref %outputs "out"))) #:test-target "test" @@ -252,7 +253,7 @@ resembles Python.") (native-inputs `(("unzip" ,unzip))) ; for unpacking the source (arguments - `(#:make-flags '("CC=gcc") + `(#:make-flags (list (string-append "CC=" ,(cc-for-target))) #:tests? #f ; No test suite #:phases (modify-phases %standard-phases diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index 493d99387c..c49c311fd0 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> -;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -28,6 +28,7 @@ (define-module (gnu packages c) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -370,7 +371,7 @@ any other grammar rules.") (define-public sparse (package (name "sparse") - (version "0.6.2") + (version "0.6.3") (source (origin (method url-fetch) (uri @@ -378,7 +379,7 @@ any other grammar rules.") "sparse-" version ".tar.xz")) (sha256 (base32 - "1z11chawwcmf5xxx5v52cj7wrr3warz6q5wlcjvxpif1jbga172i")))) + "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (arguments @@ -518,7 +519,8 @@ replacement for the syslog() call, but retains its ease of use.") (arguments `(#:phases (modify-phases %standard-phases (delete 'configure)) - #:make-flags (list "CC=gcc" (string-append "prefix=" %output)) + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "prefix=" %output)) #:tests? #f)) ;no test suite (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 766f62fc9f..a8da7ba48b 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -953,7 +953,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.") (source (origin (method url-fetch) (uri (string-append - "https://downloads.sourceforge.net/cdemu/libmirage-" + "mirror://sourceforge/cdemu/libmirage/libmirage-" version ".tar.bz2")) (sha256 (base32 @@ -982,7 +982,7 @@ the data stored in various image formats.") (source (origin (method url-fetch) (uri (string-append - "https://downloads.sourceforge.net/cdemu/cdemu-daemon/" + "mirror://sourceforge/cdemu/cdemu-daemon/" "cdemu-daemon-" version ".tar.bz2")) (sha256 (base32 @@ -1011,7 +1011,7 @@ drive and disc (including CD-ROMs and DVD-ROMs).") (source (origin (method url-fetch) (uri (string-append - "https://downloads.sourceforge.net/cdemu/cdemu-client-" + "mirror://sourceforge/cdemu/cdemu-client/cdemu-client-" version ".tar.bz2")) (sha256 (base32 diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 3c437c0efa..f558d65d65 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -119,7 +119,7 @@ modify some aspects of this style through the use of regular expressions.") (method git-fetch) (uri (git-reference - (url "https://github.com/ebassi/mutest.git") + (url "https://github.com/ebassi/mutest") (commit "e6246c9"))) (file-name (git-file-name name version)) (sha256 @@ -497,7 +497,7 @@ and it supports a very flexible form of test discovery.") (define-public doctest (package (name "doctest") - (version "2.4.0") + (version "2.4.1") (home-page "https://github.com/onqtam/doctest") (source (origin (method git-fetch) @@ -505,7 +505,7 @@ and it supports a very flexible form of test discovery.") (file-name (git-file-name name version)) (sha256 (base32 - "1yi95saqv8qb3ix6w8d7ffvs7qbwvqmq6wblckhxhicxxdxk85cd")))) + "17g7n6rjs90i0b231x5s934qnr8m80ga2yg1z344bnsdiqcjd63w")))) (build-system cmake-build-system) (synopsis "C++ test framework") (description @@ -1415,14 +1415,14 @@ use of resources by test cases."))) (define-public python-subunit-bootstrap (package (name "python-subunit-bootstrap") - (version "1.3.0") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "python-subunit" version)) (sha256 (base32 - "1fsw8rsn1s3nklx06mayrg5rn2zbky6wwjc5z07s7rf1wjzfs1wn")))) + "0j0ymmnc5nfxi1qzvy59j27viqca7l7xd0y9x29g7yr0h693j804")))) (build-system python-build-system) (propagated-inputs `(("python-extras" ,python-extras) @@ -2681,7 +2681,7 @@ provides a simple way to achieve this.") (define-public umockdev (package (name "umockdev") - (version "0.14.3") + (version "0.14.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/martinpitt/umockdev/" @@ -2689,7 +2689,7 @@ provides a simple way to achieve this.") "umockdev-" version ".tar.xz")) (sha256 (base32 - "15smnxwplk48nas2c8ji6a5fqcsh770f1yl5nc2j5iprjspbm4mg")))) + "0xmi24ckpps32k7hc139psgbsnsf4g106sv4l9m445m46amkxggd")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 902f2a723c..3d6a1b03ec 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -301,7 +301,7 @@ "/svntogit-packages/" revision "/trunk/" name)) (sha256 (base32 hash)))) -(define %chromium-version "86.0.4240.183") +(define %chromium-version "86.0.4240.198") (define %ungoogled-revision "b68e17f32e9eff56615a07b44e457835bb9460c6") (define %debian-revision "debian/84.0.4147.105-1") (define %arch-revision "2cbe439471932d30ff2c8ded6b3dfd51b312bbc9") @@ -455,7 +455,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "1g39i82js7fm4fqb8i66d6xs0kzqjxzi4vzvvwz5y9rkbikcc4ma")) + "0i3s1il0x5yi3528gdsg3bhnyhs2x24zh7p1nd5apv3va9g85ax0")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index e66132ab40..5b238ab996 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -21,6 +22,7 @@ (define-module (gnu packages clojure) #:use-module (gnu packages) + #:use-module (gnu packages java) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -78,6 +80,8 @@ (sha256 (base32 "1kcyv2836acs27vi75hvf3r773ahv2nlh9b3j9xa9m9sdanz1h83"))))) (build-system ant-build-system) + (inputs + `(("jre" ,icedtea))) (arguments `(#:imported-modules ((guix build clojure-utils) (guix build guile-build-system) @@ -114,7 +118,23 @@ (add-after 'install-license-files 'install-doc (cut install-doc #:doc-dirs '("doc/clojure/") <...>)) (add-after 'install-doc 'install-javadoc - (install-javadoc "target/javadoc/"))))) + (install-javadoc "target/javadoc/")) + (add-after 'install 'make-wrapper + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (wrapper (string-append out "/bin/clojure"))) + (mkdir-p (string-append out "/bin")) + (with-output-to-file wrapper + (lambda _ + (display + (string-append + "#!" + (which "sh") + "\n\n" + (assoc-ref inputs "jre") "/bin/java -jar " + out "/share/java/clojure.jar \"$@\"\n")))) + (chmod wrapper #o555)) + #t))))) (native-inputs libraries) (home-page "https://clojure.org/") (synopsis "Lisp dialect running on the JVM") diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index cf3bc406bc..bfbedfd984 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -101,7 +101,7 @@ (version "3.16.5") (source (origin (method url-fetch) - (uri (string-append "https://www.cmake.org/files/v" + (uri (string-append "https://cmake.org/files/v" (version-major+minor version) "/cmake-" version ".tar.gz")) (sha256 diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 083b82bf36..287fef33ec 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -804,7 +804,10 @@ decompression of some loosely related file formats used by Microsoft.") ("valgrind" ,valgrind))) (arguments `(#:test-target "test" - #:make-flags (list "CC=gcc" + ;; TODO: Integrate in next rebuild cycle. + #:make-flags (list ,(if (%current-target-system) + (string-append "CC=" (cc-for-target)) + "CC=gcc") (string-append "prefix=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (delete 'configure) ;no configure script @@ -845,9 +848,9 @@ time for compression ratio.") "0zmhvczscqz0mzh4b9m8m42asq14db0a6lc8clp5ljq5ybrv70d9")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no check target + `(#:tests? #f ; no check target #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) "XZ_SUPPORT=1" "LZO_SUPPORT=1" "LZ4_SUPPORT=1" @@ -952,7 +955,8 @@ tarballs.") "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq")))) (build-system gnu-build-system) (arguments - `(#:make-flags (list "INSTALL=install" "CC=gcc" + `(#:make-flags (list "INSTALL=install" + (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases (delete 'configure) @@ -1297,7 +1301,7 @@ or junctions, and always follows hard links.") (source (origin (method git-fetch) (uri (git-reference - (url "http://github.com/twogood/unshield.git") + (url "http://github.com/twogood/unshield") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1422,7 +1426,10 @@ or junctions, and always follows hard links.") #t)))) #:make-flags - (list "CC=gcc" + ;; TODO: Integrate in next rebuild cycle. + (list ,(if (%current-target-system) + (string-append "CC=" (cc-for-target)) + "CC=gcc") (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib") (string-append "INCLUDEDIR=" (assoc-ref %outputs "lib") "/include") @@ -1454,8 +1461,14 @@ speed.") (version (package-version zstd)) (source (package-source zstd)) (build-system gnu-build-system) + (inputs + `(,@(if (%current-target-system) + `(("googletest" ,googletest)) + '()))) (native-inputs - `(("googletest" ,googletest))) + `(,@(if (%current-system) + `(("googletest" ,googletest)) + '()))) (arguments `(#:phases (modify-phases %standard-phases @@ -1473,7 +1486,8 @@ speed.") (install-file "README.md" doc) #t)))) #:make-flags - (list "CC=gcc" + (list (string-append "CC=" ,(cc-for-target)) + (string-append "CXX=" ,(cxx-for-target)) (string-append "PREFIX=" (assoc-ref %outputs "out"))))) (home-page (package-home-page zstd)) (synopsis "Threaded implementation of the Zstandard compression algorithm") @@ -1667,7 +1681,7 @@ archive can be reverted.") (source (origin (method url-fetch) - (uri (string-append "http://savannah.nongnu.org/download/atool/atool-" + (uri (string-append "mirror://savannah/atool/atool-" version ".tar.gz")) (sha256 (base32 diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm index e57e40c2ad..fb6a899b48 100644 --- a/gnu/packages/coq.scm +++ b/gnu/packages/coq.scm @@ -522,7 +522,7 @@ Coq proof assistant.") (source (origin (method git-fetch) (uri (git-reference - (url "git://github.com/uds-psl/autosubst.git") + (url "git://github.com/uds-psl/autosubst") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 48d0b51b43..f0d8cd2a40 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -194,7 +194,7 @@ combination of these streams.") (define-public xsimd (package (name "xsimd") - (version "7.2.3") + (version "7.4.9") (source (origin (method git-fetch) @@ -202,7 +202,7 @@ combination of these streams.") (url "https://github.com/QuantStack/xsimd") (commit version))) (sha256 - (base32 "1ny2qin1j4h35mljivh8z52kwdyjxf4yxlzb8j52ji91v2ccc88j")) + (base32 "11by8gbshm4vv6flqp0ihff8c6nmbaqq7ms93b38rrq68bigcply")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -212,11 +212,12 @@ combination of these streams.") `(("googletest" ,googletest))) (home-page "https://github.com/QuantStack/xsimd") (synopsis "C++ wrappers for SIMD intrinsics and math implementations") - (description "xsimd provides a unified means for using SIMD features for -library authors. Namely, it enables manipulation of batches of numbers with -the same arithmetic operators as for single values. It also provides -accelerated implementation of common mathematical functions operating on -batches.") + (description + "xsimd provides a unified means for using @acronym{SIMD, single instruction +multiple data} features for library authors. Namely, it enables manipulation of +batches of numbers with the same arithmetic operators as for single values. +It also provides accelerated implementation of common mathematical functions +operating on batches.") (license license:bsd-3))) (define-public chaiscript diff --git a/gnu/packages/crates-graphics.scm b/gnu/packages/crates-graphics.scm index 9193479092..11bdd4c4f4 100644 --- a/gnu/packages/crates-graphics.scm +++ b/gnu/packages/crates-graphics.scm @@ -183,20 +183,12 @@ text or blue underlined text, on ANSI terminals.") (arguments `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.53) - ("rust-metadeps" ,rust-metadeps-1.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-metadeps" ,rust-metadeps-1.1)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libaom" ,libaom) - ("libclang" ,clang) + ("clang" ,clang) ("llvm" ,llvm))) (home-page "https://github.com/rust-av/aom-rs") (synopsis "FFI bindings to aom") @@ -402,19 +394,12 @@ for computer graphics.") (arguments `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.54) - ("rust-metadeps" ,rust-metadeps-1.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-metadeps" ,rust-metadeps-1.1)))) + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs `(("dav1d" ,dav1d) - ("pkg-config" ,pkg-config) - ("libclang" ,clang) + ("clang" ,clang) ("llvm" ,llvm))) (home-page "https://github.com/rust-av/dav1d-rs") (synopsis "FFI bindings to dav1d") diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 3b4e02278a..82e37a0f8d 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crates-graphics) #:use-module (gnu packages crates-gtk) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages fontutils) @@ -653,6 +654,30 @@ be used with the stdlib.") (description "This package provides the glue for the Android JNI.") (license license:expat))) +(define-public rust-ansi-parser-0.6 + (package + (name "rust-ansi-parser") + (version "0.6.5") + (source + (origin + (method url-fetch) + (uri (crate-uri "ansi-parser" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "152idb8a6gwdxzj6m099h3xgx8vw0sjc6skgw94nm2k3y5swc6kn")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-heapless" ,rust-heapless-0.5) + ("rust-nom" ,rust-nom-4.2)))) + (home-page "https://gitlab.com/DavidBittner/ansi-parser") + (synopsis "Library using nom for parsing ANSI escape codes") + (description + "This package provides a library using nom for parsing ANSI +escape codes.") + (license license:mpl2.0))) + (define-public rust-antidote-1.0 (package (name "rust-antidote") @@ -1446,6 +1471,28 @@ trace (backtrace) at runtime in a Rust program.") (license (list license:asl2.0 license:expat)))) +(define-public rust-base58-0.1 + (package + (name "rust-base58") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "base58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10xfw6v7jzn9i682mkw9nqybzafrvl3i2wawwgp5a8gh2n0fw92h")))) + (build-system cargo-build-system) + (home-page "https://github.com/debris/base58") + (synopsis "Tiny and fast base58 encoding") + (description + "Encode to base58 using only Rust. This package is based on +@url{https://github.com/trezor/trezor-crypto/blob/master/base58.c} at commit +c6e7d37. However, this package works only up to 128 bytes.") + (license license:expat))) + (define-public rust-base64-0.12 (package (name "rust-base64") @@ -1702,11 +1749,6 @@ that uses Serde for transforming structs into bytes and vice versa!") (add-after 'unpack 'enable-unstable-features (lambda _ (setenv "RUSTC_BOOTSTRAP" "1") - #t)) - (add-before 'configure 'configure-clang - (lambda* (#:key inputs #:allow-other-keys) - (setenv "LIBCLANG_PATH" (string-append (assoc-ref inputs "clang") - "/lib")) #t))))) (home-page "https://rust-lang.github.io/rust-bindgen/") (synopsis "Generate Rust FFI bindings to C and C++ libraries.") @@ -1751,17 +1793,9 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + ("rust-shlex" ,rust-shlex-0.1)))) (inputs - `(("libclang" ,clang))))) + `(("clang" ,clang))))) (define-public rust-bindgen-0.53 (package @@ -1798,15 +1832,7 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-shlex" ,rust-shlex-0.1)))))) (define-public rust-bindgen-0.52 (package @@ -1844,15 +1870,7 @@ bindings to C and C++ libraries.") #:cargo-development-inputs (("rust-clap" ,rust-clap-2) ("rust-diff" ,rust-diff-0.1) - ("rust-shlex" ,rust-shlex-0.1)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-shlex" ,rust-shlex-0.1)))))) (define-public rust-bindgen-0.51 (package @@ -2623,6 +2641,37 @@ dependency on the rust stdlib. This makes it suitable for embedded devices and kernels.") (license (list license:bsd-3 license:expat)))) +(define-public rust-bs58-0.2 + (package + (name "rust-bs58") + (version "0.2.5") + (source + (origin + (method url-fetch) + (uri (crate-uri "bs58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "125i962x0m0ggdif6ds51wfif2lypiicy469dj5j2l6rm6xycpn9")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-sha2" ,rust-sha2-0.8)) + #:cargo-development-inputs + (("rust-assert-matches" ,rust-assert-matches-1.3) + ("rust-base58" ,rust-base58-0.1) + ("rust-rust-base58" ,rust-rust-base58-0.0)))) + (home-page "https://github.com/mycorrhiza/bs58-rs") + (synopsis "Another Base58 codec implementation") + (description + "Another Base58 codec implementation. Compared to the base58 crate this +is significantly faster at decoding (about 2.4x as fast when decoding 32 +bytes), almost the same speed for encoding (about 3% slower when encoding 32 +bytes), doesn't have the 128 byte limitation and supports a configurable +alphabet.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-bstr-0.2 (package (name "rust-bstr") @@ -2671,6 +2720,35 @@ UTF-8.") (base32 "0nzi9vqhl56ws8gq39f3aj4qjrr4l3g5lbkkcj8xq1x4cb74wq2r")))))) +(define-public rust-buffered-reader-0.9 + (package + (name "rust-buffered-reader") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "buffered-reader" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "05rklfiia1k4c4ifpim08l22i0q0l3j9xdg2yh3njrp6w58z6z13")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bzip2" ,rust-bzip2-0.3) + ("rust-flate2" ,rust-flate2-1) + ("rust-libc" ,rust-libc-0.2)))) + (home-page "https://sequoia-pgp.org/") + (synopsis "Super-powered Reader") + (description + "Like the @code{BufRead} trait, the @code{BufferedReader} trait has an +internal buffer that is directly exposed to the user. This design enables two +performance optimizations. First, the use of an internal buffer amortizes +system calls. Second, exposing the internal buffer allows the user to work +with data in place, which avoids another copy.") + (license license:gpl3))) + (define-public rust-build-const-0.2 (package (name "rust-build-const") @@ -3423,17 +3501,9 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-5)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.28)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))) + (("rust-clang-sys" ,rust-clang-sys-0.28)))) (inputs - `(("libclang" ,clang))) + `(("clang" ,clang))) (home-page "https://github.com/jethrogb/rust-cexpr") (synopsis "C expression parser and evaluator") (description @@ -3458,15 +3528,7 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-4.2)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.28)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + (("rust-clang-sys" ,rust-clang-sys-0.28)))))) (define-public rust-cexpr-0.2 (package @@ -3487,15 +3549,7 @@ archive to be linked into Rustcode.") `(#:cargo-inputs (("rust-nom" ,rust-nom-3)) #:cargo-development-inputs - (("rust-clang-sys" ,rust-clang-sys-0.11)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + (("rust-clang-sys" ,rust-clang-sys-0.11)))))) (define-public rust-cfg-if-0.1 (package @@ -3598,20 +3652,12 @@ depending on a large number of #[cfg] parameters. Structured like an "0695kfrqx7n091fzm6msbqg2q2kyhka64q08lm63f3l9d964i8cx")))) (build-system cargo-build-system) (inputs - `(("libclang" ,clang))) + `(("clang" ,clang))) (arguments `(#:cargo-inputs (("rust-glob" ,rust-glob-0.3) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.6)) - #:phases - (modify-phases %standard-phases - (add-before 'configure 'configure-clang - (lambda* (#:key inputs #:allow-other-keys) - (setenv "LIBCLANG_PATH" - (string-append (assoc-ref inputs "libclang") - "/lib")) - #t))))) + ("rust-libloading" ,rust-libloading-0.6)))) (home-page "https://github.com/KyleMayes/clang-sys") (synopsis "Rust bindings for libclang") (description "This package provides Rust bindings for libclang.") @@ -3635,15 +3681,7 @@ depending on a large number of #[cfg] parameters. Structured like an `(#:cargo-inputs (("rust-glob" ,rust-glob-0.3) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.28 (package @@ -3676,15 +3714,7 @@ depending on a large number of #[cfg] parameters. Structured like an `(#:cargo-inputs (("rust-glob" ,rust-glob-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.23 (package @@ -3721,15 +3751,7 @@ depending on a large number of #[cfg] parameters. Structured like an (("rust-clippy" ,rust-clippy-0.0) ("rust-glob" ,rust-glob-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.5)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.5)))))) (define-public rust-clang-sys-0.11 (package @@ -3753,15 +3775,7 @@ depending on a large number of #[cfg] parameters. Structured like an ("rust-glob" ,rust-glob-0.2) ("rust-lazy-static" ,rust-lazy-static-0.2) ("rust-libc" ,rust-libc-0.2) - ("rust-libloading" ,rust-libloading-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-environmental-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "libclang"))) - (setenv "LIBCLANG_PATH" - (string-append clang "/lib"))) - #t))))))) + ("rust-libloading" ,rust-libloading-0.3)))))) (define-public rust-clap-2 (package @@ -4446,6 +4460,71 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.") semantics than those provided by @code{as} or @code{From}/@code{Into}.") (license license:expat))) +(define-public rust-cookie-0.12 + (package + (name "rust-cookie") + (version "0.12.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "cookie" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mdvqixahcywvqp0y8k2skkgbpfhsp0w73l9mz93dcrx1gq091l8")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-ring" ,rust-ring-0.14) + ("rust-time" ,rust-time-0.1) + ("rust-url" ,rust-url-1)))) + (home-page "https://github.com/SergioBenitez/cookie-rs") + (synopsis + "Crate for parsing HTTP cookie headers and managing a cookie jar") + (description + "Parse HTTP cookie headers and manage a cookie jar with this crate. +It supports signed and private (encrypted + signed) jars.") + (license (list license:asl2.0 license:expat)))) + +(define-public rust-cookie-store-0.7 + (package + (name "rust-cookie-store") + (version "0.7.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "cookie-store" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "174i9k9g62pfx7y1nqynywdpjplkl3j4hi3ck6bz2r996qzhnxa6")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-cookie" ,rust-cookie-0.12) + ("rust-idna" ,rust-idna-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-publicsuffix" ,rust-publicsuffix-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-time" ,rust-time-0.1) + ("rust-try-from" ,rust-try-from-0.3) + ("rust-url" ,rust-url-1)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)))) + (home-page "https://github.com/pfernie/cookie_store") + (synopsis "Implementation of Cookie storage and retrieval per RFC6265") + (description + "This crate provides an implementation for storing and retrieving Cookies per +the path and domain matching rules specified in RFC6265. + +Split from the user_agent crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-cordic-0.1 (package (name "rust-cordic") @@ -5386,6 +5465,34 @@ Code (MAC) algorithms.") algorithms.") (license (list license:expat license:asl2.0)))) +(define-public rust-cryptovec-0.4 + (package + (name "rust-cryptovec") + (version "0.4.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "cryptovec" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1n88dmhfb2dxs48zllq1g1dya76zx4fajw482qy8jj4hgg1da4p4")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; CryptoVec::from_slice failed + #:cargo-inputs + (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2)))) + (home-page "https://crates.io/crates/cryptovec") + (synopsis + "Vector which zeroes its memory on clears and reallocations") + (description + "This package provides a vector which zeroes its memory on clears and +reallocations.") + (license license:asl2.0))) + (define-public rust-cssparser-0.27 (package (name "rust-cssparser") @@ -5714,14 +5821,7 @@ use with bindgen.") ("rust-winapi" ,rust-winapi-0.3) ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -6531,6 +6631,28 @@ Diesel.") #:cargo-development-inputs (("rust-term" ,rust-term-0.2)))))) +(define-public rust-diffs-0.3 + (package + (name "rust-diffs") + (version "0.3.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "diffs" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "036sqycmir4bbl4016jprsyjq4hicc31r68dyqadmc8ac9pk55d1")))) + (build-system cargo-build-system) + (home-page "https://nest.pijul.com/pijul_org/pijul") + (synopsis "Diff algorithms, also called longest common subsequence") + (description + "This package provides a number of diff algorithms, also called longest +common subsequence. The diff algorithms include Myer's diff and Patience +diff.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-digest-0.9 (package (name "rust-digest") @@ -7554,6 +7676,26 @@ Standard.") accessor functions on enums.") (license (list license:expat license:asl2.0)))) +(define-public rust-enum-as-inner-0.2 + (package + (inherit rust-enum-as-inner-0.3) + (name "rust-enum-as-inner") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "enum-as-inner" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0zg3h7k3g1z7a9ayqy63sk302d4dg5g2h274ddv80mj4jxn2cn1x")))) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-0.4) + ("rust-quote" ,rust-quote-0.6) + ("rust-syn" ,rust-syn-0.15)))))) + (define-public rust-env-logger-0.7 (package (name "rust-env-logger") @@ -9788,6 +9930,31 @@ API library @code{gdi32}.") "This package provides a package for generating 3D meshes/") (license license:asl2.0))) +(define-public rust-getch-0.2 + (package + (name "rust-getch") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "getch" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "00in8q95qi8a5q3zn2zcaqp5avj79f5myd2a4zfdy2m24ycvbc5v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-termios" ,rust-termios-0.2)))) + (home-page "https://nest.pijul.com/pijul_org/getch") + (synopsis "Portable implementation of getch") + (description + "This package provides a portable implementation of getch, using +@code{_getch} on Windows, and @code{termios} on Unix.") + (license license:asl2.0))) + (define-public rust-getopts-0.2 (package (name "rust-getopts") @@ -9863,14 +10030,7 @@ retrieving random data from system source.") (arguments `(#:cargo-inputs (("rust-gettext-sys" ,rust-gettext-sys-0.19) - ("rust-locale-config" ,rust-locale-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))) + ("rust-locale-config" ,rust-locale-config-0.3)))) (inputs `(("gettext" ,gettext-minimal))) (home-page "https://github.com/Koka/gettext-rs") @@ -9895,14 +10055,7 @@ retrieving random data from system source.") (arguments `(#:cargo-inputs (("rust-gettext-sys" ,rust-gettext-sys-0.19) - ("rust-locale-config" ,rust-locale-config-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))))) + ("rust-locale-config" ,rust-locale-config-0.2)))))) (define-public rust-gettext-sys-0.19 (package @@ -9923,14 +10076,7 @@ retrieving random data from system source.") (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-cc" ,rust-cc-1)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'use-system-gettext - (lambda* (#:key inputs #:allow-other-keys) - (let ((gettext (assoc-ref inputs "gettext"))) - (setenv "GETTEXT_SYSTEM" gettext) - #t)))))) + (("rust-cc" ,rust-cc-1)))) (inputs `(("gettext" ,gettext-minimal))) (home-page "https://github.com/Koka/gettext-rs") @@ -10095,10 +10241,11 @@ DWARF debugging format.") ("rust-thread-id" ,rust-thread-id-3) ("rust-time" ,rust-time-0.1)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("libssh2" ,libssh2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/rust-lang/git2-rs") (synopsis "Rust bindings to libgit2") @@ -11660,6 +11807,40 @@ SystemTime}}.") ("rust-tokio-mockstream" ,rust-tokio-mockstream-1) ("rust-url" ,rust-url-1)))))) +(define-public rust-hyper-old-types-0.11 + (package + (name "rust-hyper-old-types") + (version "0.11.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "hyper-old-types" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1i69sks0bwamzqdbx8ffgkssxffv6crdmwjgl47nr5pkxi8vx5k8")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Tests do not compile + #:cargo-inputs + (("rust-base64" ,rust-base64-0.9) + ("rust-bytes" ,rust-bytes-0.4) + ("rust-http" ,rust-http-0.1) + ("rust-httparse" ,rust-httparse-1) + ("rust-language-tags" ,rust-language-tags-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-mime" ,rust-mime-0.3) + ("rust-percent-encoding" ,rust-percent-encoding-1.0) + ("rust-time" ,rust-time-0.1) + ("rust-unicase" ,rust-unicase-2)))) + (home-page "https://hyper.rs") + (synopsis "HTTP types from hyper 0.11.x") + (description + "This package contains HTTP types from the newer hyper crate in versions +0.11.x.") + (license license:expat))) + (define-public rust-hyper-rustls-0.21 (package (name "rust-hyper-rustls") @@ -13301,18 +13482,12 @@ algorithm and related formats (ZLIB, GZIP).") ("rust-openssl-sys" ,rust-openssl-sys-0.9) ;; Build dependencies: ("rust-cc" ,rust-cc-1) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/rust-lang/git2-rs") (synopsis "Native bindings to the libgit2 library") @@ -13553,6 +13728,69 @@ allocator.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libpijul-0.12 + (package + (name "rust-libpijul") + (version "0.12.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "libpijul" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18d9n8xaq5ncq3375f0xrr96l8si1frczgzdlrz3fl1jby8vbl6f")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; backend::file_header::test_fileheader_alignment fails + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-bincode" ,rust-bincode-1) + ("rust-bitflags" ,rust-bitflags-1) + ("rust-bs58" ,rust-bs58-0.2) + ("rust-byteorder" ,rust-byteorder-1) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-diffs" ,rust-diffs-0.3) + ("rust-failure" ,rust-failure-0.1) + ("rust-flate2" ,rust-flate2-1) + ("rust-hex" ,rust-hex-0.3) + ("rust-ignore" ,rust-ignore-0.4) + ("rust-log" ,rust-log-0.4) + ("rust-openssl" ,rust-openssl-0.10) + ("rust-rand" ,rust-rand-0.6) + ("rust-sanakirja" ,rust-sanakirja-0.10) + ("rust-sequoia-openpgp" ,rust-sequoia-openpgp-0.9) + ("rust-serde" ,rust-serde-1) + ("rust-serde-derive" ,rust-serde-derive-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-tempdir" ,rust-tempdir-0.3) + ("rust-toml" ,rust-toml-0.4)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("clang" ,clang) + ("nettle" ,nettle) + ("openssl" ,openssl))) + (home-page "https://pijul.org/") + (synopsis "Library component of the pijul version control system") + (description + "This crate contains the core API to access Pijul repositories. + +The key object is a @code{Repository}, on which @code{Txn} (immutable +transactions) and @code{MutTxn} (mutable transactions) can be started, to +perform a variety of operations. + +Another important object is a @code{Patch}, which encodes two different pieces +of information: + +@itemize +@item Information about deleted and inserted lines between two versions of a +file. +@item Information about file moves, additions and deletions. +@end itemize") + (license license:gpl2+))) + (define-public rust-libsqlite3-sys-0.15 (package (name "rust-libsqlite3-sys") @@ -13616,6 +13854,38 @@ known as zlib).") (license (list license:asl2.0 license:expat)))) +(define-public rust-line-0.1 + (package + (name "rust-line") + (version "0.1.15") + (source + (origin + (method url-fetch) + (uri (crate-uri "line" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0pissvrl5398701zlfd22w51ca32vhw83vbsl58a330hr4w5ra04")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-utf8parse" ,rust-utf8parse-0.1)))) + (home-page "https://crates.io/crates/line") + (synopsis "Rust implementation of line editing in a terminal") + (description + "The main goals of this library are: + +@itemize +@item Portability: should work on any system (Unix or Windows). +@item Support: was written for a real-world project (Pijul), so support is +unlikely to stop soon. +@item Output quality: avoid usual blinking terminal lines that older C +libraries have. +@end itemize") + (license (list license:asl2.0 license:expat)))) + (define-public rust-line-wrap-0.1 (package (name "rust-line-wrap") @@ -13735,18 +14005,12 @@ pairs in insertion order.") ;; Build dependencies: ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libssh2" ,libssh2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://github.com/alexcrichton/ssh2-rs") (synopsis "Native bindings to the libssh2 library") @@ -14378,6 +14642,31 @@ statement, the first matching branch is the item that gets emitted.") whether an expression matches a pattern.") (license license:expat))) +(define-public rust-matchers-0.0 + (package + (name "rust-matchers") + (version "0.0.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "matchers" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-regex-automata" ,rust-regex-automata-0.1)))) + (home-page "https://github.com/hawkw/matchers") + (synopsis "Regex matching on character and byte streams") + (description + "Use this crate to match on character and byte streams using regular +grammars. It provides the subset of the regex crate that only deals with +matching, not parsing substrings.") + (license license:expat))) + (define-public rust-matrixmultiply-0.2 (package (name "rust-matrixmultiply") @@ -15611,17 +15900,11 @@ IO of Windows's named pipes.") ("rust-security-framework-sys" ,rust-security-framework-sys-0.3) ("rust-tempfile" ,rust-tempfile-3)) #:cargo-development-inputs - (("rust-hex" ,rust-hex-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + (("rust-hex" ,rust-hex-0.3)))) (native-inputs - `(("openssl" ,openssl) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) (home-page "https://github.com/sfackler/rust-native-tls") (synopsis "Wrapper over a platform's native TLS implementation") @@ -15704,21 +15987,27 @@ types as proposed in RFC 1158.") ("rust-thiserror" ,rust-thiserror-1)) #:cargo-development-inputs (("rust-bindgen" ,rust-bindgen-0.51) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-missing-env-vars - (lambda* (#:key inputs #:allow-other-keys) - ;; FIXME: why do we need to set this? - (setenv "LIBCLANG_PATH" - (string-append (assoc-ref inputs "clang") "/lib")) - #t))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) (home-page "https://gitlab.com/sequoia-pgp/nettle-rs") (synopsis "Rust bindings for the Nettle cryptographic library") (description "This package provides Rust bindings for the Nettle cryptographic library.") (license (list license:lgpl3 license:gpl2 license:gpl3)))) +(define-public rust-nettle-5 + (package + (inherit rust-nettle-7) + (version "5.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "nettle" version)) + (file-name + (string-append (package-name rust-nettle-7) "-" version ".tar.gz")) + (sha256 + (base32 "0zfplqdf3mag8r7lc124hl24vri8yg711jmm8gl1mpwnlhass2n4")) + (patches (search-patches "rust-nettle-disable-vendor.patch")))))) + (define-public rust-nettle-sys-2 (package (name "rust-nettle-sys") @@ -15738,8 +16027,7 @@ cryptographic library.") (inputs `(("nettle", nettle))) (arguments - `(#:skip-build? #t - #:cargo-development-inputs + `(#:cargo-inputs (("rust-bindgen" ,rust-bindgen-0.51) ("rust-pkg-config" ,rust-pkg-config-0.3)))) (home-page "https://gitlab.com/sequoia-pgp/nettle-sys") @@ -17183,7 +17471,7 @@ You probably don't want to link to this crate directly; instead check out the (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras (define-public rust-openssl-probe-0.1 @@ -17227,17 +17515,11 @@ system for OpenSSL.") ("rust-autocfg" ,rust-autocfg-1.0) ("rust-cc" ,rust-cc-1) ("rust-pkg-config" ,rust-pkg-config-0.3) - ("rust-vcpkg" ,rust-vcpkg-0.2)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-vcpkg" ,rust-vcpkg-0.2)))) (native-inputs - `(("openssl" ,openssl) - ("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) (home-page "https://github.com/sfackler/rust-openssl") (synopsis "FFI bindings to OpenSSL") (description @@ -17271,14 +17553,7 @@ system for OpenSSL.") (("rust-gdi32-sys" ,rust-gdi32-sys-0.2) ("rust-libc" ,rust-libc-0.2) ("rust-user32-sys" ,rust-user32-sys-0.2) - ("rust-pkg-config" ,rust-pkg-config-0.3)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'find-openssl - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))))) + ("rust-pkg-config" ,rust-pkg-config-0.3)))))) (define-public rust-openssl-sys-extras-0.7 (package @@ -17306,7 +17581,7 @@ system for OpenSSL.") (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))) ; openssl-1.0 specifically (home-page "https://github.com/sfackler/rust-openssl") (synopsis @@ -18051,6 +18326,27 @@ and would-block I/O operations.") path.Clean.") (license (list license:expat license:asl2.0)))) +(define-public rust-pathdiff-0.1 + (package + (name "rust-pathdiff") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "pathdiff" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cfg3isnx6mf3wbi7rsg4nmvywby40sbcs589n20fgi09l4p1gx3")))) + (build-system cargo-build-system) + (home-page "https://github.com/Manishearth/pathdiff") + (synopsis "Library for diffing paths to obtain relative paths") + (description + "Use diff_paths to construct a relative path from a provided base +directory path to the provided path.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-pbkdf2-0.4 (package (name "rust-pbkdf2") @@ -19682,6 +19978,38 @@ macro use case.") @code{proc_macro_derive} pretend to be @code{proc_macro}.") (license (list license:expat license:asl2.0)))) +(define-public rust-progrs-0.1 + (package + (name "rust-progrs") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "progrs" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "108jx8jrv2r1brhvbqfw6fwx298k5fnw3m46kn7lv0jx2wmf0ifz")))) + (build-system cargo-build-system) + (arguments '(#:tests? #f)) + (home-page "https://nest.pijul.com/laumann/progrs") + (synopsis "Small library for displaying compact progress bars") + (description + "There are a number of libraries out there that can be used for progress +display, but in the author's opinion these libraries do it almost right - +either they eat up too much screen real estate (by not sticking to one line +per thing that should use progress) or they try to align stuff left and right. + +In the author's humble opinion, the best example of just the right amount of +information vs screen real-estate is in the Git progress output (when cloning, +pulling, etc). It uses one line per thing, and may display both percentage +complete (in cases where it's known) and even throughput (for network +transfer). + +This library mimics the Git way of showing progress.") + (license license:gpl2+))) + (define-public rust-proptest-0.9 (package (name "rust-proptest") @@ -21924,6 +22252,29 @@ functionality as retain but gives mutable borrow to the predicate.") (description "This package provided safe, fast, small crypto using Rust.") (license (list license:isc license:openssl)))) +(define-public rust-ring-0.14 + (package + (inherit rust-ring-0.16) + (name "rust-ring") + (version "0.14.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "ring" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0g091akf4dpg9qj05z3gc4nlrs57mjj2bqab98gaqp79wf3c2ss2")))) + (arguments + `(#:cargo-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-spin" ,rust-spin-0.5) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-winapi" ,rust-winapi-0.3) + ("rust-cc" ,rust-cc-1)))))) + (define-public rust-ring-0.13 (package/inherit rust-ring-0.16 (name "rust-ring") @@ -22094,6 +22445,41 @@ rust.") console applications.") (license license:asl2.0))) +(define-public rust-rpassword-3 + (package + (inherit rust-rpassword-4) + (name "rust-rpassword") + (version "3.0.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rpassword" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vkifbbs160d7i7wy3kb0vw9mbf3pf470hg8f623rjkzmsyafky3")))) + (arguments + `(#:cargo-inputs + (("rust-kernel32-sys" ,rust-kernel32-sys-0.2) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2)))))) + +(define-public rust-rpassword-2 + (package + (inherit rust-rpassword-3) + (name "rust-rpassword") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rpassword" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1v255xqkig5lwnczvm3achydhxx6kf9jcdxdlgzndgpd18bp6x6k")))))) + (define-public rust-rusqlite-0.19 (package (name "rust-rusqlite") @@ -22193,6 +22579,41 @@ hashing function.") password hashing function.") (license (list license:expat license:asl2.0)))) +(define-public rust-rust-base58-0.0 + (package + (name "rust-rust-base58") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "rust-base58" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fa4y2jjjmg1a0cr3gz4z8rkic0hx2vx5nm23za9lwf6rlgvj4xk")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Otherwise we get an error: no method named `gen_iter` found + ;; for type `rand::prelude::ThreadRng` + (substitute* "Cargo.toml" + (("rand.*") "rand = \"<0.6\"\n")) + #t)))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-num" ,rust-num-0.1)) + #:cargo-development-inputs + (("rust-rand" ,rust-rand-0.4)))) + (home-page "https://github.com/nham/rust-base58") + (synopsis + "Simple library for converting to and from base-58 strings") + (description + "Convert to and from base-58 strings with a simple Rust api. + Currently the conversion uses the Bitcoin base58 alphabet.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-rust-hawktracer-0.7 (package (name "rust-rust-hawktracer") @@ -23061,6 +23482,35 @@ Rust.") ("rust-tempfile" ,rust-tempfile-3) ("rust-webpki-roots" ,rust-webpki-roots-0.17)))))) +(define-public rust-rustls-0.15 + (package + (inherit rust-rustls-0.16) + (name "rust-rustls") + (version "0.15.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vh93fhqfbn4ysw4xzkpkpqdz36xixz4mhs1qllgldfq5iay6wgj")))) + (arguments + `(#:tests? #f ;; 1/111 tests fail (test file not found) + #:cargo-inputs + (("rust-base64" ,rust-base64-0.10) + ("rust-log" ,rust-log-0.4) + ("rust-ring" ,rust-ring-0.14) + ("rust-sct" ,rust-sct-0.5) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-log" ,rust-log-0.4) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-webpki-roots" ,rust-webpki-roots-0.16)))))) + (define-public rust-rustls-0.12 (package/inherit rust-rustls-0.16 (name "rust-rustls") @@ -23362,6 +23812,46 @@ paths point to the same file.") #:cargo-development-inputs (("rust-rand" ,rust-rand-0.3)))))) +(define-public rust-sanakirja-0.10 + (package + (name "rust-sanakirja") + (version "0.10.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "sanakirja" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fhn5lb6jn0pimnk0nbf5h4xvp28xdkdh33d57gq1ixy8b2y091y")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; tests::test_del_medium_fork fails + #:cargo-inputs + (("rust-fs2" ,rust-fs2-0.4) + ("rust-log" ,rust-log-0.4) + ("rust-memmap" ,rust-memmap-0.7) + ("rust-rand" ,rust-rand-0.6) + ("rust-uuid" ,rust-uuid-0.7)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-hex" ,rust-hex-0.3) + ("rust-tempdir" ,rust-tempdir-0.3)))) + (home-page "https://nest.pijul.com/pijul_org/sanakirja") + (synopsis "Key-value dictionary, using copy-on-write and B-trees") + (description + "This package provides a key-value dictionary, using copy-on-write and B +trees. It features: +@itemize +@item ACID semantics. +@item B trees with copy-on-write. +@item Support for referential transparency: databases can be cloned in time +O(log n) (where n is the size of the database). This was the original +motivation for writing this library. +@end itemize") + (license (list license:asl2.0 license:expat)))) + (define-public rust-scan-fmt-0.2 (package (name "rust-scan-fmt") @@ -23736,6 +24226,25 @@ Pwrite traits from the scroll crate.") (description "Certificate transparency SCT verification library") (license (list license:asl2.0 license:isc license:expat)))) +(define-public rust-sct-0.5 + (package + (inherit rust-sct-0.6) + (name "rust-sct") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sct" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fb9ym5bwswx01yyggn7v2vfryih4vnqpp4r4ssv3qaqpn7xynig")))) + (arguments + `(#:cargo-inputs + (("rust-ring" ,rust-ring-0.14) + ("rust-untrusted" ,rust-untrusted-0.6)))))) + (define-public rust-sct-0.3 (package/inherit rust-sct-0.6 (name "rust-sct") @@ -24096,6 +24605,97 @@ comparison.") (base32 "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq")))))) +(define-public rust-sequoia-openpgp-0.9 + (package + (name "rust-sequoia-openpgp") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sequoia-openpgp" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "007h2pi7lcph5jf5bxjydm7hjwjai33yk6dic3cxknki22lxlkfw")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-base64" ,rust-base64-0.9) + ("rust-buffered-reader" ,rust-buffered-reader-0.9) + ("rust-bzip2" ,rust-bzip2-0.3) + ("rust-failure" ,rust-failure-0.1) + ("rust-flate2" ,rust-flate2-1) + ("rust-idna" ,rust-idna-0.1) + ("rust-lalrpop" ,rust-lalrpop-0.17) + ("rust-lalrpop-util" ,rust-lalrpop-util-0.17) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-memsec" ,rust-memsec-0.5) + ("rust-nettle" ,rust-nettle-5) + ("rust-quickcheck" ,rust-quickcheck-0.8) + ("rust-rand" ,rust-rand-0.6) + ("rust-sequoia-rfc2822" ,rust-sequoia-rfc2822-0.9) + ("rust-time" ,rust-time-0.1)) + #:cargo-development-inputs + (("rust-rpassword" ,rust-rpassword-3)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("clang" ,clang) + ("nettle" ,nettle))) + (home-page "https://sequoia-pgp.org/") + (synopsis "OpenPGP data types and associated machinery") + (description + "This crate aims to provide a complete implementation of OpenPGP as +defined by RFC 4880 as well as some extensions (e.g., RFC 6637, which +describes ECC cryptography) for OpenPGP. This includes support for unbuffered +message processing. + +A few features that the OpenPGP community considers to be deprecated (e.g., +version 3 compatibility) have been left out. We have also updated some +OpenPGP defaults to avoid foot guns (e.g., we selected modern algorithm +defaults). If some functionality is missing, please file a bug report.") + (license license:gpl3))) + +(define-public rust-sequoia-rfc2822-0.9 + (package + (name "rust-sequoia-rfc2822") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "sequoia-rfc2822" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1aj34i6862718m162rqfv69fkmvdw063s6ws7hbp42n73gb08p5c")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-failure" ,rust-failure-0.1) + ("rust-lalrpop" ,rust-lalrpop-0.17) + ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-quickcheck" ,rust-quickcheck-0.8) + ("rust-rand" ,rust-rand-0.6)))) + (home-page "https://sequoia-pgp.org/") + (synopsis "RFC 2822 name-addr parser") + (description + "Currently, this crate only recognizes the RFC 2822 name-addr and +addr-spec productions, i.e., things of the form: + +Name (Comment) <email@@example.org> + +and + +email@@example.org + +Although the above appear simple to parse, RFC 2822's whitespace and comment +rules are rather complex. This crate implements the whole grammar." ) + (license license:gpl3))) + (define-public rust-serde-1 (package (name "rust-serde") @@ -24970,7 +25570,7 @@ functionality and without weak references.") (substitute* "Cargo.toml" ((", path =.*}") "}")) #t))))) - (native-inputs + (inputs `(("openssl" ,openssl-1.0))))) ; for openssl-sys-extras (define-public rust-sha1-asm-0.4 @@ -25149,6 +25749,27 @@ picking compatible shaders.") "This package allows easy binding to, and loading of, shared libraries.") (license (list license:asl2.0 license:expat)))) +(define-public rust-shell-escape-0.1 + (package + (name "rust-shell-escape") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "shell-escape" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fgs1iyx3b124b7njjmhfn9q5ipmhxrafavh8mxbfl9a9zk162hp")))) + (build-system cargo-build-system) + (home-page "https://github.com/sfackler/shell-escape") + (synopsis + "Escape characters that may have a special meaning in a shell") + (description + "Escape characters that may have a special meaning in a shell.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-shell-words-0.1 (package (name "rust-shell-words") @@ -25500,7 +26121,7 @@ data type.") "Rust FFI bindings to the SLEEF Vectorized Math Library.") (license (list license:asl2.0 license:expat)))) -(define-public rust-slog-2.5 +(define-public rust-slog-2 (package (name "rust-slog") (version "2.5.2") @@ -25527,32 +26148,6 @@ data type.") license:expat license:asl2.0)))) -(define-public rust-slog-2.4 - (package - (name "rust-slog") - (version "2.4.1") - (source - (origin - (method url-fetch) - (uri (crate-uri "slog" version)) - (file-name - (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "13jh74jlckzh5cygkhs0k4r82wnmw8ha2km829xwslhr83n2w6hy")))) - (build-system cargo-build-system) - (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-erased-serde" ,rust-erased-serde-0.3)))) - (home-page "https://github.com/slog-rs/slog") - (synopsis "Structured, extensible, composable logging for Rust") - (description - "Structured, extensible, composable logging for Rust.") - (license (list license:mpl2.0 - license:expat - license:asl2.0)))) - (define-public rust-smallvec-1 (package (name "rust-smallvec") @@ -25630,6 +26225,33 @@ maximal amount of configuration possible intended.") (license (list license:asl2.0 license:expat)))) +(define-public rust-socks-0.3 + (package + (name "rust-socks") + (version "0.3.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "socks" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1hnbw4c4j7dn9n3bd1v7ddkdzlxlzkfw3z29da1nxlj6jgx4r9p6")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Tests require network connection. + #:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-winapi" ,rust-winapi-0.2) + ("rust-ws2-32-sys" ,rust-ws2-32-sys-0.2)))) + (home-page "https://github.com/sfackler/rust-socks") + (synopsis "Rust SOCKS proxy clients") + (description + "You can write SOCKS proxy clients with this crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-sourcefile-0.1 (package (name "rust-sourcefile") @@ -28112,6 +28734,34 @@ fixed set of worker threads.") (license (list license:asl2.0 license:expat)))) +(define-public rust-thrussh-libsodium-0.1 + (package + (name "rust-thrussh-libsodium") + (version "0.1.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "thrussh-libsodium" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fjssjiwnmbxjvajk37l7k0fcw1ys97j7n8bpn3q3bbnz2qfrphv")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2) + ("rust-pkg-config" ,rust-pkg-config-0.3)))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libsodium" ,libsodium))) + (home-page "https://nest.pijul.com/pijul_org/thrussh") + (synopsis "Straightforward bindings to libsodium") + (description + "You can bind to libsodium from Rust with this crate.") + (license (list license:asl2.0 license:expat)))) + (define-public rust-time-0.2 (package (name "rust-time") @@ -28765,6 +29415,50 @@ applications backed by buffers.") Tokio.") (license (list license:expat license:asl2.0)))) +(define-public rust-tokio-net-0.2 + (package + (name "rust-tokio-net") + (version "0.2.0-alpha.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-net" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "15vm0bndn6zcpkp1yb6v736rbhqgim5skc76rz299xd3y0pr249a")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bytes" ,rust-bytes-0.4) + ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1) + ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6) + ("rust-futures-core-preview" ,rust-futures-core-preview-0.3) + ("rust-futures-sink-preview" ,rust-futures-sink-preview-0.3) + ("rust-futures-util-preview" ,rust-futures-util-preview-0.3) + ("rust-iovec" ,rust-iovec-0.1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-mio" ,rust-mio-0.6) + ("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1) + ("rust-mio-uds" ,rust-mio-uds-0.6) + ("rust-num-cpus" ,rust-num-cpus-1) + ("rust-parking-lot" ,rust-parking-lot-0.8) + ("rust-signal-hook-registry" ,rust-signal-hook-registry-1) + ("rust-slab" ,rust-slab-0.4) + ("rust-tokio-codec" ,rust-tokio-codec-0.1) + ("rust-tokio-executor" ,rust-tokio-executor-0.1) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-tokio-sync" ,rust-tokio-sync-0.1) + ("rust-tracing" ,rust-tracing-0.1) + ("rust-winapi" ,rust-winapi-0.3)))) + (home-page "https://tokio.rs") + (synopsis "Event loop that drives Tokio I/O resources") + (description + "This package provides the event loop that drives Tokio I/O resources.") + (license license:expat))) + (define-public rust-tokio-openssl-0.4 (package (name "rust-tokio-openssl") @@ -28959,6 +29653,33 @@ using Rustls.") ("rust-webpki-roots" ,rust-webpki-roots-0.18)))) (license (list license:expat license:asl2.0)))) +(define-public rust-tokio-rustls-0.9 + (package + (inherit rust-tokio-rustls-0.12) + (name "rust-tokio-rustls") + (version "0.9.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "tokio-rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1jd63sl177sxacnksaxhazzmamwds98xk3niprh2qib75a1rk8cm")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-bytes" ,rust-bytes-0.4) + ("rust-futures" ,rust-futures-0.1) + ("rust-iovec" ,rust-iovec-0.1) + ("rust-rustls" ,rust-rustls-0.15) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-lazy-static" ,rust-lazy-static-1) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-tokio-signal-0.2 (package (name "rust-tokio-signal") @@ -29648,6 +30369,123 @@ automatically instrumenting functions.") @code{futures} with @code{tracing}.") (license license:expat))) +(define-public rust-tracing-fmt-0.1 + (package + (name "rust-tracing-fmt") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-fmt" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0wagcrd6w8d3k7zdvg6sy2bwfh8w87i6ndia69p54fc7p3z4f1c8")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-tracing-subscriber" ,rust-tracing-subscriber-0.1)) + #:cargo-development-inputs + (("rust-tracing" ,rust-tracing-0.1)))) + (home-page "https://tokio.rs") + (synopsis "Tracing subscriber that formats and logs trace data") + (description + "This package provides a tracing subscriber that formats and logs trace +data. Moved to the tracing-subscriber crate.") + (license license:expat))) + +(define-public rust-tracing-log-0.1 + (package + (name "rust-tracing-log") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-log" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1fdr0az98q9m5kiybvdvsb2m9mg86fdidgb5czzq2d71g1qqq3sy")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-tracing-core" ,rust-tracing-core-0.1)) + #:cargo-development-inputs + (("rust-tracing" ,rust-tracing-0.1)))) + (home-page "https://tokio.rs") + (synopsis + "Provides compatibility between tracing the log crates") + (description + "Tracing is a framework for instrumenting Rust programs with +context-aware, structured, event-based diagnostic information. This crate +provides compatibility layers for using tracing alongside the logging facade +provided by the log crate. + +This crate provides: + +@itemize +@item @code{AsTrace} and @code{AsLog} traits for converting between tracing +and log types. +@item @code{LogTracer}, a @code{log::Log} implementation that consumes +@code{log::Records} and outputs them as @code{tracing::Events}. +@item An @code{env_logger} module, with helpers for using the env_logger crate +with tracing (optional, enabled by the env-logger feature). +@end itemize") + (license license:expat))) + +(define-public rust-tracing-subscriber-0.1 + (package + (name "rust-tracing-subscriber") + (version "0.1.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "tracing-subscriber" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0i9fhlyz8mn2znpgmi5bv9y24pwpkkgfxs0rwcf6dl6djmjs2b0r")))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Some test files missing. + #:cargo-inputs + (("rust-ansi-term" ,rust-ansi-term-0.11) + ("rust-chrono" ,rust-chrono-0.4) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-matchers" ,rust-matchers-0.0) + ("rust-owning-ref" ,rust-owning-ref-0.4) + ("rust-parking-lot" ,rust-parking-lot-0.9) + ("rust-regex" ,rust-regex-1) + ("rust-smallvec" ,rust-smallvec-0.6) + ("rust-tracing-core" ,rust-tracing-core-0.1) + ("rust-tracing-log" ,rust-tracing-log-0.1)) + #:cargo-development-inputs + (("rust-criterion" ,rust-criterion-0.3) + ("rust-log" ,rust-log-0.4) + ("rust-tracing" ,rust-tracing-0.1) + ("rust-tracing-log" ,rust-tracing-log-0.1)))) + (home-page "https://tokio.rs") + (synopsis "Implement and compose tracing subscribers") + (description + "Utilities for implementing and composing tracing subscribers. + +Tracing is a framework for instrumenting Rust programs to collect +scoped, structured, and async-aware diagnostics. The Subscriber trait +represents the functionality necessary to collect this trace +data. This crate contains tools for composing subscribers out of +smaller units of behaviour, and batteries-included implementations of +common subscriber functionality. + +Tracing-subscriber is intended for use by both Subscriber authors and +application authors using tracing to instrument their applications.") + (license license:expat))) + (define-public rust-traitobject-0.1 (package (name "rust-traitobject") @@ -29826,6 +30664,48 @@ extension for the Trust-DNS client to use tokio-openssl for TLS.") foundational DNS protocol library for all Trust-DNS projects.") (license (list license:expat license:asl2.0)))) +(define-public rust-trust-dns-proto-0.7 + (package + (inherit rust-trust-dns-proto-0.19) + (name "rust-trust-dns-proto") + (version "0.7.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "trust-dns-proto" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0099dm57nnizx4apik9sh3mnvr7rp9mivc903v8xss13dkgynnam")))) + (arguments + `(#:cargo-inputs + (("rust-byteorder" ,rust-byteorder-1) + ("rust-data-encoding" ,rust-data-encoding-2) + ("rust-enum-as-inner" ,rust-enum-as-inner-0.2) + ("rust-failure" ,rust-failure-0.1) + ("rust-futures" ,rust-futures-0.1) + ("rust-idna" ,rust-idna-0.1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-log" ,rust-log-0.4) + ("rust-openssl" ,rust-openssl-0.10) + ("rust-rand" ,rust-rand-0.6) + ("rust-ring" ,rust-ring-0.14) + ("rust-serde" ,rust-serde-1) + ("rust-smallvec" ,rust-smallvec-0.6) + ("rust-socket2" ,rust-socket2-0.3) + ("rust-tokio-executor" ,rust-tokio-executor-0.1) + ("rust-tokio-io" ,rust-tokio-io-0.1) + ("rust-tokio-reactor" ,rust-tokio-reactor-0.1) + ("rust-tokio-tcp" ,rust-tokio-tcp-0.1) + ("rust-tokio-timer" ,rust-tokio-timer-0.2) + ("rust-tokio-udp" ,rust-tokio-udp-0.1) + ("rust-untrusted" ,rust-untrusted-0.6) + ("rust-url" ,rust-url-1)) + #:cargo-development-inputs + (("rust-env-logger" ,rust-env-logger-0.6) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-trust-dns-resolver-0.19 (package (name "rust-trust-dns-resolver") @@ -29905,6 +30785,39 @@ other queries.") extension for the Trust-DNS client to use rustls for TLS.") (license (list license:expat license:asl2.0)))) +(define-public rust-trust-dns-rustls-0.6 + (package + (inherit rust-trust-dns-rustls-0.19) + (name "rust-trust-dns-rustls") + (version "0.6.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "trust-dns-rustls" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vbh2y7w2s5gcw33fn4hb5f927kgjm6603vw63slg9riikmsiq43")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("openssl" ,openssl))) + (arguments + `(#:cargo-test-flags + '("--release" "--" "--skip=tests::test_tls_client_stream_ipv4") + #:cargo-inputs + (("rust-futures" ,rust-futures-0.1) + ("rust-log" ,rust-log-0.4) + ("rust-rustls" ,rust-rustls-0.15) + ("rust-tokio-rustls" ,rust-tokio-rustls-0.9) + ("rust-tokio-tcp" ,rust-tokio-tcp-0.1) + ("rust-trust-dns-proto" ,rust-trust-dns-proto-0.7) + ("rust-webpki" ,rust-webpki-0.19)) + #:cargo-development-inputs + (("rust-openssl" ,rust-openssl-0.10) + ("rust-tokio" ,rust-tokio-0.1)))))) + (define-public rust-try-from-0.3 (package (name "rust-try-from") @@ -30856,7 +31769,7 @@ Unix users and groups.") ("rust-md5" ,rust-md5-0.6) ("rust-rand" ,rust-rand-0.7) ("rust-serde" ,rust-serde-1) - ("rust-slog" ,rust-slog-2.5)))) + ("rust-slog" ,rust-slog-2)))) (home-page "https://github.com/uuid-rs/uuid") (synopsis "Library to generate and parse UUIDs") (description @@ -30885,7 +31798,7 @@ Unix users and groups.") ("rust-rand" ,rust-rand-0.6) ("rust-serde" ,rust-serde-1) ("rust-sha1" ,rust-sha1-0.6) - ("rust-slog" ,rust-slog-2.4) + ("rust-slog" ,rust-slog-2) ("rust-winapi" ,rust-winapi-0.3)) #:cargo-development-inputs (("rust-bincode" ,rust-bincode-1) @@ -31057,6 +31970,26 @@ If that fails, no determination is made, and calls return None.") (base32 "1pf91pvj8n6akh7w6j5ypka6aqz08b3qpzgs0ak2kjf4frkiljwi")))))) +(define-public rust-version-compare-0.0 + (package + (name "rust-version-compare") + (version "0.0.11") + (source + (origin + (method url-fetch) + (uri (crate-uri "version-compare" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "06v688jg6gd00zvm3cp7qh2h3mz8cs2ngr09bnwxhyddxrcwh60w")))) + (build-system cargo-build-system) + (home-page "https://github.com/timvisee/version-compare") + (synopsis "Rust library to easily compare version numbers") + (description + "This package provides a Rust library to easily compare version +numbers, and test them against various comparison operators.") + (license license:expat))) + (define-public rust-version-sync-0.8 (package (name "rust-version-sync") @@ -31835,6 +32768,28 @@ attribute that is not in the shared backend crate.") Verification.") (license license:isc))) +(define-public rust-webpki-0.19 + (package + (inherit rust-webpki-0.21) + (name "rust-webpki") + (version "0.19.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10nhyxlqsa4caxlxrijm5h79rdg6ld8hqy78ldjnnfhaj3biqzjg")))) + (arguments + `(#:tests? #f ; tests fail to build "missing file tests/ed25519/ee.der" + #:cargo-inputs + (("rust-ring" ,rust-ring-0.14) + ("rust-untrusted" ,rust-untrusted-0.6)) + #:cargo-development-inputs + (("rust-base64" ,rust-base64-0.9)))))) + (define-public rust-webpki-0.18 (package/inherit rust-webpki-0.21 (name "rust-webpki") @@ -31916,6 +32871,25 @@ with webpki.") (sha256 (base32 "12vi8dh0yik0h4f0b9dnlw5i3gxyky7iblbksh6zcq4xvlvswqm2")))))) +(define-public rust-webpki-roots-0.16 + (package + (inherit rust-webpki-roots-0.17) + (name "rust-webpki-roots") + (version "0.16.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "webpki-roots" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "03ny02mwqdgd2ff23k03kbwr2rrcaymxhp7jcjjikfh340hs83y1")))) + (arguments + `(#:cargo-inputs + (("rust-untrusted" ,rust-untrusted-0.6) + ("rust-webpki" ,rust-webpki-0.19)))))) + (define-public rust-webpki-roots-0.14 (package/inherit rust-webpki-roots-0.18 (name "rust-webpki-roots") @@ -32347,9 +33321,8 @@ API.") (arguments `(#:skip-build? #t #:cargo-inputs - (("rust-winapi" ,rust-winapi-0.2)) - #:cargo-development-inputs - (("rust-winapi-build" ,rust-winapi-build-0.1)))) + (("rust-winapi" ,rust-winapi-0.2) + ("rust-winapi-build" ,rust-winapi-build-0.1)))) (home-page "https://github.com/retep998/winapi-rs") (synopsis "Function definitions for the Windows API library ws2_32") (description diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 1a9cb5c80f..1b51366d7e 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> -;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> @@ -444,15 +444,14 @@ total number of shares generated.") (define-public tomb (package (name "tomb") - (version "2.7") + (version "2.8") (source (origin (method url-fetch) - (uri (string-append "https://files.dyne.org/tomb/" + (uri (string-append "https://files.dyne.org/tomb/releases/" "Tomb-" version ".tar.gz")) (sha256 (base32 - "0x3al02796vx1cvy6y6h685c367qx70dwv471g0hmks2gr10f0cn")) - (patches (search-patches "tomb-fix-errors-on-open.patch")))) + "0bggzzqmpfiknr76lyl8iszybrcpyqlbgiqk47fxq08h2b5ln1ic")))) (build-system gnu-build-system) (native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase (inputs @@ -571,12 +570,19 @@ attacks than alternative functions such as @code{PBKDF2} or @code{bcrypt}.") (base32 "1d76ys6cp7fi4ng1w3mz2l0p9dbr7ljbk33dcywyimzjz8bahdng")))) (build-system gnu-build-system) + (outputs (list "out" "static")) (arguments `(#:make-flags (list (string-append "PREFIX=" %output) "CC=gcc") #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) ; no configure script + (add-after 'install 'install:static + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (install-file "libscrypt.a" lib) + #t)))))) (home-page "https://lolware.net/libscrypt.html") (synopsis "Password hashing library") (description "@code{libscrypt} implements @code{scrypt} key derivation @@ -1223,7 +1229,7 @@ Trusted comments are signed, thus verified, before being displayed.") (define-public libolm (package (name "libolm") - (version "3.1.5") + (version "3.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -1231,15 +1237,16 @@ Trusted comments are signed, thus verified, before being displayed.") (commit version))) (sha256 (base32 - "030g0jmmvhx2dh32k708sz6cdd5q1wz48i4gigh6dclqk10w28lm")) + "14b5cplcnbf2baq0lvz4f97m6swxpb13rvxdajxyw3s4mbvasia4")) (file-name (git-file-name name version)))) + (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - (invoke "ctest" "build/tests")))))) - (build-system cmake-build-system) + (with-directory-excursion "tests" + (invoke "ctest" "."))))))) (synopsis "Implementation of the olm and megolm cryptographic ratchets") (description "The libolm library implements the Double Ratchet cryptographic ratchet. It is written in C and C++11, and exposed as a C diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 173f8ca0f5..bfe24027fb 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -49,7 +49,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix download) - #:use-module (guix svn-download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) @@ -744,10 +744,10 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (license (list license:expat ; icc2ps/*.[ch] license:gpl2+)))) ; everything else -(define-public escpr +(define-public epson-inkjet-printer-escpr (package - (name "escpr") - (version "1.7.7") + (name "epson-inkjet-printer-escpr") + (version "1.7.8") ;; XXX: This currently works. But it will break as soon as a newer ;; version is available since the URLs for older versions are not ;; preserved. An alternative source will be added as soon as @@ -755,15 +755,19 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (source (origin (method url-fetch) - (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/10/49/18/" - "f3016be6120a7271a6d9cb64872f817bce1920b8/" - "epson-inkjet-printer-escpr-1.7.7-1lsb3.2.tar.gz")) + (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/12/04/32/" + "1a455ef8618def65700ca4e446311c2fb43cd839/" + "epson-inkjet-printer-escpr-1.7.8-1lsb3.2.tar.gz")) (sha256 - (base32 "0khdf2a9iwh9aplj2gzyzl53yyfnfv0kszk3p018jnirl5l475ld")))) + (base32 "1pygg2bd2gh27dc65h3dzwrpvi6bq5c87wl0ldchqlc2b3blsx6p")))) (build-system gnu-build-system) (arguments - `(#:configure-flags - `(,(string-append "--prefix=" + `(#:modules + ((srfi srfi-26) + ,@%gnu-build-system-modules) + #:configure-flags + `("--disable-static" + ,(string-append "--prefix=" (assoc-ref %outputs "out")) ,(string-append "--with-cupsfilterdir=" (assoc-ref %outputs "out") "/lib/cups/filter") @@ -781,7 +785,13 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") (string-append match "aclocal")) (("^(AUTOMAKE=).*" _ match) (string-append match "automake"))) - #t))))) + #t)) + (add-after 'install 'compress-PPDs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + (for-each (cut invoke "gzip" "-9" <>) + (find-files "share/cups" "\\.ppd$"))))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) @@ -793,31 +803,39 @@ HP@tie{}LaserJet, and possibly other printers. See @file{README} for details.") System} that offers high-quality printing with Seiko@tie{}Epson color ink jet printers. It can be used only with printers that support the Epson@tie{}ESC/P-R language.") - (home-page "http://download.ebz.epson.net/dsc/search/01/search") + (home-page "http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX") (license license:gpl2+))) +(define-public escpr + (deprecated-package "escpr" epson-inkjet-printer-escpr)) + (define-public splix - ;; The last release was in 2009. The SVN repository contains 5 years of - ;; unreleased bug fixes and support for newer printer models. - (let ((revision 315)) + ;; Last released in 2009 <https://sourceforge.net/projects/splix/files/>. + ;; Last SVN commit was 2013 <https://svn.code.sf.net/p/splix/code/splix/>. + ;; Use a more maintained fork with several bug fixes and support for newer + ;; printer models. + (let ((commit "76268c4dd7dbc8218ea7426401104c3b40cc707a") + (revision "315")) (package (name "splix") - (version (string-append "2.0.0-" (number->string revision))) + (version (git-version "2.0.0" revision commit)) (source (origin - (method svn-fetch) - (uri (svn-reference - (url "https://svn.code.sf.net/p/splix/code/splix/") - (revision revision))) - (file-name (string-append name "-" version "-checkout")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/ScumCoder/splix") + (commit commit))) + (file-name (git-file-name name version)) (sha256 - (base32 "16wbm4xnz35ca3mw2iggf5f4jaxpyna718ia190ka6y4ah932jxl")))) + (base32 "1mxsvllwwr1v8sgrax0b7gkajjhnm0l06s67spmaxz47lyll1qab")))) (build-system gnu-build-system) - ;; 90% (3.8 MiB) of output are .ppd files. Don't install them by default: - ;; CUPS has been able to read the .drv sources directly since version 1.2. + ;; PPDs have been obsolete since CUPS 1.2 and make up 90% of total size. (outputs (list "out" "ppd")) (arguments - '(#:make-flags + `(#:modules + ((srfi srfi-26) + ,@%gnu-build-system-modules) + #:make-flags (list (string-append "CUPSDRV=" (assoc-ref %outputs "out") "/share/cups/drv") (string-append "CUPSFILTER=" @@ -828,21 +846,28 @@ language.") "THREADS=4") ; compress and print faster #:phases (modify-phases %standard-phases + (add-after 'unpack 'enter-subdirectory + ;; The git repository replicates the top-level SVN layout. + (lambda _ + (chdir "splix") + #t)) (delete 'configure) ; no configure script (add-before 'build 'build-.drv-files (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "drv" make-flags))) (add-after 'install 'install-.drv-files (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "install" "DRV_ONLY=1" make-flags)))) + (apply invoke "make" "install" "DRV_ONLY=1" make-flags))) + (add-after 'install 'compress-PPDs + (lambda* (#:key outputs #:allow-other-keys) + (let ((ppd (assoc-ref outputs "ppd"))) + (for-each (cut invoke "gzip" "-9" <>) + (find-files ppd "\\.ppd$")))))) #:tests? #f)) ; no test suite (inputs `(("cups" ,cups-minimal) - ("zlib" ,zlib) - - ;; This dependency can be dropped by setting DISABLE_JBIG=1, but the - ;; result will not support some printers like the Samsung CLP-600. - ("jbigkit" ,jbigkit))) + ("jbigkit" ,jbigkit) + ("zlib" ,zlib))) (synopsis "QPDL (SPL2) printer driver") (description "SpliX is a set of CUPS drivers for printers that speak @acronym{QPDL, diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 0d8342b04a..79bc173ca6 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -87,13 +87,16 @@ #:use-module (gnu packages guile) #:use-module (gnu packages time) #:use-module (gnu packages golang) + #:use-module (gnu packages icu4c) #:use-module (gnu packages jemalloc) #:use-module (gnu packages language) + #:use-module (gnu packages libedit) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages man) #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages parallel) @@ -234,7 +237,7 @@ standard Go idioms.") (define-public ephemeralpg (package (name "ephemeralpg") - (version "3.0") + (version "3.1") (source (origin (method url-fetch) @@ -242,10 +245,10 @@ standard Go idioms.") "https://eradman.com/ephemeralpg/code/ephemeralpg-" version ".tar.gz")) (sha256 - (base32 "1j0g7g114ma7y7sadbng5p1ss1zsm9zpicm77qspym6565733vvh")))) + (base32 "1ap22ki8yz6agd0qybcjgs4b9izw1rwwcgpxn3jah2ccfyax34s6")))) (build-system gnu-build-system) (arguments - '(#:make-flags (list "CC=gcc" + `(#:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases @@ -308,6 +311,183 @@ ElasticSearch server") (home-page "https://github.com/patientslikeme/es_dump_restore") (license license:expat))) +(define-public firebird + (package + (name "firebird") + (version "3.0.7") + (source + (let ((revision "33374-0")) + (origin + (method url-fetch) + (uri (string-append "https://github.com/FirebirdSQL/" + "firebird/releases/download/R" + (string-replace-substring version "." "_") "/" + "Firebird-" version "." revision ".tar.bz2")) + (sha256 + (base32 "0xpy1bncz36c6n28y7kllm1dkrdkn4vb4gw2n43f2351mznmrf5c")) + (modules '((guix build utils))) + (snippet + `(begin + (for-each + delete-file-recursively + (list "extern/btyacc/test" ; TODO: package and remove entirely + "extern/editline" + "extern/icu" + "extern/libtommath" + "extern/zlib" + "src/include/firebird/impl/boost" + + ;; Missing licence. + "builds/install/arch-specific/solaris" + "extern/SfIO" + "src/msgs/templates.sql" + + ;; Generated files missing sources. + "doc/Firebird-3-QuickStart.pdf" + (string-append "doc/Firebird-" ,version + "-ReleaseNotes.pdf") + "doc/README.SecureRemotePassword.html")) + #t))))) + (build-system gnu-build-system) + (outputs (list "debug" "out")) + (arguments + `(#:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "--with-fbsbin=" out "/sbin") + (string-append "--with-fbdoc=" out "/share/doc/" + ,name "-" ,version) + (string-append "--with-fbconf=" out "/lib/firebird") + (string-append "--with-fbintl=" out "/lib/firebird/intl") + (string-append "--with-fbmisc=" out "/lib/firebird/misc") + (string-append "--with-fbmsg=" out "/lib/firebird") + (string-append "--with-fbplugins=" out "/lib/firebird/plugins") + (string-append "--with-fbudf=" out "/lib/firebird/UDF") + "--with-fbglock=/run/firebird" + "--with-fblog=/var/log/firebird" + "--with-fbhelp=/var/lib/firebird/system" + "--with-fbsecure-db=/var/lib/firebird/secure" + "--without-fbsample" + "--without-fbsample-db" + "--with-system-editline")) + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + ;; The plugins/ can't find libfbclient otherwise. + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")) + #:tests? #f ; no test suite + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-system-boost + (lambda _ + (substitute* "src/include/firebird/Message.h" + (("\"\\./impl/boost/preprocessor/seq/for_each_i\\.hpp\"") + "<boost/preprocessor/seq/for_each_i.hpp>") + (("FB_BOOST_") "BOOST_")) + #t)) + (add-after 'unpack 'patch-installation + (lambda _ + (substitute* + "builds/install/arch-specific/linux/makeInstallImage.sh.in" + (("/bin/sh") (which "bash")) + ;; Remove shell script helpers from $PATH. + (("(addLibs|cp) .*\\.sh .*@FB_SBINDIR@") ":") + ;; Put files where Guix users expect them. + (("(License\\.txt.*)@FB_CONFDIR" match) + (string-append match "@FB_DOCDIR@")) + (("@FB_CONFDIR@(.*License\\.txt.*)" match) + (string-append "@FB_DOCDIR@" match)) + (("(cp .*/doc/.*)@FB_CONFDIR@(.*)" _ head tail) + (string-append head "@FB_DOCDIR@" tail "\n"))) + (substitute* + (list "builds/install/posix-common/changeServerMode.sh.in" + "builds/install/posix-common/install.sh.in") + ;; Skip phases that (could) cause problems in Guix. + (("check(InstallUser|IfServerRunning|Libraries)|addFirebirdUser") + ":") + ;; Skip phases that are merely pointless on Guix. + (("buildUninstallFile|installInitdScript|startFirebird") ":") + ;; Omit randomly generated password with bonus timestamp. + (("setDBAPassword") ":")) + + ;; These promote proprietary workflows not relevant on Guix. + (for-each delete-file-recursively + (find-files "doc" "README\\.(build\\.msvc|NT|Win)")) + #t)) + (add-after 'configure 'delete-init-scripts + (lambda _ + (delete-file-recursively "gen/install/misc") + #t)) + (add-before 'build 'set-build-environment-variables + (lambda _ + ;; ‘isql’ needs to run & find libfbclient.so during the build. + ;; This doubles as a rudimentary test in lieu of a test suite. + (setenv "LD_LIBRARY_PATH" + (string-append (assoc-ref %build-inputs "icu4c") "/lib")) + #t)) + (add-before 'install 'keep-embedded-debug-symbols + (lambda _ + ;; Let the gnu-build-system separate & deal with them later. + ;; XXX Upstream would use ‘--strip-unneeded’, shaving a whole + ;; megabyte off Guix's 7.7M libEngine12.so, for example. + (substitute* "gen/Makefile.install" + (("readelf") "false")) + #t)) + (add-after 'install 'prune-undesirable-files + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion out + ;; Remove example binaries. + (for-each delete-file-recursively + (find-files "." "example")) + ;; Delete (now-)empty directories. + (for-each rmdir + (list "include/firebird/impl" + "lib/firebird/plugins/udr")) + #t))))))) + (inputs + `(("boost" ,boost) + ("editline" ,editline) + ("icu4c" ,icu4c-67) + ("libtommath" ,libtommath) + ("ncurses" ,ncurses) + ("zlib" ,zlib))) + (home-page "https://www.firebirdsql.org") + (synopsis "Relational database with many ANSI SQL standard features") + (description + "Firebird is an SQL @acronym{RDBMS, relational database management system} +with rich support for ANSI SQL (e.g., @code{INSERT...RETURNING}) including +@acronym{UDFs, user-defined functions} and PSQL stored procedures, cursors, and +triggers. Transactions provide full ACID-compliant referential integrity. + +The database requires very little manual maintenance once set up, making it +ideal for small business or embedded use. + +When installed as a traditional local or remote (network) database server, +Firebird can grow to terabyte scale with proper tuning---although PostgreSQL +may be a better choice for such very large environments. + +Firebird can also be embedded into stand-alone applications that don't want or +need a full client & server. Used in this manner, it offers richer SQL support +than SQLite as well as the option to seamlessly migrate to a client/server +database later.") + (properties + `((lint-hidden-cve . ("CVE-2017-6369")))) + (license + ;; See doc/license/README.license.usage.txt for rationale & details. + (list license:bsd-3 ; src/common/sha2/ + license:bsd-4 ; src/common/enc.cpp + license:gpl2+ ; builds/posix/make.defaults + (license:non-copyleft "file:///builds/install/misc/IPLicense.txt" + "InterBase Public License v1.0") + (license:non-copyleft "file:///builds/install/misc/IDPLicense.txt" + "Initial Developer's Public License v1.0") + license:lgpl2.1 ; exception for OSI-compatible licences + license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp + license:public-domain)))) ; including files without explicit licence + (define-public leveldb (package (name "leveldb") @@ -972,16 +1152,16 @@ as a drop-in replacement of MySQL.") (define-public mariadb-connector-c (package (name "mariadb-connector-c") - (version "3.1.10") - (source (origin - (method url-fetch) - (uri (string-append - "https://downloads.mariadb.org/f/connector-c-" - version "/mariadb-connector-c-" - version "-src.tar.gz")) - (sha256 - (base32 - "13v5z4w1cl890lnr2fbwbziw638lqw2aga45vdq1z0cyrc9mcgmg")))) + (version "3.1.11") + (source + (origin + (method url-fetch) + (uri (string-append + "https://downloads.mariadb.org/f/connector-c-" version + "/mariadb-connector-c-" version "-src.tar.gz" + "/from/https%3A//mirrors.ukfast.co.uk/sites/mariadb/?serve")) + (sha256 + (base32 "03svzahdf7czjlm695c11r4bfd04qdqgx8r1vkpr1zlkjhwnqvry")))) (inputs `(("openssl" ,openssl))) (build-system cmake-build-system) @@ -1144,12 +1324,12 @@ organized in a hash table or B+ tree.") (native-inputs `(("bc" ,bc) ("bash:include" ,bash "include") ("check" ,check) - ("libuuid" ,util-linux) ("pkg-config" ,pkg-config))) ;; TODO: Add more optional inputs. (inputs `(("curl" ,curl) - ("libgcrypt" ,libgcrypt))) + ("libgcrypt" ,libgcrypt) + ("libuuid" ,util-linux "lib"))) (synopsis "Manipulate plain text files as databases") (description "GNU Recutils is a set of tools and libraries for creating and @@ -1206,6 +1386,7 @@ including field and record folding."))) `(#:make-flags (list "CC=gcc" "V=1" ;; Ceph requires that RTTI is enabled. "USE_RTTI=1" + "date=1970-01-01" ; build reproducibly (string-append "INSTALL_PATH=" (assoc-ref %outputs "out")) @@ -2256,17 +2437,18 @@ on another machine, accessed via TCP/IP.") (define-public python-peewee (package (name "python-peewee") - (version "3.9.6") - (source - (origin - (method url-fetch) - (uri (pypi-uri "peewee" version)) - (sha256 - (base32 - "1j4sh946k0736m7pd54z0y6i2hjhgg3kdllx1pwq8xkzzcgrx1xw")))) + (version "3.14.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "peewee" version)) + (sha256 + (base32 "1yl49gxrg0c2x3n3r60z3lixw9am8b61s0477l9vjabhhx1yziar")))) (build-system python-build-system) (arguments - `(#:tests? #f)) ; Fails to import test data + `(#:tests? #f)) ; fails to import test data + (inputs + `(("sqlite" ,sqlite))) (native-inputs `(("python-cython" ,python-cython))) (home-page "https://github.com/coleifer/peewee/") @@ -3292,7 +3474,7 @@ transforms idiomatic python function calls to well-formed SQL queries.") (define-public python-pypika (package (name "python-pypika") - (version "0.37.2") + (version "0.44.0") (source (origin (method git-fetch) (uri (git-reference @@ -3301,7 +3483,7 @@ transforms idiomatic python function calls to well-formed SQL queries.") (file-name (git-file-name name version)) (sha256 (base32 - "089z1c778q1fwhzsc88ws8j5gm2hgxknibabn4wpax8rz2bfs3ck")))) + "0mpddrw9z1pzcc40j3pzhd583hlgjx96aa8ak6m9zzhpm4bv3ard")))) (build-system python-build-system) (native-inputs `(("python-parameterized" ,python-parameterized))) @@ -3706,7 +3888,7 @@ The drivers officially supported by @code{libdbi} are: (define-public soci (package (name "soci") - (version "4.0.0") + (version "4.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -3715,24 +3897,22 @@ The drivers officially supported by @code{libdbi} are: (file-name (git-file-name name version)) (sha256 (base32 - "06faswdxd2frqr9xnx6bxc7zwarlzsbdi3bqpz7kwdxsjvq41rnb")))) + "14x2gjblkgpflv75wl144cyjp1sis5rbxnr9r2gj3yw16v2av0bp")))) (build-system cmake-build-system) (inputs - `(("postgresql" ,postgresql) + `(("firebird" ,firebird) + ("postgresql" ,postgresql) ("sqlite" ,sqlite) ("odbc" ,unixodbc) ("boost" ,boost) ("mariadb:dev" ,mariadb "dev") ("mariadb:lib" ,mariadb "lib"))) (arguments - `(#:tests? #f ; Tests may require running database management systems. - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-lib-path - (lambda _ - (substitute* "CMakeLists.txt" - (("set\\(SOCI_LIBDIR \"lib64\"\\)") "")) - #t))))) + `(#:configure-flags + ;; C++11 (-DSOCI_CXX11) is OFF by default. hyperledger-iroha needs it. + (list "-DCMAKE_CXX_STANDARD=17" + "-DSOCI_LIBDIR=lib") + #:tests? #f)) ; may require running database management systems (synopsis "C++ Database Access Library") (description "SOCI is an abstraction layer for several database backends, including diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm index ea812c9715..82647c0c28 100644 --- a/gnu/packages/dbm.scm +++ b/gnu/packages/dbm.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; @@ -41,7 +41,7 @@ "See LICENSE in the distribution.")) (source (origin (method url-fetch) - (uri (string-append "http://download.oracle.com/berkeley-db/db-" + (uri (string-append "https://download.oracle.com/berkeley-db/db-" version ".tar.gz")) (sha256 (base32 @@ -104,7 +104,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (version "5.3.28") (source (origin (method url-fetch) - (uri (string-append "http://download.oracle.com/berkeley-db/db-" + (uri (string-append "https://download.oracle.com/berkeley-db/db-" version ".tar.gz")) (sha256 (base32 @@ -116,7 +116,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (version "6.2.32") (source (origin (method url-fetch) - (uri (string-append "http://download.oracle.com/berkeley-db/db-" + (uri (string-append "https://download.oracle.com/berkeley-db/db-" version ".tar.gz")) (sha256 (base32 diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 9dc32c70f4..b3a000e6e3 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> @@ -566,7 +566,7 @@ error reporting, better tracing, profiling, and a debugger.") (define-public rr (package (name "rr") - (version "5.3.0") + (version "5.4.0") (source (origin (method git-fetch) (uri (git-reference @@ -574,18 +574,19 @@ error reporting, better tracing, profiling, and a debugger.") (commit version))) (sha256 (base32 - "1x6l1xsdksnhz9v50p4r7hhmr077cq20kaywqy1jzdklvkjqzf64")) + "1sfldgkkmsdyaqa28i5agcykc63gwm3zjihd64g86i852w8al2w6")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments `(#:configure-flags ;; The 'rr_exec_stub' is a static binary, which leads CMake to fail - ;; with: - ;; - ;; file RPATH_CHANGE could not write new RPATH: - ;; + ;; with ‘file RPATH_CHANGE could not write new RPATH: ...’. ;; Clear CMAKE_INSTALL_RPATH to avoid that problem. (list "-DCMAKE_INSTALL_RPATH=" + ;; Satisfy the ‘validate-runpath’ phase. This isn't a direct + ;; consequence of clearing CMAKE_INSTALL_RPATH. + (string-append "-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath=" + (assoc-ref %build-inputs "capnproto") "/lib") ,@(if (and (not (%current-target-system)) (member (%current-system) '("x86_64-linux" "aarch64-linux"))) @@ -613,7 +614,7 @@ error reporting, better tracing, profiling, and a debugger.") ("which" ,which))) (inputs `(("gdb" ,gdb) - ("cpanproto" ,capnproto) + ("capnproto" ,capnproto) ("python" ,python) ("python-pexpect" ,python-pexpect))) (home-page "https://rr-project.org/") diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm index 4e3c1e8803..78bb1811f9 100644 --- a/gnu/packages/dictionaries.scm +++ b/gnu/packages/dictionaries.scm @@ -242,7 +242,7 @@ and a Python library.") (origin (method git-fetch) (uri (git-reference - (url"https://github.com/soimort/translate-shell.git") + (url"https://github.com/soimort/translate-shell") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index 235df8ce9e..29f43a2d5f 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -86,7 +86,8 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages)) + #:use-module (guix packages) + #:use-module (guix utils)) (define-public udevil (package @@ -482,7 +483,7 @@ systems. Output format is completely customizable.") (define-public f3 (package (name "f3") - (version "7.2") + (version "8.0") (source (origin (method git-fetch) @@ -491,11 +492,11 @@ systems. Output format is completely customizable.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1iwdg0r4wkgc8rynmw1qcqz62l0ldgc8lrazq33msxnk5a818jgy")))) + (base32 "17l5vspfcgfbkqg7bakp3gql29yb05gzawm8n3im30ilzdr53678")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no check target - #:make-flags (list "CC=gcc" + `(#:tests? #f ; no check target + #:make-flags (list (string-append "CC=" ,(cc-for-target)) (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases @@ -520,7 +521,7 @@ a card with a smaller capacity than stated.") (define-public python-parted (package (name "python-parted") - (version "3.11.6") + (version "3.11.7") (source (origin (method git-fetch) @@ -529,7 +530,7 @@ a card with a smaller capacity than stated.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1xgrqhvn44vr3676j5sy2x3xfv2dzf7vncg25cmrsmkbd49x3z5j")))) + (base32 "01193fmkss9icjvqpw85szpk8ld1pnha7p9kqm7mpwk6rc6gi2m3")))) (build-system python-build-system) (arguments `(#:phases @@ -558,7 +559,7 @@ a card with a smaller capacity than stated.") (define-public duperemove (package (name "duperemove") - (version "0.11.1") + (version "0.11.2") (source (origin (method git-fetch) @@ -566,7 +567,7 @@ a card with a smaller capacity than stated.") (url "https://github.com/markfasheh/duperemove") (commit (string-append "v" version)))) (sha256 - (base32 "1scz76pvpljvrpfn176125xwaqwyy4pirlm11sc9spb2hyzknw2z")) + (base32 "1a87mka2sfzhbch2jip6wlvvs0glxq9lqwmyrp359d1rmwwmqiw9")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -580,7 +581,9 @@ a card with a smaller capacity than stated.") (modify-phases %standard-phases (delete 'configure)) ; no configure script #:make-flags (list (string-append "PREFIX=" %output) - "CC=gcc"))) + (string-append "CC=" ,(cc-for-target)) + ;; Set to <next release>dev by default. + (string-append "VER=" ,version)))) (home-page "https://github.com/markfasheh/duperemove") (synopsis "Tools for de-duplicating file system data") (description "Duperemove is a simple tool for finding duplicated extents @@ -1049,7 +1052,7 @@ that support this feature).") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/memkind/memkind.git") + (url "https://github.com/memkind/memkind") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 2dc99adac8..aa4411c5a2 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -862,14 +862,13 @@ settings.py and easily use them in your project.") (define-public python-django-q (package (name "python-django-q") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (pypi-uri "django-q" version)) (sha256 - (base32 - "1fs29767940akbsn3vdzw2rqnn9v77b0b55bi7fvydny1rk7fw6y")))) + (base32 "03z1pf6wlf47i7afr79a8fiiidfk1vq19yaqnv0m4qdny7f58gaj")))) (build-system python-build-system) ;; FIXME: Tests require disque, Redis, MongoDB, Docker. (arguments '(#:tests? #f)) diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index f5ea9bd332..605a922768 100644 --- a/gnu/packages/djvu.scm +++ b/gnu/packages/djvu.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,11 +26,25 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages gawk) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages linux) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) + #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xorg)) (define-public djvulibre @@ -44,6 +59,9 @@ (base32 "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6")))) (build-system gnu-build-system) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libtiff" ,libtiff))) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'reproducible @@ -62,7 +80,7 @@ utilities.") (define-public djview (package (name "djview") - (version "4.11") + (version "4.12") (source (origin (method git-fetch) @@ -70,7 +88,7 @@ utilities.") (url "https://git.code.sf.net/p/djvu/djview-git") (commit (string-append "release." version)))) (sha256 - (base32 "0qlhd0xlxn8i869m0hwdjvwivi2vigqm88wliyr1h7s84zl3qhsy")) + (base32 "0mn9ywjbc7iga50lbjclrk892g0x0rap0dmb6ybzjyarybdhhcxp")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (native-inputs @@ -112,3 +130,181 @@ files, and printing page and documents. The viewer can simultaneously display several pages using a side-by-side or a continuous layout.") (license license:gpl2+))) + +(define-public pdf2djvu + (package + (name "pdf2djvu") + (version "0.9.17.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/jwilk/pdf2djvu/releases/download/" version + "/pdf2djvu-" version ".tar.xz")) + (sha256 + (base32 "18r648kna6ccw0m0nfxxnsmz541k69d0w9zzqvm1x2l5qyyvgfsv")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("python2" ,python-2) + ("python2-nose" ,python2-nose))) + (inputs + `(("djvulibre" ,djvulibre) + ("exiv2" ,exiv2) + ("graphicsmagick" ,graphicsmagick) + ("poppler" ,poppler) + ("poppler-data" ,poppler-data) + ("util-linux-lib" ,util-linux "lib"))) ; for libuuid + (arguments + `(#:test-target "test")) + (synopsis "PDF to DjVu converter") + (description + "@code{pdf2djvu} creates DjVu files from PDF files. +It is able to extract: +@itemize +@item graphics, +@item text layer, +@item hyperlinks, +@item document outline (bookmarks), +@item metadata (including XMP metadata). +@end itemize\n") + (home-page "https://jwilk.net/software/pdf2djvu") + (license license:gpl2))) + +(define-public djvu2pdf + (package + (name "djvu2pdf") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (string-append "https://0x2a.at/site/projects/djvu2pdf/djvu2pdf-" + version ".tar.gz")) + (sha256 + (base32 "0v2ax30m7j1yi4m02nzn9rc4sn4vzqh5vywdh96r64j4pwvn5s5g")))) + (build-system gnu-build-system) + (inputs + `(("djvulibre" ,djvulibre) + ("gawk" ,gawk) + ("ghostscript" ,ghostscript) + ("grep" ,grep) + ("ncurses" ,ncurses) + ("which" ,which))) + (arguments + `(#:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ((djvulibre (assoc-ref inputs "djvulibre")) + (gawk (assoc-ref inputs "gawk")) + (ghostscript (assoc-ref inputs "ghostscript")) + (grep (assoc-ref inputs "grep")) + (ncurses (assoc-ref inputs "ncurses")) + (which (assoc-ref inputs "which"))) + (substitute* "djvu2pdf" + (("awk") + (string-append gawk "/bin/awk")) + (("ddjvu") + (string-append djvulibre "/bin/ddjvu")) + (("djvudump") + (string-append djvulibre "/bin/djvudump")) + (("grep") + (string-append grep "/bin/grep")) + (("gs") + (string-append ghostscript "/bin/gs")) + (("tput ") + (string-append ncurses "/bin/tput ")) + (("which") + (string-append which "/bin/which")))) + #t)) + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref %outputs "out"))) + (install-file "djvu2pdf" + (string-append out "/bin")) + (install-file "djvu2pdf.1.gz" + (string-append out "/share/man/man1")) + #t)))))) + (synopsis "DjVu to PDF converter") + (description "This is a small tool to convert DjVu files to PDF files.") + (home-page "https://0x2a.at/site/projects/djvu2pdf/") + (license license:gpl2+))) + +(define-public minidjvu + (package + (name "minidjvu") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/minidjvu/minidjvu/" + version "/minidjvu-" version ".tar.gz")) + (sha256 + (base32 "0jmpvy4g68k6xgplj9zsl6brg6vi81mx3nx2x9hfbr1f4zh95j79")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal))) + (inputs + `(("libjpeg-turbo" ,libjpeg-turbo) + ("libtiff" ,libtiff) + ("zlib" ,zlib))) + (arguments + '(#:configure-flags '("--disable-static") + #:parallel-build? #f + #:tests? #f ; No test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda _ + (substitute* "Makefile.in" + (("/usr/bin/gzip") + "gzip")) + #t)) + (add-before 'install 'make-lib-directory + (lambda* (#:key outputs #:allow-other-keys) + (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) + #t))))) + (synopsis "Black and white DjVu encoder") + (description + "@code{minidjvu} is a multipage DjVu encoder and single page +encoder/decoder. It doesn't support colors or grayscales, just black +and white.") + (home-page "https://sourceforge.net/projects/minidjvu/") + (license license:gpl2))) + +(define-public djvusmooth + (package + (name "djvusmooth") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/jwilk/djvusmooth/releases/download/" version + "/djvusmooth-" version ".tar.gz")) + (sha256 + (base32 "0z403cklvxzz0qaczgv83ax0nknrd9h8micp04j9kjfdxk2sgval")))) + (build-system python-build-system) + (inputs + `(("djvulibre" ,djvulibre) + ("python2-djvulibre" ,python2-djvulibre) + ("python2-subprocess32" ,python2-subprocess32) + ("python2-wxpython" ,python2-wxpython))) + (arguments + `(#:python ,python-2)) + (synopsis "Graphical editor for DjVu documents") + (description + "@code{djvusmooth} is a graphical editor for DjVu_ documents. +It is able to: +@itemize +@item edit document metadata, +@item edit document outline (bookmarks), +@item add, remove or edit hyperlinks, +@item correct occasional errors in the hidden text layer. +@end itemize\n") + (home-page "https://jwilk.net/software/djvusmooth") + (license license:gpl2))) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 906333bb44..c361e5c265 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -807,7 +807,7 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "3.0.1") + (version "3.0.2") (source (origin (method git-fetch) @@ -816,7 +816,7 @@ Extensions} (DNSSEC).") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "10mlzldxqvbaw78nghkr0s73rlbpz9wg16z14321xw2l9xfibkad")) + (base32 "1cinzz8p86fzknnr2z6b49yqr4y05mmnr0l2q3lwzcfhc6dcl8di")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index ee09b9d0b4..236c7e2819 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -41,7 +41,7 @@ (version "5.0.1") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbook-" version ".zip")) (sha256 (base32 @@ -83,7 +83,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "4.5") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbook-xml-" version ".zip")) (sha256 (base32 @@ -113,7 +113,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "4.4") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbook-xml-" version ".zip")) (sha256 (base32 @@ -124,7 +124,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "4.3") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbook-xml-" version ".zip")) (sha256 (base32 @@ -135,7 +135,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "4.2") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbook-xml-" version ".zip")) (sha256 (base32 @@ -146,7 +146,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "4.1.2") (source (origin (method url-fetch) - (uri (string-append "https://www.docbook.org/xml/" version + (uri (string-append "https://docbook.org/xml/" version "/docbkx412.zip")) (sha256 (base32 diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index b130298a04..950986045e 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> @@ -70,11 +70,11 @@ (inputs `(("python-requests" ,python-requests-2.20) ("python-six" ,python-six) - ("python-urllib3" ,python-urllib3-1.24) - ("python-websocket-client" ,python-websocket-client))) + ("python-urllib3" ,python-urllib3-1.24))) (propagated-inputs `(("python-docker-pycreds" ,python-docker-pycreds) - ("python-paramiko" ,python-paramiko))) ; adds SSH support + ("python-paramiko" ,python-paramiko) ;adds SSH support + ("python-websocket-client" ,python-websocket-client))) (home-page "https://github.com/docker/docker-py/") (synopsis "Python client for Docker") (description "Docker-Py is a Python client for the Docker container @@ -671,7 +671,7 @@ provisioning etc.") (define-public cqfd (package (name "cqfd") - (version "5.1.0") + (version "5.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -680,7 +680,7 @@ provisioning etc.") (file-name (git-file-name name version)) (sha256 (base32 - "1xhydz01f2rrnw7rmnaxh3f3q1ariq7j2ig0i0w1p3wn10l3q0nv")))) + "1zqgznfl7slfrddfpy2pfmablbvyf7296d3b3vcprilqb93cc7li")))) (build-system gnu-build-system) (arguments ;; The test suite requires a docker daemon and connectivity. diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 6532bb4704..0fca0b11eb 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -63,7 +63,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/latex2html/latex2html.git") + (url "https://github.com/latex2html/latex2html") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 1ed54e83ac..cdd58ffa42 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -275,7 +275,7 @@ easy.") (define-public snap (package (name "snap") - (version "6.2.4") + (version "6.3.3") (source (origin (method git-fetch) @@ -284,7 +284,7 @@ easy.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "05ahhwhswnlyg5wiywdj0df4bymcz1l5l4324gjcvpm2lgwxxnl5")))) + (base32 "0zlyk241s6sh5zaqrvfpg4lx7jdifajsdf6c9qhh77vxxh5gwzrc")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6caf50858a..5f49c64bb7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -84,6 +84,7 @@ ;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io> ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> +;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -963,6 +964,33 @@ using the Buffers User Interface library. You can view, copy, and edit secrets from within Emacs.") (license license:gpl3+))) +(define-public emacs-solidity + ;; This commit fixes a spacing issue and adds new keywords. + (let ((commit "d166a86b83907e0cfd64c191e9dfce4b44a9843e") + (revision "0")) + (package + (name "emacs-solidity") + (version (git-version "0.1.10" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ethereum/emacs-solidity") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19hgvsrqch2vp49ag6m76bi5qxd20v95z0ib838rib9as15b17wq")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-company" ,emacs-company) + ("emacs-flycheck" ,emacs-flycheck))) + (home-page "https://github.com/ethereum/emacs-solidity") + (synopsis "Major mode for writing Solidity code") + (description + "This is a simple language mode for the Solidity language. It is +a constant work in progress as the language itself also progresses.") + (license license:gpl3+)))) + (define-public emacs-unpackaged-el (let ((commit "746801a677ada6cd6fa076e423aa0953779f3fad") (revision "3")) @@ -1587,14 +1615,14 @@ incrementally confined in Isearch manner.") (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "6.0") + (version "6.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "1zxiic91zhgdkxyfgyh1vkv4lzg90vq362y9k739n28ci6z4xzwm")))) + (base32 "0d95sjrh9vpl41vz26y8clgji987z15lj4ky2kr9yrl0zpa8yv35")))) (build-system gnu-build-system) (arguments `(#:make-flags '("emms-print-metadata") @@ -1843,12 +1871,12 @@ than @code{electric-indent-mode}.") (license license:gpl2+))) (define-public emacs-gcmh - ;; No tagged release upstream. - (let ((commit "84c43a4c0b41a595ac6e299fa317d2831813e580") - (revision "0")) + ;; No tagged release upstream, but the commit below correspond to the 0.2.1 + ;; release. + (let ((commit "0089f9c3a6d4e9a310d0791cf6fa8f35642ecfd9")) (package (name "emacs-gcmh") - (version (git-version "0.1" revision commit)) + (version "0.2.1") (source (origin (method git-fetch) @@ -1856,7 +1884,7 @@ than @code{electric-indent-mode}.") (url "https://gitlab.com/koral/gcmh") (commit commit))) (sha256 - (base32 "1r3wiqhrzh7wvqy484nl031fd4bn4cpvkv9646s4cjgvnnnv7jz3")) + (base32 "0yh1ap8phv3x44rp0yr6z884xqw2apanbx4c0acqglvj0gaaqx25")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (home-page "https://gitlab.com/koral/gcmh") @@ -2210,7 +2238,7 @@ Lock key.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/contrapunctus-1/chronometrist.git") + (url "https://github.com/contrapunctus-1/chronometrist") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -2576,14 +2604,14 @@ filters, new key bindings and faces. It can be enabled by (define-public emacs-djvu (package (name "emacs-djvu") - (version "1.1") + (version "1.1.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "djvu-" version ".el")) (sha256 - (base32 "0njgyx09q225hliacsnjk8wallg5i6xkz6bj501pb05nwqfbvfk7")))) + (base32 "0z2qk1v4qkvcwl27ycqfb8vyszq5v6b8ci29b4la00yaki16p04i")))) (build-system emacs-build-system) (inputs `(("djview" ,djview) ("djvulibre" ,djvulibre))) @@ -3020,6 +3048,66 @@ graphical tree presentation of all previous states of buffer that allows easily move between them.") (license license:gpl3+))) +(define-public emacs-undo-fu + ;; There are no tagged releases upstream on gitlab, instead we are using + ;; the most recent commit. + (let ((commit "c0806c1903c5a0e4c69b6615cdc3366470a9b8ca") + (revision "0")) + (package + (name "emacs-undo-fu") + (version (git-version "0.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/ideasman42/emacs-undo-fu") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n594aakmcgyl7qbda86v4wsx8clm62ypiv3h559xz3x72h7mr3j")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/ideasman42/emacs-undo-fu") + (synopsis "Simple, stable linear undo with redo for Emacs") + (description + "This is a light weight wrapper for Emacs built-in undo system, +adding convenient undo/redo without losing access to the full undo history, +allowing you to visit all previous states of the document if you need.") + (license license:gpl3+)))) + +(define-public emacs-undo-fu-session + ;; There are no tagged releases upstream on gitlab, instead we are using the + ;; most recent commit. + (let ((commit "56cdd3538a058c6916bdf2d9010c2179f2505829") + (revision "0")) + (package + (name "emacs-undo-fu-session") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/ideasman42/emacs-undo-fu-session") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04wq1alrzzlidcb4mjb5j7pg68pks1vgv7kvvmi6dzb3l602mb2a")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:test-command '("emacs" "--batch" "-l" "undo-fu-session.el" + "-l" "undo-fu-session-test.el") + #:phases + (modify-phases %standard-phases + (add-before 'check 'set-home + (lambda _ + (setenv "HOME" "/tmp") + #t))))) + (home-page "https://gitlab.com/ideasman42/emacs-undo-fu-session") + (synopsis "Save & recover undo steps between Emacs sessions") + (description "This package writes undo/redo information upon file save +which is restored where possible when the file is loaded again.") + (license license:gpl3+)))) + (define-public emacs-s (package (name "emacs-s") @@ -3892,8 +3980,8 @@ in Lisp modes.") (license license:gpl3+)))) (define-public emacs-literate-calc-mode - (let ((commit "e855bd718fa7d0d70b8f43264e10664369dd3a37") - (revision "0")) + (let ((commit "a50e897a816cb5580ad6ec867eeaae212e0e4798") + (revision "1")) (package (name "emacs-literate-calc-mode") (version (git-version "0.1" revision commit)) @@ -3905,7 +3993,7 @@ in Lisp modes.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0mk4cig8g8ibz97mvyan79fkypyanh7r0h7h20ibafq09nb0mw01")))) + (base32 "0z6y5f1rj28lbr30m6g4a9l6ahs66whi8861g4cx9xzhs84nwv5g")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-s" ,emacs-s))) @@ -4536,7 +4624,7 @@ compile}.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/purcell/flycheck-ledger.git") + (url "https://github.com/purcell/flycheck-ledger") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -6665,6 +6753,33 @@ background of file-visiting buffers (and certain aspects of the UI) to make them easier to distinguish from other, less important buffers.") (license license:expat))) +(define-public emacs-embark + ;; There are no tagged releases upstream on GitHub, instead we are using the + ;; most recent commit. + (let ((commit "dc20b4e53c4ce1ad91100dfeb093115f2cc0b210") + (revision "0")) + (package + (name "emacs-embark") + (version (git-version "0.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oantolin/embark") + (commit commit))) + (sha256 + (base32 "1jrvdlwip7zll5ixlnk9l0apr8hj60ysqfc47q3k4hhfyl9rawbq")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-avy" ,emacs-avy))) + (home-page "https://github.com/oantolin/embark") + (synopsis "Emacs mini-buffer actions rooted in keymaps") + (description "This package provides a command embark-act (and a variant +embark-act-noexit), to execute actions on the top minibuffer completion +canidate: the one that would be chosen by minibuffer-force-complete.") + (license license:gpl3+)))) + (define-public emacs-prescient (package (name "emacs-prescient") @@ -6716,6 +6831,29 @@ marginal benefit compared to the additional complexity of a new interface.") (license license:expat))) +(define-public emacs-orderless + (package + (name "emacs-orderless") + (version "0.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oantolin/orderless") + (commit version))) + (sha256 + (base32 "032lfwflkpaxbcxl4jf438vapswsdagipjczcn30sc4dfdh3p42c")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (home-page "https://github.com/oantolin/orderless") + (synopsis "Emacs completion style that matches multiple regexps in any order") + (description "This package provides an orderless completion style that +divides the pattern into space-separated components, and matches candidates +that match all of the components in any order. Each component can match in +any one of several ways: literally, as a regexp, as an initialism, in the flex +style, or as multiple word prefixes.") + (license license:gpl3+))) + (define-public emacs-smartparens (package (name "emacs-smartparens") @@ -7016,29 +7154,33 @@ parallel.") (license license:gpl3+))) (define-public emacs-request - (package - (name "emacs-request") - (version "0.3.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tkf/emacs-request") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1djywhvvb6kwdj0nd3axjvb7k2g06dzkc6hsf29w9rsk96vr8ryl")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #f)) ; requires network access. - (propagated-inputs - `(("emacs-deferred" ,emacs-deferred))) - (home-page "https://github.com/tkf/emacs-request") - (synopsis "Package for speaking HTTP in Emacs Lisp") - (description "This package provides a HTTP request library with multiple + ;; We prefer a more recent commit that has support for auth-source, + ;; which makes authentication more convenient for users and maintainers. + (let ((commit "d02d1347ffdf138cffd380cbeac62ac8732036ef") + (revision "0")) + (package + (name "emacs-request") + (version (git-version "0.3.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tkf/emacs-request") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1rkpakzish2d470ca15yq3k0m1j7a2lrkvvddcyvc2rx0sncsdjs")))) + (build-system emacs-build-system) + (arguments + `(#:tests? #f)) ; requires network access. + (propagated-inputs + `(("emacs-deferred" ,emacs-deferred))) + (home-page "https://github.com/tkf/emacs-request") + (synopsis "Package for speaking HTTP in Emacs Lisp") + (description "This package provides a HTTP request library with multiple backends. It supports url.el which is shipped with Emacs and the curl command line program.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-rudel (package @@ -7094,6 +7236,35 @@ the Hydra very seamless; it's like a minor mode that disables itself automatically.") (license license:gpl3+))) +(define-public emacs-pretty-hydra + (package + (name "emacs-pretty-hydra") + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerrypnz/major-mode-hydra.el") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-hydra" ,emacs-hydra) + ("emacs-s" ,emacs-s))) + (arguments + `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude))) + (home-page "https://github.com/jerrypnz/major-mode-hydra.el") + (synopsis "Major mode keybindings managed by Hydra") + (description + "This package offers an hydra-based method of managing major +mode-specific key bindings. It is intended for use as a library only; see +package @code{emacs-major-mode-hydra} for a user-friendly interface.") + (license license:gpl3+))) + (define-public emacs-interleave (package (name "emacs-interleave") @@ -7116,6 +7287,20 @@ automatically.") by side to an Org buffer with your notes relevant to the current page.") (license license:gpl3+))) +(define-public emacs-major-mode-hydra + (package + (inherit emacs-pretty-hydra) + (name "emacs-major-mode-hydra") + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-pretty-hydra" ,emacs-pretty-hydra))) + (arguments + `(#:exclude (cons "^pretty-hydra\\.el" %default-exclude))) + (synopsis "Create nice-looking hydras") + (description + "This package provides the macro @code{pretty-hydra-define} to define +hydras with one column per group of heads."))) + (define-public emacs-ivy (package (name "emacs-ivy") @@ -7441,63 +7626,68 @@ navigate code in a tree-like fashion.") (license license:gpl3+))) (define-public emacs-lispy - (package - (name "emacs-lispy") - (version "0.27.0") - (home-page "https://github.com/abo-abo/lispy") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/lispy") - (commit version))) - (sha256 - (base32 - "1cm7f4pyl73f3vhkb7ah6bbbrj2sa7n0p31g09k7dy4zgx04bgw6")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ace-window" ,emacs-ace-window) - ("emacs-hydra" ,emacs-hydra) - ("emacs-iedit" ,emacs-iedit) - ("emacs-swiper" ,emacs-swiper) - ("emacs-zoutline" ,emacs-zoutline))) - (native-inputs - `(("emacs-clojure-mode" ,emacs-clojure-mode) - ("emacs-undercover" ,emacs-undercover))) - (arguments - `(#:include (cons* "^lispy-clojure\\.clj$" - "^lispy-python\\.py$" - %default-include) - #:phases - ;; XXX: one failing test involving python evaluation - (modify-phases %standard-phases - (add-before 'check 'make-test-writable - (lambda _ - (make-file-writable "lispy-test.el") - #t)) - (add-before 'check 'remove-python-eval-test - (lambda _ - (emacs-batch-edit-file "lispy-test.el" - `(progn - (progn - (goto-char (point-min)) - (re-search-forward - "ert-deftest lispy-eval-python-str") - (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))) - #:tests? #t - #:test-command '("make" "test"))) - (synopsis "Modal S-expression editing") - (description - "Due to the structure of Lisp syntax it's very rare for the programmer + ;; No release since May 2019 and tons of fixes have landed on master. + ;; https://github.com/abo-abo/lispy/issues/513 + (let ((commit "5c8a59ae7dd3dd342e7c86a8c0acdbd13e2989f3")) + (package + (name "emacs-lispy") + (version (git-version "0.27.0" "1" commit)) + (home-page "https://github.com/abo-abo/lispy") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/lispy") + (commit commit))) + (sha256 + (base32 + "0738v9bp4dlxbwsnykvc35yh4dl4pvw25jl8srb7r3744ydvgyii")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ace-window" ,emacs-ace-window) + ("emacs-hydra" ,emacs-hydra) + ("emacs-iedit" ,emacs-iedit) + ("emacs-swiper" ,emacs-swiper) + ("emacs-zoutline" ,emacs-zoutline))) + (native-inputs + `(("which" ,which) + ("emacs-clojure-mode" ,emacs-clojure-mode) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:include (cons* "^lispy-clojure\\.clj$" + "^lispy-python\\.py$" + %default-include) + #:phases + ;; XXX: Some failing tests + (modify-phases %standard-phases + (add-before 'check 'make-test-writable + (lambda _ + (make-file-writable "lispy-test.el") + #t)) + (add-before 'check 'remove-failing-test + (lambda _ + (emacs-batch-edit-file "lispy-test.el" + `(progn + (dolist (test '("lispy-eval-python-str" "lispy--clojure-dot-object")) + (goto-char (point-min)) + (re-search-forward + (concat "ert-deftest " test)) + (beginning-of-line) + (kill-sexp)) + (basic-save-buffer))) + #t))) + #:tests? #t + ;; Set BEMACS to prevent the test suite from loading straight.el. + #:test-command '("make" "test" "BEMACS=emacs -batch"))) + (synopsis "Modal S-expression editing") + (description + "Due to the structure of Lisp syntax it's very rare for the programmer to want to insert characters right before \"(\" or right after \")\". Thus unprefixed printable characters can be used to call commands when the point is at one of these special locations. Lispy provides unprefixed keybindings for S-expression editing when point is at the beginning or end of an S-expression.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-lispyville (let ((commit "1bf38088c981f5ab4ef2e2684952ab6af96378db") @@ -7629,7 +7819,7 @@ The purpose of this library is to wrap all the quirks and hassle of (origin (method git-fetch) (uri (git-reference - (url "https://github.com/fuxialexander/counsel-notmuch.git") + (url "https://github.com/fuxialexander/counsel-notmuch") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -8754,25 +8944,24 @@ that uses the standard completion function completing-read.") (define-public emacs-yaml-mode (package (name "emacs-yaml-mode") - (version "0.0.14") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/yoshiki/yaml-mode") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r")))) + (version "0.0.15") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/yoshiki/yaml-mode") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gsa153yp8lmwrvcc3nzpw5lj037y7q2nm23k5k404r5as4k355l")))) (build-system emacs-build-system) (home-page "https://github.com/yoshiki/yaml-mode") (synopsis "Major mode for editing YAML files") (description - "Yaml-mode is an Emacs major mode for editing files in the YAML data -serialization format. It was initially developed by Yoshiki Kurihara and many -features were added by Marshall Vandegrift. As YAML and Python share the fact -that indentation determines structure, this mode provides indentation and -indentation command behavior very similar to that of python-mode.") + "Yaml mode is an Emacs major mode for editing files in the YAML data +serialization format. As YAML and Python share the fact that indentation +determines structure, this mode provides indentation and indentation command +behavior very similar to that of Python mode.") (license license:gpl3+))) (define-public emacs-gitlab-ci-mode @@ -8872,7 +9061,7 @@ ack, ag, helm and pt.") (define-public emacs-helm (package (name "emacs-helm") - (version "3.6.5") + (version "3.7.0") (source (origin (method git-fetch) @@ -8881,7 +9070,7 @@ ack, ag, helm and pt.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0yzpb84346v42ig4h0rsnvzmln58ilhc0gsq0ggc7038ypqkdw4d")))) + (base32 "0lxq13bsbh7xawgsq08kjm7s28x9yl8mid3538flv5kcc1rv2b9y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) @@ -9477,8 +9666,8 @@ extensions.") (license license:gpl3+))) (define-public emacs-evil-collection - (let ((commit "910c1f4507d91a4790e26ddccf73ad1e5a12f68d") - (revision "17")) + (let ((commit "8c256263ad100fecd6246c6c55cbb19dab717c39") + (revision "18")) (package (name "emacs-evil-collection") (version (git-version "0.0.3" revision commit)) @@ -9490,7 +9679,7 @@ extensions.") (file-name (git-file-name name version)) (sha256 (base32 - "0bkx1bwgw1n3fbd95z8i32i1yvv8w8bgzsxsybm1lcgv1v23qn8l")))) + "0hz1yfv5g016dm99bwnibbmyhbi21qlc39ckd7p3s82az89hgf2n")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil) @@ -10680,46 +10869,42 @@ Yasnippet.") (license license:gpl2+)))) (define-public emacs-helm-system-packages - ;; There won't be a new release after 1.10.1 until - ;; https://github.com/emacs-helm/helm-system-packages/issues/25 is fixed, - ;; and latest commits fix import issues with Guix. - (let ((commit "6572340f41611ef1991e9612d34d59130957ee4a")) - (package - (name "emacs-helm-system-packages") - (version (git-version "1.10.1" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacs-helm/helm-system-packages") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0mcz6vkpk12vsyd37xv1rbg4v442sxc3lj8yxskqg294xbdaclz4")))) - (build-system emacs-build-system) - (inputs - `(("recutils" ,recutils))) - (propagated-inputs - `(("emacs-helm" ,emacs-helm))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((recutils (assoc-ref inputs "recutils"))) - ;; Specify the absolute file names of the various - ;; programs so that everything works out-of-the-box. - (substitute* "helm-system-packages-guix.el" - (("recsel") (string-append recutils "/bin/recsel"))))))))) - (home-page "https://github.com/emacs-helm/helm-system-packages") - (synopsis "Helm System Packages is an interface to your package manager") - (description "List all available packages in Helm (with installed + (package + (name "emacs-helm-system-packages") + (version "1.10.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-helm/helm-system-packages") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13a8jpj4wwm0yjv8hnsizgjf8wi3r2ap87lyvw7g4c7snp2dydwa")))) + (build-system emacs-build-system) + (inputs + `(("recutils" ,recutils))) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((recutils (assoc-ref inputs "recutils"))) + ;; Specify the absolute file names of the various + ;; programs so that everything works out-of-the-box. + (substitute* "helm-system-packages-guix.el" + (("recsel") (string-append recutils "/bin/recsel"))))))))) + (home-page "https://github.com/emacs-helm/helm-system-packages") + (synopsis "Helm System Packages is an interface to your package manager") + (description "List all available packages in Helm (with installed packages displayed in their own respective face). Fuzzy-search, mark and execute the desired action over any selections of packages: Install, uninstall, display packages details (in Org Mode) or insert details at point, find files owned by packages... And much more, including performing all the above over the network.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-helm-org-rifle (package @@ -11104,7 +11289,7 @@ abbreviation of the mode line displays (lighters) of minor modes.") (define-public emacs-use-package (package (name "emacs-use-package") - (version "2.4") + (version "2.4.1") (source (origin (method git-fetch) (uri (git-reference @@ -11113,7 +11298,7 @@ abbreviation of the mode line displays (lighters) of minor modes.") (file-name (git-file-name name version)) (sha256 (base32 - "1b7mjjh0d6fmkkd9vyj64vca27xqhga0nvyrrcqxpqjn62zq046y")))) + "088kl3bml0rs5bkfymgzr15ram9qvy66h1kaisrbkynh0yxvf8g9")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) @@ -11147,14 +11332,14 @@ performance-oriented and tidy.") (define-public emacs-leaf (package (name "emacs-leaf") - (version "4.2.5") + (version "4.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "leaf-" version ".tar")) (sha256 - (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw")))) + (base32 "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi")))) (build-system emacs-build-system) (home-page "https://github.com/conao3/leaf.el") (synopsis "Simplify your init.el configuration, extended use-package") @@ -11343,6 +11528,59 @@ constructs.") configuration of Chinese fonts.") (license license:gpl2+))) +(define-public emacs-boon + (package + (name "emacs-boon") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jyp/boon") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ss9bjs34q41pa0g0nbdzd8fwpjcbd2239rdlx5aykfv9v0b8j77")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-expand-region" ,emacs-expand-region) + ("emacs-multiple-cursors" ,emacs-multiple-cursors) + ("emacs-powerline" ,emacs-powerline) + ("emacs-spaceline" ,emacs-spaceline))) + (home-page "https://github.com/jyp/boon") + (synopsis "Ergonomic command mode for Emacs") + (description "Boon is a complete package for modal editing with a focus on +ergonomics and modularity. Spacial allocation of keys comes first, mnemonics +second. Most common operations are mapped to the home row, common editing +commands are bound to keys reachable with the left hand and movement keys are +reached with the right hand.") + (license license:gpl3+))) + +(define-public emacs-csharp-mode + (package + (name "emacs-csharp-mode") + (version "0.10.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/josteink/csharp-mode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vwkbla2gkfa9dzxfvrvr7hd2z16769iwbycl7k6l701dnwli1fw")))) + (build-system emacs-build-system) + (home-page "https://github.com/josteink/csharp-mode") + (synopsis "Major mode for C# code") + (description + "This is a C# editing mode for Emacs, based on CC mode. It handles +syntax coloring, indentation, insertion of matched pairs of curly braces and +documentation generation. In addition, it provides menu-based navigation +using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.") + ;; XXX: Project switched to GPL3+ after 0.10.0 release. + (license license:gpl2+))) + (define-public emacs-php-mode (package (name "emacs-php-mode") @@ -11442,14 +11680,14 @@ and cangjie.") (define-public emacs-posframe (package (name "emacs-posframe") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "posframe-" version ".el")) (sha256 - (base32 "1yrk2bnlx5bpkjkzqialf0q4bdp9c5pipnvj3zsb5hbjni24x0yb")))) + (base32 "05m56aw2yxik0pgcvyr5c92j2mwfksxgq1syzvik6161gy8hdd0g")))) (build-system emacs-build-system) ;; emacs-minimal does not include the function font-info. (arguments @@ -12158,14 +12396,14 @@ highlighting.") (define-public emacs-jsonrpc (package (name "emacs-jsonrpc") - (version "1.0.12") + (version "1.0.14") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "jsonrpc-" version ".el")) (sha256 - (base32 "0cqp05awikbrn88ifld3vwnv6cxgmr83wlnsvxw8bqb96djz70ad")))) + (base32 "069l0sqkambam4ikj9id36kdw1jdjna8v586d51m64hiz96rmvm6")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/jsonrpc.html") (synopsis "JSON-RPC library") @@ -12463,7 +12701,7 @@ when browsing files with Dired.") (define-public emacs-org-edit-latex (package (name "emacs-org-edit-latex") - (version "0.8.0") + (version "0.8.3") (source (origin (method git-fetch) @@ -12472,18 +12710,16 @@ when browsing files with Dired.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0zcllyhx9n9vcr5w87h0hfz25v52lvh5fi717cb7mf3jh89zh842")))) + (base32 "1w0lyz71dq8x28ira4hig1b70bqn1dr53w3k5dgch9szcf6xa86y")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-auctex" ,emacs-auctex) - ;; The version of org in Emacs 25.2 is not sufficient, because the - ;; `org-latex-make-preamble' function is required. ("emacs-org" ,emacs-org))) (home-page "https://github.com/et2010/org-edit-latex") - (synopsis "Edit a latex fragment just like editing a src block") - (description "@code{emacs-org-edit-latex} is an extension for org-mode. -It lets you edit a latex fragment in a dedicated buffer just like editing a -src block.") + (synopsis "Edit a LaTeX fragment just like editing a source block") + (description + "Org Edit LaTeX is an extension for Org mode. It lets you edit a LaTeX +fragment in a dedicated buffer just like editing a source block.") (license license:gpl3+))) (define-public emacs-emamux @@ -12554,31 +12790,29 @@ functions written in continuation-passing style.") (license license:gpl3+))) (define-public emacs-attrap - (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d") - (revision "2")) - (package - (name "emacs-attrap") - (version (git-version "1.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jyp/attrap") - (commit commit))) - (sha256 - (base32 - "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-f" ,emacs-f) - ("emacs-flycheck" ,emacs-flycheck) - ("emacs-s" ,emacs-s))) - (home-page "https://github.com/jyp/attrap") - (synopsis "Fix coding error at point") - (description "This package provides a command to fix the Flycheck error + (package + (name "emacs-attrap") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jyp/attrap") + (commit version))) + (sha256 + (base32 "0wqc7bqx9rvk8r7fd3x84h8p01v97s6w2jf29nnjb59xakwp22i7")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-flycheck" ,emacs-flycheck) + ("emacs-s" ,emacs-s))) + (home-page "https://github.com/jyp/attrap") + (synopsis "Fix coding error at point") + (description "This package provides a command to fix the Flycheck error at point.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-git-messenger (package @@ -13187,16 +13421,16 @@ contexts. (define-public emacs-polymode (package (name "emacs-polymode") - (version "0.2") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/polymode/polymode") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "04v0gnzfsjb50bgly6kvpryx8cyzwjaq2llw4qv9ijw1l6ixmq3b")))) + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/polymode/polymode") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18ssl2h861dm2jkd3df6wkfr48p8zk337dbvpq5522kia7fq1lbn")))) (build-system emacs-build-system) (home-page "https://github.com/polymode/polymode") (synopsis "Framework for multiple Emacs modes based on indirect buffers") @@ -13209,33 +13443,30 @@ literate programming tools for exporting, weaving and tangling.") (license license:gpl3+))) (define-public emacs-polymode-ansible - (let ((commit "b26094d029e25dc797b94254f797e7807a57e4c8")) - (package - (name "emacs-polymode-ansible") - ;; No upstream version release yet. - (version (git-version "0.1" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/mavit/poly-ansible") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "055shddqibib3hx2ykwdz910nrqws40cd407mq946l2bf6v87gj6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-ansible-doc" ,emacs-ansible-doc) - ("emacs-jinja2-mode" ,emacs-jinja2-mode) - ("emacs-polymode" ,emacs-polymode) - ("emacs-yaml-mode" ,emacs-yaml-mode))) - (properties '((upstream-name . "poly-ansible"))) - (home-page "https://gitlab.com/mavit/poly-ansible/") - (synopsis "Polymode for Ansible - Jinja2 in YAML") - (description - "Edit YAML files for Ansible containing embedded Jinja2 templating.") - (license license:gpl3+)))) + (package + (name "emacs-polymode-ansible") + (version "0.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/mavit/poly-ansible") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f0yq6gmkp194nxk90ipprglf1xkmxrgz1rkgrhfslvxq4q2l81h")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-ansible-doc" ,emacs-ansible-doc) + ("emacs-jinja2-mode" ,emacs-jinja2-mode) + ("emacs-polymode" ,emacs-polymode) + ("emacs-yaml-mode" ,emacs-yaml-mode))) + (properties '((upstream-name . "poly-ansible"))) + (home-page "https://gitlab.com/mavit/poly-ansible/") + (synopsis "Polymode for Ansible - Jinja2 in YAML") + (description + "Edit YAML files for Ansible containing embedded Jinja2 templating.") + (license license:gpl3+))) (define-public emacs-powershell ;; Tagged branch 0.1 is outdated (2015). @@ -13264,7 +13495,7 @@ Microsoft PowerShell files.") (define-public emacs-polymode-org (package (name "emacs-polymode-org") - (version "0.2") + (version "0.2.2") (source (origin (method git-fetch) @@ -13273,8 +13504,7 @@ Microsoft PowerShell files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "04x6apjad4kg30456z1j4ipp64yjgkcaim6hqr6bb0rmrianqhck")))) + (base32 "1srnwcsn2bh8gqzxixkhffk7gbnk66kd4dgvxbnps5nxqc6v0qhc")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-polymode" ,emacs-polymode))) @@ -13282,10 +13512,9 @@ Microsoft PowerShell files.") (home-page "https://github.com/polymode/poly-org") (synopsis "Polymode definitions for Org mode buffers") (description - "Provides definitions for @code{emacs-polymode} to support -@code{emacs-org} buffers. Edit source blocks in an Org mode buffer using the -native modes of the blocks' languages while remaining inside the primary Org -buffer.") + "This package provides definitions for Polymode to support Org buffers. +It edits source blocks in an Org buffer using the native modes of the blocks' +languages while remaining inside the primary Org buffer.") (license license:gpl3+))) (define-public eless @@ -14957,6 +15186,34 @@ and @code{erc-send-modify-hook} to download and show images.") (description "This package provides a list manipulation library for Emacs.") (license license:gpl3+))) +(define-public emacs-parsec + ;; Last release is too old (2016). + (let ((revision "0") + (commit "2cbbbc2254aa7bcaa4fb5e07c8c1bf2f381dba26")) + (package + (name "emacs-parsec") + (version (git-version "0.1.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cute-jumper/parsec.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1g1s8s45g3kkbi3h7w0pmadmzdswb64mkdvdpg2lihg341kx37gm")))) + (build-system emacs-build-system) + (home-page "https://github.com/cute-jumper/parsec.el") + (synopsis "Parser combinator library for Emacs Lisp") + (description + "Parsec is a parser combinator library for Emacs Lisp, similar to +Haskell's Parsec library. It contains most of the parser combinators in +Text.Parsec.Combinator, and more combinators can be added if necessary! Most +of the parser combinators have the same behavior as their Haskell +counterparts. Parsec also comes with a simple error handling mechanism so +that it can display an error message showing how the parser fails.") + (license license:gpl3+)))) + (define-public emacs-move-text (package (name "emacs-move-text") @@ -17230,7 +17487,7 @@ Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep (base32 "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1")))) (build-system emacs-build-system) - (home-page "https://github.com/bgamari/dts-mode.git") + (home-page "https://github.com/bgamari/dts-mode") (synopsis "Emacs minor mode for editing device tree files") (description "This package provides an Emacs minor mode for highlighting @@ -18537,6 +18794,16 @@ files. It focuses on highlighting the document to improve readability.") (lambda _ (substitute* "Makefile" (("\\$\\{CASK\\} exec ") "")) + #t)) + ;; Two tests are failing with Emacs 27, as reported here: + ;; <https://github.com/racer-rust/emacs-racer/issues/136>. Disable + ;; them. + (add-before 'check 'fix-failing-tests + (lambda _ + (substitute* "test/racer-test.el" + (("`Write`") "Write") + (("^\\\\\\[`str\\]:.*") "") + ((" \\[`str`\\]") " str")) #t))))) (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner) @@ -19172,7 +19439,7 @@ scratch, and you think the Spacemacs theme looks good. (origin (method git-fetch) (uri (git-reference - (url "https://github.com/TheBB/spaceline.git") + (url "https://github.com/TheBB/spaceline") (commit commit))) (sha256 (base32 "11lwckqcgzsahrkkm5wk1ph4kc7d4yz05r7251g8c9f0q6vdj9dp")) @@ -19251,7 +19518,7 @@ correctly.") (define-public emacs-helm-sly (package (name "emacs-helm-sly") - (version "0.4.1") + (version "0.5.1") (source (origin (method git-fetch) (uri (git-reference @@ -19260,7 +19527,7 @@ correctly.") (file-name (git-file-name name version)) (sha256 (base32 - "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys")))) + "13s2dj09mcdwlibjlahyyq2dxjkjlpxs88dbdyvcd64249jmahsx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) @@ -19270,11 +19537,12 @@ correctly.") (description "Helm-SLY defines a few new commands: @itemize -@item helm-sly-list-connections: Yet another Lisp connection list with Helm. -@item: helm-sly-apropos: Yet another @command{apropos} with Helm. -@item helm-sly-mini: Like @command{helm-sly-list-connections}, but include an -extra source of Lisp-related buffers, like the events buffer or the scratch -buffer. +@item @code{helm-sly-list-connections}: Yet another Lisp connection list with +Helm. +@item @code{helm-sly-apropos}: Yet another @command{apropos} with Helm. +@item @code{helm-sly-mini}: Like @command{helm-sly-list-connections}, but +include an extra source of Lisp-related buffers, like the events buffer or the +scratch buffer. @end itemize\n") (license license:gpl3+))) @@ -19337,10 +19605,10 @@ Emacs.") (license license:gpl3+))) (define-public emacs-matrix-client - (let ((commit "a0623667b07a4bf60980c97b078e9faed97ace79")) + (let ((commit "59c792423fd0503f1375f356bec56130e65d3b51")) (package (name "emacs-matrix-client") - (version (git-version "0.0.0" "4" commit)) + (version (git-version "0.0.0" "5" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -19349,7 +19617,7 @@ Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb")))) + "1gmpw14q9zkvviqpnmvh5vbyxk42038yilxm6b2zqw7mwxfc1xra")))) (build-system emacs-build-system) (arguments `(#:phases @@ -19765,7 +20033,7 @@ programs can use this table component for the application UI.") (package (name "emacs-leetcode") (version (git-version "0" "1" commit)) - (home-page "https://github.com/ginqi7/leetcode-emacs.git") + (home-page "https://github.com/ginqi7/leetcode-emacs") (source (origin (method git-fetch) (uri (git-reference @@ -20465,20 +20733,20 @@ processes for Emacs") "0m083g3pg0n4ymi1w0jx34awr7cqbm4r561adij9kklblxsz7sc2")))) (build-system emacs-build-system) (propagated-inputs - `(("emacs-dash" ,emacs-dash) - ("emacs-s" ,emacs-s) - ("emacs-f" ,emacs-f) - ("emacs-ace-window" ,emacs-ace-window) - ("emacs-pfuture" ,emacs-pfuture) - ("emacs-hydra" ,emacs-hydra) - ("emacs-ht" ,emacs-ht))) + `(("emacs-ace-window" ,emacs-ace-window) + ("emacs-dash" ,emacs-dash) + ("emacs-f" ,emacs-f) + ("emacs-ht" ,emacs-ht) + ("emacs-hydra" ,emacs-hydra) + ("emacs-pfuture" ,emacs-pfuture) + ("emacs-s" ,emacs-s))) (native-inputs `(("emacs-buttercup" ,emacs-buttercup) ("emacs-el-mock" ,emacs-el-mock))) (inputs `(("python" ,python))) (arguments - `(#:tests? #t ;TODO: Investigate ‘treemacs--parse-collapsed-dirs’ test failure. + `(#:tests? #t #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-makefile @@ -20493,12 +20761,14 @@ processes for Emacs") (lambda _ (chdir "src/elisp"))) (replace 'check + ;; FIXME: Work around ‘treemacs--parse-collapsed-dirs’ and + ;; `treemacs-collect-child-nodes' test failures. (lambda _ (with-directory-excursion "../.." ;treemacs root (chmod "test/test-treemacs.el" #o644) (emacs-substitute-sexps "test/test-treemacs.el" - ("(describe \"treemacs--parse-collapsed-dirs\"" - "")) + ("(describe \"treemacs--parse-collapsed-dirs\"" "") + ("\"Finds only direct childre\"" "")) (invoke "make" "test")))) (add-before 'install 'patch-paths (lambda* (#:key inputs outputs #:allow-other-keys) @@ -20530,7 +20800,12 @@ processes for Emacs") #t))))))) (home-page "https://github.com/Alexander-Miller/treemacs") (synopsis "Emacs tree style file explorer") - (description "Powerful and flexible file tree project explorer.") + (description + "Treemacs is a file and project explorer similar to NeoTree or Vim's +NerdTree, but largely inspired by the Project Explorer in Eclipse. It shows +the file system outlines of your projects in a simple tree layout allowing +quick navigation and exploration, while also possessing basic file management +utilities.") (license license:gpl3+))) (define-public emacs-treemacs-extra @@ -20830,10 +21105,10 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (license license:gpl3+)))) (define-public emacs-forge - (let ((commit "09bf8adc9c9afb492632e612f51f39e1cc15fca0")) + (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c")) (package (name "emacs-forge") - (version (git-version "0.1.0" "4" commit)) + (version (git-version "0.1.0" "5" commit)) (source (origin (method git-fetch) @@ -20843,7 +21118,7 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") (file-name (git-file-name name version)) (sha256 (base32 - "148h1rvmfmxyrfy2q5l0vzblr7lpsyw1si30hfwhzsj8fvj21qcr")))) + "1vv7xlawj2zmwqk69qlsqflhh0lbyqm5xf4x8l4v2069g0k8mmx1")))) (build-system emacs-build-system) (native-inputs `(("texinfo" ,texinfo))) @@ -21593,8 +21868,8 @@ and searching through @code{Ctags} files.") (license license:expat)))) (define-public emacs-org-download - (let ((commit "10c9d7c8eed928c88a896310c882e3af4d8d0f61") - (revision "2")) + (let ((commit "42ac361ef5502017e6fc1bceb00333eba90402f4") + (revision "3")) (package (name "emacs-org-download") (version (git-version "0.1.0" revision commit)) @@ -21603,10 +21878,9 @@ and searching through @code{Ctags} files.") (uri (git-reference (url "https://github.com/abo-abo/org-download") (commit commit))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0i8wlx1i7y1vn5lqwjifvymvszg28a07vwqcm4jslf1v2ajs1lsl")) - (file-name (git-file-name name version)))) + (base32 "0cg4y7hy7xbq4vrbdicfzgvyaf3cjbx2zkqd4yl0y2garz71j99l")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-org" ,emacs-org) @@ -22025,7 +22299,7 @@ and article extracts for Wikipedia.") (define-public emacs-webfeeder (package (name "emacs-webfeeder") - (version "1.0.0") + (version "1.1.0") (source (origin (method url-fetch) @@ -22035,7 +22309,7 @@ and article extracts for Wikipedia.") ".tar")) (sha256 (base32 - "06y5vxw9m6pmbrzb8v2i3w9dnhgqxz06vyx1knmgi9cczlrj4a64")))) + "09wz6v58xc86hdnz6g54ckaxkm6844yyk2ffbxh4s5sdvgqrzdd8")))) (build-system emacs-build-system) (home-page "https://gitlab.com/Ambrevar/emacs-webfeeder") (synopsis "Build RSS and Atom webfeeds from HTML files") @@ -22549,14 +22823,14 @@ federated microblogging social network.") (define-public emacs-ebdb (package (name "emacs-ebdb") - (version "0.6.20") + (version "0.6.21") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ebdb-" version ".tar")) (sha256 - (base32 "1rhmnz2g4nmk893gzxm1hfwqf5nan20yss5mxilfpza2jh4368h3")))) + (base32 "0pp190wr6z98kggmw9ls486f9vxfimdjdbqsp263qiyi21ws98if")))) (build-system emacs-build-system) (home-page "https://github.com/girzel/ebdb") (synopsis "EIEIO port of BBDB, Emacs's contact-management package") @@ -23441,6 +23715,29 @@ internal windowing system. This combines particularly well with tiling window managers such as XMonad.") (license license:gpl3+))) +(define-public emacs-modalka + (package + (name "emacs-modalka") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mrkkrp/modalka") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ggj8q92sb6wp3hs1vhpmy56id0p3i9zwnw24g2v7xa7w8ac9s7l")))) + (build-system emacs-build-system) + (home-page "https://github.com/mrkkrp/modalka") + (synopsis "Minor mode to easily define native custom modal editing") + (description + "This is a building kit to help switch to modal editing in Emacs. The +main goal of the package is to make modal editing in Emacs as natural and +native as possible. Modalka lets you define your own keys and does not come +with a preconfigured set of keys.") + (license license:gpl3+))) + (define-public emacs-shrink-path (package (name "emacs-shrink-path") @@ -24290,7 +24587,7 @@ launching other commands/applications from within Emacs, similar to the (define-public emacs-no-littering (package (name "emacs-no-littering") - (version "1.0.3") + (version "1.2.0") (source (origin (method git-fetch) @@ -24299,7 +24596,7 @@ launching other commands/applications from within Emacs, similar to the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17is06l0w6glppabv2kaclrnqi3dqb6p6alpslpg7lrjd8vd45ir")))) + (base32 "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw")))) (build-system emacs-build-system) (home-page "https://github.com/emacscollective/no-littering") (synopsis "Help keep ~/.emacs.d/ clean") @@ -24766,7 +25063,7 @@ personal wiki.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/conao3/org-generate.el.git") + (url "https://github.com/conao3/org-generate.el") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -25059,7 +25356,7 @@ picked up when copy-pasting text from buffer to buffer.") (define-public emacs-org-webring (package (name "emacs-org-webring") - (version "1.9.8-rc4") + (version "2.0.0") (source (origin (method git-fetch) @@ -25069,7 +25366,7 @@ picked up when copy-pasting text from buffer to buffer.") (file-name (git-file-name name version)) (sha256 (base32 - "0z2q29i9ng2vkzb6qbwb0dzvz8yv44p0kg07lx59pcdbv7mznjmc")))) + "1si0jah7n2gvlvghjy5dpannqpkxni5rczfp1x2a4z6ydalr3bn5")))) (build-system emacs-build-system) (arguments `(#:phases @@ -25281,3 +25578,100 @@ the TypeScript implementation.") (description "This package provides an Emacs client for the Rocket.chat service.") (license license:expat)))) + +(define-public emacs-monokai-theme + (package + (name "emacs-monokai-theme") + (version "3.5.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oneKelvinSmith/monokai-emacs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dy8c3349j7fmp8052hbgvk0b7ldlv5jqpg0paq1i0hlypivd30i")))) + (build-system emacs-build-system) + (home-page "https://github.com/oneKelvinSmith/monokai-emacs") + (synopsis "High contrast color theme for Emacs") + (description + "Monokai theme is a port of the popular TextMate Monokai theme for +Emacs.") + (license license:gpl3+))) + +(define-public emacs-nord-theme + (package + (name "emacs-nord-theme") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arcticicestudio/nord-emacs") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "096f8cik4jz89bvkifwp3gm9iraqrd75ljy2q9js724v7yj88711")))) + (build-system emacs-build-system) + (home-page "https://www.nordtheme.com/") + (synopsis "Low contrast arctic color theme for Emacs") + (description + "Nord is an arctic, north-bluish color scheme created for a clean and +uncluttered design pattern to achieve optimal focus and readability for code +syntax highlighting and UI components.") + (license license:expat))) + +(define-public emacs-janet-mode + (let ((commit "2f5bcabcb6953e1ed1926ba6a2328c453e8b4ac7")) + (package + (name "emacs-janet-mode") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ALSchwalm/janet-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0qj0gpycv2f3z1dgz1a27bjn983hrr3ppvrp7csl34lagnmp89rz")))) + (build-system emacs-build-system) + (home-page "https://github.com/ALSchwalm/janet-mode") + (synopsis "Emacs major mode for the Janet programming language") + (description + "This package provides an Emacs major mode for editing Janet files.") + (license license:gpl3)))) + +(define-public emacs-inf-janet + (let ((commit "df46651d3aad32593b2195c80ca91fb64d571fb7")) + (package + (name "emacs-inf-janet") + (version (git-version "0.1.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/velkyel/inf-janet") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0g0y7q62667j0p32md1h6zb2cap9fga9qgdg7138xwjqnk0328v7")))) + (build-system emacs-build-system) + (propagated-inputs + `(("janet-mode" ,emacs-janet-mode))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-program-name + (lambda _ + (make-file-writable "inf-janet.el") + (emacs-substitute-variables "inf-janet.el" + ("inf-janet-program" "janet")) + #t))))) + (home-page "https://github.com/velkyel/inf-janet") + (synopsis "Run an external Janet process in an Emacs buffer") + (description + "This Emacs package provides a Janet REPL to evaluate @code{janet-mode} +s-expression.") + (license license:expat)))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4963379d74..4f5a67093c 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -59,7 +59,6 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) ; alsa-lib #:use-module (gnu packages mail) ; for mailutils #:use-module (gnu packages multiprecision) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index cc26b17ea6..d6f487bd17 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2016, 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> @@ -36,6 +36,7 @@ #:use-module (guix build-system trivial) #:use-module ((guix build utils) #:select (alist-replace)) #:use-module (gnu packages) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module ((gnu packages base) #:prefix base:) #:use-module (gnu packages bison) @@ -487,7 +488,7 @@ SEGGER J-Link and compatible devices.") (define-public jimtcl (package (name "jimtcl") - (version "0.79") + (version "0.80") (source (origin (method git-fetch) (uri (git-reference @@ -496,17 +497,26 @@ SEGGER J-Link and compatible devices.") (file-name (git-file-name name version)) (sha256 (base32 - "1k88hz0v3bi19xdvlp0i9nsx38imzwpjh632w7326zwbv2wldf0h")))) + "06rn60cx9sapc175vxvan87b8j5rkhh5gvvz7343xznzwlr0wcgk")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases - ;; Doesn't use autoconf. (replace 'configure + ;; This package doesn't use autoconf. (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (invoke "./configure" - (string-append "--prefix=" out)))))))) + (string-append "--prefix=" out))))) + (add-before 'check 'delete-failing-tests + (lambda _ + ;; XXX All but 1 TTY tests fail (Inappropriate ioctl for device). + (delete-file "tests/tty.test") + #t)) + ))) + (native-inputs + ;; For tests. + `(("inetutils" ,inetutils))) ; for hostname (home-page "http://jim.tcl.tk/index.html") (synopsis "Small footprint Tcl implementation") (description "Jim is a small footprint implementation of the Tcl programming @@ -1014,8 +1024,8 @@ the Raspberry Pi chip.") (home-page "https://github.com/puppeh/vc4-toolchain/")))) (define-public gcc-vc4 - (let ((commit "165f6d0e11d2e76ee799533bb45bd5c92bf60dc2") - (xgcc (cross-gcc "vc4-elf" #:xbinutils binutils-vc4))) + (let ((commit "0fe4b83897341742f9df65797474cb0feab4b377") + (xgcc (cross-gcc "vc4-elf" #:xgcc gcc-6 #:xbinutils binutils-vc4))) (package (inherit xgcc) (name "gcc-vc4") (source (origin @@ -1029,7 +1039,10 @@ the Raspberry Pi chip.") "-checkout")) (sha256 (base32 - "13h30qjcwnlz6lfma1d82nnvfmjnhh7abkagip4vly6vm5fpnvf2")))) + "0kvaq4s0assvinmmicwqp07d0wwldcw0fv6f4k13whp3q5909jnr")) + (patches + (search-patches "gcc-6-fix-buffer-size.patch" + "gcc-6-fix-isl-includes.patch")))) (native-inputs `(("flex" ,flex) ,@(package-native-inputs xgcc))) @@ -1366,7 +1379,7 @@ debugging them, and more.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/john30/ebusd.git") + (url "https://github.com/john30/ebusd") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 @@ -1394,7 +1407,7 @@ debugging them, and more.") ,(origin (method git-fetch) (uri (git-reference - (url "https://github.com/john30/ebusd-configuration.git") + (url "https://github.com/john30/ebusd-configuration") (commit "666c0f6b9c4d7545eff7f43ab28a1c7baeab7913"))) (file-name "config-checkout") (sha256 diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 5b1d3788ad..86880be0d6 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -61,7 +61,6 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) #:use-module (gnu packages libedit) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) @@ -477,14 +476,14 @@ V2.") (define-public mednafen (package (name "mednafen") - (version "1.24.3") + (version "1.26.1") (source (origin (method url-fetch) (uri (string-append "https://mednafen.github.io/releases/files/" "mednafen-" version ".tar.xz")) (sha256 - (base32 "03zplcfvmnnv7grhacmr1zy789pb2wda36wylmzmar23g0zqbsix")))) + (base32 "1x7xhxjhwsdbak8l0iyb497f043xkhibk73w96xck4j2bk10fac4")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -567,7 +566,6 @@ The following systems are supported: (native-inputs `(("pkg-config" ,pkg-config) ("qttools" ,qttools))) (inputs `(("ffmpeg" ,ffmpeg) - ("imagemagick" ,imagemagick) ("libedit" ,libedit) ("libelf" ,libelf) ("libepoxy" ,libepoxy) diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index 75b330f83b..dd7c7c8365 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -49,7 +49,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/nuspell/nuspell.git") + (url "https://github.com/nuspell/nuspell") (commit (string-append "v" version)))) (file-name @@ -79,7 +79,7 @@ dictionaries.") (define-public enchant (package (name "enchant") - (version "2.2.8") + (version "2.2.13") (source (origin (method url-fetch) (uri (string-append "https://github.com/AbiWord/enchant/releases" @@ -87,7 +87,7 @@ dictionaries.") version ".tar.gz")) (sha256 (base32 - "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7")))) + "084aqsrkzz2c1ls47p759d9bsi26d0m6wq9901k37483g46zkfga")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static" diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 2e1ffa1355..3da11e3fed 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -754,8 +754,8 @@ fonts to gEDA.") (license license:gpl2+)))) (define-public libfive - (let ((commit "6e39254e57c179459bb929df49ae96a6017a0ed6") - (revision "3")) + (let ((commit "8ca1b8685ef3fac7b64e66b10459b8421a3020c6") + (revision "4")) (package (name "libfive") (version (git-version "0" revision commit)) @@ -766,7 +766,7 @@ fonts to gEDA.") (commit commit))) (sha256 (base32 - "0ryv2hcbrwqc087w7rrs4a2irkcpmqync00g4dh8n7jn10w2jkim")) + "1c762cd70iv2b9av0l9lq0py9138y98wk3dirhdmil7jncdhvq98")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments @@ -784,7 +784,7 @@ fonts to gEDA.") ("libpng" ,libpng) ("qtbase" ,qtbase) ("eigen" ,eigen) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (home-page "https://libfive.com") (synopsis "Tool for programmatic computer-aided design") (description @@ -810,7 +810,14 @@ language.") (file-name (git-file-name name version)) (sha256 (base32 - "0lan6930g5a9z4ack9jj0zdd0mb2s6q2xzpiwcjdc3pvl9b1nbw4")))) + "0lan6930g5a9z4ack9jj0zdd0mb2s6q2xzpiwcjdc3pvl9b1nbw4")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Allow builds with Guile 3.0. + (substitute* "configure.ac" + (("2\\.2") "3.0 2.2")) + #t)))) (build-system gnu-build-system) (arguments `(#:phases @@ -829,10 +836,10 @@ language.") ("pkg-config" ,pkg-config))) (inputs `(("mesa" ,mesa) - ("guile" ,guile-2.2))) + ("guile" ,guile-3.0))) (propagated-inputs `(("libfive" ,libfive) - ("guile-opengl" ,guile-opengl))) + ("guile-opengl" ,guile3.0-opengl))) (home-page "https://gitlab.com/kavalogic-inc/inspekt3d/") (synopsis "Lightweight 3D viewer for Libfive written in Guile Scheme") (description @@ -1537,8 +1544,12 @@ high-performance parallel differential evolution (DE) optimization algorithm.") (version "28") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" - version "/ngspice-" version ".tar.gz")) + (uri (list + (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" + version "/ngspice-" version ".tar.gz") + (string-append "mirror://sourceforge/ngspice/ng-spice-rework/" + "old-releases/" version + "/ngspice-" version ".tar.gz"))) (sha256 (base32 "0rnz2rdgyav16w7wfn3sfrk2lwvvgz1fh0l9107zkcldijklz04l")) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 02fd45017a..f306a31e46 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -566,14 +566,14 @@ directories. (define-public evisum (package (name "evisum") - (version "0.5.6") + (version "0.5.7") (source (origin (method url-fetch) (uri (string-append "https://download.enlightenment.org/rel/apps/" "evisum/evisum-" version ".tar.xz")) (sha256 - (base32 "1l8pym7738kncvic5ga03sj9d5igigvmcxa9lbg47z2yvdjwzv97")))) + (base32 "0pm63n3rls8vkjv3awq0f3zlqk33ddql3g0rl2bc46n48g2mcmbd")))) (build-system meson-build-system) (arguments '(#:tests? #f)) ; no tests diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index c29f429c60..bc147bf3c6 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml)) (define-public autofs @@ -182,6 +183,79 @@ another location, similar to @command{mount --bind}. It can be used for: @end itemize ") (license license:gpl2+))) +(define-public davfs2 + (package + (name "davfs2") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.savannah.nongnu.org/releases/" + "davfs2/davfs2-" version ".tar.gz")) + (sha256 + (base32 "0l1vnv5lfigciwg17p10zxwhzj4qw2d9kw30prr7g4dxhmb6fsrf")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--sysconfdir=/etc" ; so man pages & binaries contain /etc + (string-append "--docdir=" (assoc-ref %outputs "out") + "/share/doc/" ,name "-" ,version) + (string-append "ssbindir=" (assoc-ref %outputs "out") "/sbin") + ;; The default ‘davfs2’ user and group don't exist on most systems. + "dav_user=nobody" + "dav_group=nogroup") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'omit-redundancy + ;; Don't install redundant copies of /etc examples into /share. + (lambda _ + (substitute* "etc/Makefile.in" + (("(dist_pkgdata_DATA =.*) davfs2.conf secrets(.*)" + _ prefix suffix) + (string-append prefix suffix))) + #t)) + (add-after 'unpack 'patch-file-names + (lambda _ + ;; Don't auto-load the FUSE kernel module. That's up to root. + ;; XXX If/when we restore the previous behaviour, make sure not + ;; to introduce a security hole when mount.davfs is setuid. + (substitute* "src/kernel_interface.c" + (("/sbin/modprobe") "/modprobe/disabled")) + #t)) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" "install" + (string-append "pkgsysconfdir=" out "/etc") + make-flags))))))) + (inputs + `(("neon" ,neon) + + ;; Neon requires but doesn't propagate zlib, nor would we want that. + ;; XZ as well, but that's already present in the build environment. + ("zlib" ,zlib))) + (home-page "https://savannah.nongnu.org/projects/davfs2") + (synopsis "Mount remote WebDAV resources in the local file system") + (description + "The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension +to the HTTP protocol defines a standard way to author resources on a remote Web +server. Davfs2 exposes such resources as a typical filesystem which can be used +by standard applications with no built-in support for WebDAV, such as the GNU +coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor. + +Davfs2 works with most WebDAV servers with no or little configuration. It +supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and +client certificates. It performs extensive caching to avoid unnecessary network +traffic, stay responsive even over slow or unreliable connections, and prevent +data loss. It aims to make use by unprivileged users as easy and secure as +possible. + +However, davfs2 is not a full-featured WebDAV client. The file system interface +and the WebDAV protocol are quite different. Translating between the two is not +always possible.") + (license (list license:bsd-2 ; src/fuse_kernel.h + license:gpl3+)))) ; everything else + (define-public fsarchiver (package (name "fsarchiver") @@ -254,8 +328,8 @@ from a mounted file system.") (license license:gpl2+))) (define-public bcachefs-tools - (let ((commit "ab2f1ec24f5307b0cf1e3c4ad19bf350d9f54d9f") - (revision "0")) + (let ((commit "742dbbdbb90efb786f05a8576917fcd0e9cbd57e") + (revision "1")) (package (name "bcachefs-tools") (version (git-version "0.1" revision commit)) @@ -267,7 +341,7 @@ from a mounted file system.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "10pafvaxg1lvwnqjv3a4rsi96bghbpcsgh3vhqilndi334k3b0hd")))) + (base32 "0kn8y3kqylz6scv47mzfmwrlh21kbb14z5vs65vks8w50i26sxnc")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -287,7 +361,8 @@ from a mounted file system.") ("python-pytest" ,python-pytest) ("valgrind" ,valgrind))) (inputs - `(("keyutils" ,keyutils) + `(("eudev" ,eudev) + ("keyutils" ,keyutils) ("libaio" ,libaio) ("libscrypt" ,libscrypt) ("libsodium" ,libsodium) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index ffbf3b218d..7ef40f544f 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -108,7 +108,7 @@ (define-public bitcoin-core (package (name "bitcoin-core") - (version "0.19.1") + (version "0.20.1") (source (origin (method url-fetch) (uri @@ -116,11 +116,13 @@ version "/bitcoin-" version ".tar.gz")) (sha256 (base32 - "1h3w7brc18145np920vy7j5ms5hym59hvr40swdjx34fbdaisngj")) - (patches (search-patches "bitcoin-core-python-compat.patch")))) + "0y5rad68b398arh0abr2wgiwybdw0i5a4dxz9s3fk9fgdbyn5gab")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) ("python" ,python) ; for the tests ("util-linux" ,util-linux) ; provides the hexdump command for tests ("qttools" ,qttools))) @@ -130,7 +132,6 @@ ("libevent" ,libevent) ("miniupnpc" ,miniupnpc) ("openssl" ,openssl) - ("protobuf" ,protobuf) ("qtbase" ,qtbase))) (arguments `(#:configure-flags @@ -154,6 +155,13 @@ ;; Make Qt deterministic. (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1") #t)) + (add-before 'build 'set-no-git-flag + (lambda _ + ;; Make it clear we are not building from within a git repository + ;; (and thus no information regarding this build is available + ;; from git). + (setenv "BITCOIN_GENBUILD_NO_GIT" "1") + #t)) (add-before 'check 'set-home (lambda _ (setenv "HOME" (getenv "TMPDIR")) ; tests write to $HOME @@ -617,7 +625,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch ;; the system's dynamically linked library. (package (name "monero") - (version "0.17.1.1") + (version "0.17.1.3") (source (origin (method git-fetch) @@ -637,7 +645,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch "external/unbound")) #t)) (sha256 - (base32 "18x27dm24k04vx0yz57zi02rk0wrmbn4wr8alqf48dq6z9wr0fhp")))) + (base32 "1ddkdfd8i5q509qziwcx1f6nm8axs4a1ppzv2y5lgsqpq375if6j")))) (build-system cmake-build-system) (native-inputs `(("doxygen" ,doxygen) @@ -727,7 +735,7 @@ the Monero command line client and daemon.") (define-public monero-gui (package (name "monero-gui") - (version "0.17.1.1") + (version "0.17.1.4") (source (origin (method git-fetch) @@ -736,7 +744,7 @@ the Monero command line client and daemon.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0aqhp4rmqsgwjb875kgh6qwz0wyyiag1fksyic9cnhgg5j5y95nx")))) + (base32 "1ixjfdlvwr2an2s9jaql240bk7jpq5hhm5c4hww0bicyy3fp12ng")))) (build-system qt-build-system) (native-inputs `(,@(package-native-inputs monero) @@ -748,8 +756,6 @@ the Monero command line client and daemon.") ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) ("qtgraphicaleffects" ,qtgraphicaleffects) - ("qtlocation" ,qtlocation) - ("qtmultimedia" ,qtmultimedia) ("qtquickcontrols" ,qtquickcontrols) ("qtquickcontrols2",qtquickcontrols2) ("qtsvg" ,qtsvg) @@ -761,7 +767,7 @@ the Monero command line client and daemon.") "-DENABLE_PASS_STRENGTH_METER=ON" (string-append "-DReadline_ROOT_DIR=" (assoc-ref %build-inputs "readline")) - "-DCMAKE_BUILD_TYPE=Release") + "-DCMAKE_PREFIX_PATH=\"\"") #:phases (modify-phases %standard-phases (add-after 'unpack 'extract-monero-sources @@ -774,9 +780,6 @@ the Monero command line client and daemon.") #t)) (add-after 'extract-monero-sources 'fix-build (lambda _ - (substitute* "monero/src/version.cpp.in" - (("@VERSION_IS_RELEASE@") - "false")) (substitute* "src/version.js.in" (("@VERSION_TAG_GUI@") ,version)) @@ -1096,13 +1099,13 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ") (define-public python-duniterpy (package (name "python-duniterpy") - (version "0.60.0") + (version "0.60.1") (source (origin (method url-fetch) (uri (pypi-uri "duniterpy" version)) (sha256 - (base32 "0djn6ykmqbp8l2xbg6z8r7rkz9ijgygp2pr0gc6i7dsrlsqmjh32")))) + (base32 "1cwda5mk05zmpar7fpk9m4bziyz2s5pd0922h22fns5hw7vfsybh")))) (build-system python-build-system) (arguments ;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 360a3ece76..8940b04ca3 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1761,24 +1761,30 @@ This package provides the TrueType fonts.") (define-public font-jetbrains-mono (package (name "font-jetbrains-mono") - (version "2.002") + (version "2.210") (source (origin (method url-fetch) (uri - (string-append "https://download.jetbrains.com/fonts/" - "JetBrainsMono-" version ".zip")) + (string-append "https://github.com/JetBrains/JetBrainsMono/releases/" + "download/v" version "/JetBrainsMono-" version ".zip")) (sha256 - (base32 "0lcsl718jhkqgld1xqll7fsv8j968jlf292541fkqxwm8i5g93sn")))) + (base32 "19wbggnmqs3k1wdqy7l7imnx23g7hh159pl32nz3mzz8s8sqfdix")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-before 'install-license-files 'change-directory-to-archive-root - ;; Find the LICENSE file outside of the default subdirectory. + ;; Find the license file outside of the default subdirectory. (lambda _ (chdir "..") - #t))))) + #t)) + (replace 'install-license-files + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (install-file "OFL.txt" doc) + #t)))))) (home-page "https://www.jetbrains.com/lp/mono/") (synopsis "Mono typeface for developers") (description @@ -1787,6 +1793,36 @@ Mono’s typeface forms are simple and free from unnecessary details. Rendered in small sizes, the text looks crisper.") (license license:asl2.0))) +(define-public font-juliamono + (package + (name "font-juliamono") + (version "0.025") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cormullion/juliamono") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w8mpl9zc1y4j1f26ikbz5g9dqsszhikp4r9p1d3ch3b5ayb5c3m")))) + (build-system font-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-website-folder + ;; This folder contains other unrelated fonts. + (lambda _ + (delete-file-recursively "website") + #t))))) + (home-page "https://github.com/cormullion/juliamono") + (synopsis "Monospaced font for programming") + (description + "JuliaMono is a monospaced font for scientific and technical computing, +designed to work for programming in the Julia Programming Language and other +text environments.") + (license license:silofl1.1))) + (define-public font-vazir (package (name "font-vazir") diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 68665edddd..7409670a59 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -160,7 +160,7 @@ scripts.") (inputs `(("zlib" ,zlib))) (arguments - `(#:make-flags '("CC=gcc") + `(#:make-flags '(,(string-append "CC=" (cc-for-target))) #:tests? #f ;no tests #:phases (modify-phases %standard-phases @@ -170,7 +170,8 @@ scripts.") (let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))) (install-file "sfnt2woff" bin) - (install-file "woff2sfnt" bin))))))) + (install-file "woff2sfnt" bin)) + #t))))) (synopsis "Convert between OpenType and WOFF fonts") (description "This package provides two tools: @@ -282,7 +283,7 @@ work with most software requiring Type 1 fonts.") (method git-fetch) (uri (git-reference - (url "https://github.com/google/woff2.git") + (url "https://github.com/google/woff2") (commit (string-append "v" version)))) (file-name (git-file-name name version)) @@ -936,7 +937,7 @@ Unicode Charts. It was developed for use with DejaVu Fonts project.") (define-public libraqm (package (name "libraqm") - (version "0.7.0") + (version "0.7.1") (source (origin (method url-fetch) @@ -944,7 +945,7 @@ Unicode Charts. It was developed for use with DejaVu Fonts project.") "releases/download/v" version "/" "raqm-" version ".tar.gz")) (sha256 - (base32 "0hgry3fj2y3qaq2fnmdgd93ixkk3ns5jds4vglkiv2jfvpn7b1g2")))) + (base32 "0a4q9dziirb85sa9rmkamg2krdhd009di2vlz91njwxcp3q8qj46")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--disable-static"))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 6caff14cf2..94ec2cd44a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1393,17 +1393,22 @@ different sorts of messages in different formats.") (define-public telepathy-idle (package (name "telepathy-idle") - (version "0.2.0") - (source (origin - (method url-fetch) - (uri (string-append "https://telepathy.freedesktop.org/releases/" - name "/" name "-" version ".tar.bz2")) - (sha256 - (base32 - "1argdzbif1vdmwp5vqbgkadq9ancjmgdm2ncp0qfckni715ss4rh")))) + (version "0.2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/TelepathyIM/telepathy-idle") + (commit (string-append "telepathy-idle-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pfw4g2cicw3ykxhsy743r0fc1yqbdrqxh2c5ha6am19dajcr95l")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) (inputs `(("xsltproc" ,libxslt) ("python" ,python-2) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 96ed2f9da4..c57ea5a908 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -444,7 +444,7 @@ support.") (define-public tiled (package (name "tiled") - (version "1.2.5") + (version "1.4.3") (source (origin (method git-fetch) (uri (git-reference @@ -453,10 +453,11 @@ support.") (file-name (git-file-name name version)) (sha256 (base32 - "14v2zfka2y3h0r0biw1rl59585lji5074x958s4xnb352jm5h9b9")))) + "14bx4gywfzr2f07ldqk3la82g5ag1agj21f7ccrxip12ydmpx0xb")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) ("qtsvg" ,qtsvg) ("zlib" ,zlib))) (native-inputs @@ -1763,61 +1764,23 @@ a 2D editor view.") (define-public guile-chickadee (package (name "guile-chickadee") - (version "0.5.0") + (version "0.6.0") (source (origin (method url-fetch) (uri (string-append "https://files.dthompson.us/chickadee/" "chickadee-" version ".tar.gz")) (sha256 (base32 - "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx")))) + "1jv4jkc35b7rizz8iflh74hhk9qy665isn1xa6gqz0qp9grwb019")))) (build-system gnu-build-system) (arguments '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) (propagated-inputs - `(("guile-opengl" ,guile-opengl) - ("guile-sdl2" ,guile-sdl2))) - (inputs - `(("guile" ,guile-2.2) - ("libvorbis" ,libvorbis) - ("mpg123" ,mpg123) - ("openal" ,openal))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("texinfo" ,texinfo))) - (home-page "https://dthompson.us/projects/chickadee.html") - (synopsis "Game development toolkit for Guile Scheme with SDL2 and OpenGL") - (description "Chickadee is a game development toolkit for Guile Scheme -built on top of SDL2 and OpenGL. Chickadee aims to provide all the features -that parenthetically inclined game developers need to make 2D (and eventually -3D) games in Scheme, such as: - -@enumerate -@item extensible, fixed-timestep game loop -@item OpenGL-based rendering engine -@item keyboard, mouse, controller input -@item REPL-driven development model -@end enumerate\n") - (license license:gpl3+))) - -(define-public guile3.0-chickadee - (package - (inherit guile-chickadee) - (name "guile3.0-chickadee") - (version "0.5.0") - (source (origin - (method url-fetch) - (uri (string-append "https://files.dthompson.us/chickadee/" - "chickadee-" version ".tar.gz")) - (sha256 - (base32 - "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx")))) - (build-system gnu-build-system) - (propagated-inputs `(("guile-opengl" ,guile3.0-opengl) ("guile-sdl2" ,guile3.0-sdl2))) (inputs - `(("guile" ,guile-3.0) + `(("freetype" ,freetype) + ("guile" ,guile-3.0) ("libvorbis" ,libvorbis) ("mpg123" ,mpg123) ("openal" ,openal))) @@ -1839,10 +1802,13 @@ that parenthetically inclined game developers need to make 2D (and eventually @end enumerate\n") (license license:gpl3+))) +(define-public guile3.0-chickadee + (deprecated-package "guile3.0-chickadee" guile-chickadee)) + (define-public bennu-game-development (package (name "bennu-game-development") - (version "348") + (version "353") (source (origin (method svn-fetch) (uri (svn-reference @@ -1851,7 +1817,7 @@ that parenthetically inclined game developers need to make 2D (and eventually (file-name (string-append name "-" version)) (sha256 (base32 - "0wpzsbh4zi3931493dnyl5ffmh1b7fj2sx3mzrq304z9zs4d6lqq")) + "1iri58ryk9lbqn585cbccnvrfkj8qxlbcsk8rpih40jhvs1j101l")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index eb29f2a8e5..4dfd65040a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -54,6 +54,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Trevor Hass <thass@okstate.edu> ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2020 Lu hux <luhux@outlook.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1604,7 +1605,14 @@ such as chess or stockfish.") (native-inputs `(("python-2" ,python-2) ("pkg-config" ,pkg-config))) (arguments - `(#:phases + `(#:configure-flags + ;; SSE instructions are available on Intel systems only. + (list ,@(if (any (cute string-prefix? <> (or (%current-target-system) + (%current-system))) + '("x86_64" "i686")) + '("--enable-simd=sse2") ; prevent avx instructions + '())) + #:phases (modify-phases %standard-phases (add-after 'install 'install-desktop-file (lambda* (#:key outputs #:allow-other-keys) @@ -1868,8 +1876,8 @@ role, and your gender.") (source (origin (method url-fetch) - (uri (string-append "http://downloads.sourceforge.net/pipewalker/" - "pipewalker-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/pipewalker/pipewalker/" + version "/pipewalker-" version ".tar.gz")) (sha256 (base32 "1x46wgk0s55562pd96cxagxkn6wpgglq779f9b64ff1k3xzp3myn")))) (build-system gnu-build-system) @@ -4428,7 +4436,7 @@ is attributed to Albert Einstein.") (define-public powwow (package (name "powwow") - (version "1.2.19") + (version "1.2.22") (source (origin (method url-fetch) (uri (string-append @@ -4436,7 +4444,7 @@ is attributed to Albert Einstein.") version ".tar.gz")) (sha256 (base32 - "10rjl63hmf62qslyhzqrbw3i2zf09dgxv65avhj0iiz0m4pbc9wy")))) + "12i11b8zxg8vdb9d6ims8qy2lmwwr42rcqbwq3vsa1x94s51bcbp")))) (inputs `(("ncurses" ,ncurses))) (build-system gnu-build-system) @@ -5253,7 +5261,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.") (define-public laby (package (name "laby") - (version "0.6.4") + (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference @@ -5262,7 +5270,7 @@ Linux / Mac OS X servers, and an auto mapper with a VT100 map display.") (file-name (git-file-name name version)) (sha256 (base32 - "12fq9hhrxpzgfinmj9ra9ckss9yficwdlrmgjvvsq7agvh3sgyl1")) + "1y6nfxcjhqg9bb81hs0wijg7kcwk5kff81rgd8bsv5ps7ia9nj6b")) (patches (search-patches "laby-make-install.patch")))) (build-system gnu-build-system) (inputs @@ -6590,7 +6598,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as (define-public tome4 (package (name "tome4") - (version "1.7.0") + (version "1.7.2") (synopsis "Single-player, RPG roguelike game set in the world of Eyal") (source (origin @@ -6598,7 +6606,7 @@ Crowther & Woods, its original authors, in 1995. It has been known as (uri (string-append "https://te4.org/dl/t-engine/t-engine4-src-" version ".tar.bz2")) (sha256 - (base32 "1fs0320n3ndd5kd6j9y22jsd1hbn356d4dr11kl3iy5ssix7832s")) + (base32 "1xa0pdn9pggwf7hnqb87ya2qxqhjahkdjwf8cr2y01gixgrkj9lv")) (modules '((guix build utils))) (snippet '(begin @@ -6620,7 +6628,9 @@ Crowther & Woods, its original authors, in 1995. It has been known as ("vorbis" ,libvorbis) ("luajit" ,luajit))) (arguments - `(#:make-flags '("CC=gcc" "config=release") + `(#:make-flags + (list (string-append "CC=" ,(cc-for-target)) + "config=release") ;; XXX: Building in parallel occasionally causes this build failure: ;; ../src/luajit2/src/host/buildvm.c:73:10: fatal error: buildvm_arch.h: ;; No such file or directory @@ -11940,3 +11950,33 @@ inside the Zenith Colony.") X11 that won't set your CPU on fire, drain your laptop battery, or lower video game FPS.") (license license:unlicense)))) + +(define-public curseofwar + (package + (name "curseofwar") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/a-nikolaev/curseofwar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests + #:make-flags + (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (inputs `(("ncurses" ,ncurses))) + (home-page "https://a-nikolaev.github.io/curseofwar/") + (synopsis "Fast-paced action strategy game") + (description "Curse of War is a fast-paced action strategy game originally +implemented using ncurses user interface. An SDL graphical version is also +available.") + (license license:gpl3+))) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c412ec35b6..395ad4be7a 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -112,7 +112,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/jiuka/memphis.git") + (url "https://github.com/jiuka/memphis") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 530a53a92b..ff986c0a02 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -139,7 +139,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/hodefoting/mrg.git") + (url "https://github.com/hodefoting/mrg") (commit version))) (file-name (git-file-name name version)) diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 7f3ae41d17..d69f14ba0e 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -131,7 +131,7 @@ the Obsidian icon theme.") (method git-fetch) (uri (git-reference (url - "https://github.com/ubuntu/gnome-shell-extension-appindicator.git") + "https://github.com/ubuntu/gnome-shell-extension-appindicator") (commit (string-append "v" version)))) (sha256 (base32 @@ -593,7 +593,7 @@ and a few extra features.") ;; Note to maintainer: VLS must be built with a Vala toolchain the same ;; version or newer. Therefore when you update this package you may need ;; to update Vala too. - (version "0.48") + (version "0.48.1") (source (origin (method git-fetch) (uri (git-reference @@ -601,7 +601,7 @@ and a few extra features.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0chgfpci247skrvsiq1l8cas8sj2z6z42dlarka3df3qwxmh0if0")))) + (base32 "12k095052jkvbiyz8gzkj6w7r7p16d5m18fyikl48yvh5nln8fw0")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t)) (inputs @@ -609,7 +609,7 @@ and a few extra features.") ("json-glib" ,json-glib) ("jsonrpc-glib" ,jsonrpc-glib) ("libgee" ,libgee) - ("vala" ,vala-0.48))) + ("vala" ,vala-0.50))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://github.com/benwaffle/vala-language-server") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 43b681d85d..2d2f941c17 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2840,16 +2840,16 @@ database is translated at Transifex.") (define-public system-config-printer (package (name "system-config-printer") - (version "1.5.12") + (version "1.5.13") (source (origin (method url-fetch) (uri (string-append "https://github.com/OpenPrinting/system-config-printer/releases/" - "download/" version + "download/v" version "/system-config-printer-" version ".tar.xz")) (sha256 - (base32 "050yrx1vfh9f001qsn06y1jcidxq0ymxr64kxykasr0zzryp25kb")))) + (base32 "18dqvi1s971lggkw6pv1sqxixlpg5a8rppzc1pxbanxa91jg18zf")))) (build-system glib-or-gtk-build-system) (arguments `(#:imported-modules ((guix build python-build-system) @@ -4279,10 +4279,10 @@ requirements and without using a different ABI compared to applications and libraries written in C.") (license license:lgpl2.1+))) -(define-public vala-0.48 +(define-public vala-0.50 (package (inherit vala) - (version "0.48.9") + (version "0.50.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/vala/" @@ -4290,7 +4290,7 @@ libraries written in C.") "vala-" version ".tar.xz")) (sha256 (base32 - "1agyrvslv2yh9ikiw7k5nw6j6il1l2zrzfan0pzdpb9xpg9idslw")))))) + "0v4g2gvn7x7cl33h8sj1y2xyyskw5ayaj4jm2jrd3my3r439z3cm")))))) (define-public vte (package @@ -6001,7 +6001,7 @@ discovery protocols.") (define-public totem (package (name "totem") - (version "3.34.1") + (version "3.38.0") (source (origin (method url-fetch) @@ -6010,14 +6010,14 @@ discovery protocols.") "totem-" version ".tar.xz")) (sha256 (base32 - "028sc6xbyi7rs884862d8f3di6zhcm0lhvlpc3r69ifzjsq9my3b")))) + "0bs33ijvxbr2prb9yj4dxglsszslsn9k258n311sld84masz4ad8")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) + ("gettext" ,gettext-minimal) ("gobject-introspection" ,gobject-introspection) ("glib:bin" ,glib "bin") ;for 'glib-mkenums' - ("intltool" ,intltool) ("itstool" ,itstool) ("xmllint" ,libxml2) ("xorg-server" ,xorg-server-for-tests))) @@ -6835,7 +6835,7 @@ metadata in photo and video files of various formats.") (define-public shotwell (package (name "shotwell") - (version "0.30.9") + (version "0.30.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/shotwell/" @@ -6843,7 +6843,7 @@ metadata in photo and video files of various formats.") "shotwell-" version ".tar.xz")) (sha256 (base32 - "1y556yyzfya0310v5wqjkf17hy5lhf028iminvvgi2pdfva344id")))) + "12d26y40kjlv5x8f5g04wff33vh7mdjb8c41ydqbrwdip0jwy2n2")))) (build-system meson-build-system) (arguments '(#:glib-or-gtk? #t @@ -9538,19 +9538,21 @@ functionality and behavior.") (define-public arc-theme (package (name "arc-theme") - (version "20190917") + (version "20201013") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/NicoHood/arc-theme") + (url "https://github.com/jnsh/arc-theme") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "1qgpk4p2hi5hd4yy0hj93kq1vs0b32wb8qkaj1wi90c8gwddq5wa")))) + "1x2l1mwjx68dwf3jb1i90c1q8nqsl1wf2zggcn8im6590k5yv39s")))) (build-system gnu-build-system) (arguments - '(#:phases + '(#:configure-flags + (list "--disable-cinnamon") + #:phases (modify-phases %standard-phases ;; autogen.sh calls configure at the end of the script. (replace 'bootstrap @@ -9967,14 +9969,14 @@ only know by its Unicode name or code point.") (define-public bluefish (package (name "bluefish") - (version "2.2.11") + (version "2.2.12") (source (origin (method url-fetch) - (uri (string-append "http://www.bennewitz.com/bluefish/stable/source/" + (uri (string-append "https://www.bennewitz.com/bluefish/stable/source/" "bluefish-" version ".tar.gz")) (sha256 - (base32 "0a7kf78q4cj2ap4igjks9kbmmr74brsrl4y2f9wbxpl0b0v2ck2x")))) + (base32 "09hgxq139kbkjda5y073lqhq1z1x7cx0j80jh77afrqa3y9c53wl")))) (build-system gnu-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -9989,7 +9991,7 @@ only know by its Unicode name or code point.") (home-page "http://bluefish.openoffice.nl") (synopsis "Web development studio") (description - "Bluefish is an editor targeted towards programmers and web developers, + "Bluefish is an editor aimed at programmers and web developers, with many options to write web sites, scripts and other code. Bluefish supports many programming and markup languages.") (license license:gpl3+))) @@ -10390,9 +10392,9 @@ photo-booth-like software, such as Cheese.") (native-inputs `(("docbook-xsl" ,docbook-xsl) ("docbook-xml" ,docbook-xml-4.3) + ("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gtk-doc" ,gtk-doc) - ("intltool" ,intltool) ("itstool" ,itstool) ("libxml2" ,libxml2) ("libxslt" ,libxslt) @@ -10875,7 +10877,7 @@ advanced image management tool") (define-public libhandy (package (name "libhandy") - (version "1.0.0") + (version "1.0.2") (source (origin (method git-fetch) @@ -10884,7 +10886,7 @@ advanced image management tool") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "193y09yy0302x8fkyrnq591m805xp68bkd93fl5qggxi52k8pj0v")))) + (base32 "1bmmkahshvlvpsnb7zp8bddv7i1h5k4p967n6kxh71g1vnj8x20m")))) (build-system meson-build-system) (arguments `(#:configure-flags @@ -10913,7 +10915,7 @@ advanced image management tool") ;; Test suite dependencies. ("xorg-server" ,xorg-server-for-tests) ("hicolor-icon-theme" ,hicolor-icon-theme))) - (home-page "https://source.puri.sm/Librem5/libhandy") + (home-page "https://gitlab.gnome.org/GNOME/libhandy/") (synopsis "Library full of GTK+ widgets for mobile phones") (description "The aim of the handy library is to help with developing user interfaces for mobile devices using GTK+. It provides responsive GTK+ widgets @@ -11465,6 +11467,62 @@ symbol tables, document templates, project management, spell-checking, menus and toolbars.") (license license:gpl3+))) +(define-public setzer + (package + (name "setzer") + (version "0.3.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cvfosammmm/Setzer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "118gip6bv4mcsq4nrai7kl0vmqqbyzpsd4ky9vhxb1x2cvg048s8")))) + (build-system meson-build-system) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap + (lambda* (#:key outputs #:allow-other-keys) + (let ((prog (string-append (assoc-ref outputs "out") + "/bin/setzer")) + (pylib (string-append (assoc-ref outputs "out") + "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages"))) + (wrap-program prog + `("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib)) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))) + #t)))))) + (native-inputs + `(("desktop-file-utils" ,desktop-file-utils) + ("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("gtk+:bin" ,gtk+ "bin"))) + (inputs + `(("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gspell" ,gspell) + ("gtk+" ,gtk+) + ("gtksourceview" ,gtksourceview) + ("pango" ,pango) + ("poppler" ,poppler) + ("python-pycairo" ,python-pycairo) + ("python-pygobject" ,python-pygobject) + ("python-pyxdg" ,python-pyxdg) + ("webkitgtk" ,webkitgtk) + ("xdg-utils" ,xdg-utils))) + (home-page "https://www.cvfosammmm.org/setzer/") + (synopsis "LaTeX editor written in Python with GTK+") + (description + "Setzer is a simple yet full-featured LaTeX editor written in Python with +GTK+. It integrates well with the GNOME desktop environment.") + (license license:gpl3+))) + (define-public libratbag (package (name "libratbag") @@ -11604,7 +11662,7 @@ provided there is a DBus service present: (origin (method git-fetch) (uri (git-reference - (url "https://github.com/gkarsay/parlatype.git") + (url "https://github.com/gkarsay/parlatype") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -11843,7 +11901,7 @@ integrated profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "0.21.1") + (version "0.23.0") (source (origin (method git-fetch) @@ -11853,7 +11911,7 @@ integrated profiler via Sysprof, debugging support, and more.") (file-name (git-file-name name version)) (sha256 (base32 - "17ss5k2hnymk6xyx1dy3q0y2pwcld78cw7d0cs9c0hnhskh5dirh")))) + "1xh3qmf2pk80qxj528lajjcwg7mps72s1zz8cj388av58p8l3hyw")))) (build-system meson-build-system) (arguments `(#:glib-or-gtk? #t @@ -11910,17 +11968,17 @@ developed with the aim of being used with the Librem 5 phone.") (define-public libgda (package (name "libgda") - (version "5.2.9") + (version "5.2.10") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.gnome.org/GNOME/libgda.git/") - (commit "LIBGDA_5_2_9"))) + (commit (string-append "LIBGDA_" (string-replace-substring + version "." "_"))))) (file-name (git-file-name name version)) (sha256 - (base32 - "122anbk15vj2dfxrw7s48b6zwlpp7cyppshxizynvf3zmc0ygw3j")))) + (base32 "18rg773gq9v3cdywpmrp12c5xyp97ir9yqjinccpi22sksb1kl8a")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-vala") @@ -11965,6 +12023,7 @@ developed with the aim of being used with the Librem 5 phone.") ("vala" ,vala))) (native-inputs `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) ("automake" ,automake) ("glib:bin" ,glib "bin") ("gnome-common" ,gnome-common) diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm index 321a7f87d7..d6f0cd6f86 100644 --- a/gnu/packages/gnu-pw-mgr.scm +++ b/gnu/packages/gnu-pw-mgr.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,15 +31,14 @@ (define-public gnu-pw-mgr (package (name "gnu-pw-mgr") - (version "2.7") + (version "2.7.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gnu-pw-mgr/gnu-pw-mgr-" version ".tar.xz")) (sha256 - (base32 - "1ra8in91qx6n8jydb8kwl2rnqaa2hix5pyawn6nvyqs815h9gx17")))) + (base32 "0fhwvsmsqpw0vnivarfg63l8pgwqfv7d5wi6l80jpb41dj6qpjz8")))) (build-system gnu-build-system) (arguments '(#:phases @@ -50,7 +50,7 @@ #t)) (add-before 'check 'pre-check (lambda _ - ;; In build environment, There is no /dev/tty + ;; In the build environment, there is no /dev/tty. (substitute* "tests/base.test" (("/dev/tty") "/dev/null")) #t))))) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 8f58ce332a..dcee4dc166 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages gnucash) #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -48,6 +50,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) @@ -82,6 +85,7 @@ ("libxslt" ,libxslt) ("webkitgtk" ,webkitgtk) ("aqbanking" ,aqbanking) + ("python" ,python) ("perl-date-manip" ,perl-date-manip) ("perl-finance-quote" ,perl-finance-quote) ("tzdata" ,tzdata-for-tests))) @@ -95,9 +99,10 @@ (propagated-inputs ;; dconf is required at runtime according to README.dependencies. `(("dconf" ,dconf))) - (outputs '("out" "doc" "debug")) + (outputs '("out" "doc" "debug" "python")) (arguments `(#:test-target "check" + #:configure-flags '("-DWITH_PYTHON=ON") #:make-flags '("GUILE_AUTO_COMPILE=0") #:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) @@ -149,6 +154,20 @@ (symlink (string-append docs "/share/gnome") (string-append doc-output "/share/gnome")) #t))) + (add-after 'install 'split-python-bindings + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (python-output (assoc-ref outputs "python")) + (python-bindings (string-append + "lib/python" + ,(version-major+minor + (package-version python))))) + (mkdir-p (string-append python-output "/" python-bindings)) + (copy-recursively + (string-append out "/" python-bindings) + (string-append python-output "/" python-bindings)) + (delete-file-recursively + (string-append out "/" python-bindings))))) (add-after 'install-docs 'wrap-programs (lambda* (#:key inputs outputs #:allow-other-keys) (for-each (lambda (prog) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index c0f827b7e3..8c3887b51f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -106,6 +106,7 @@ (match (string-take target (string-index target #\-)) ("armhf" "arm-unknown-linux-gnueabi") + ("mips64el" "mips-unknown-linux-gnu") (x (string-append x "-unknown-linux-gnu"))))) (symlink @@ -400,13 +401,13 @@ libskba (working with X.509 certificates and CMS data).") (define-public gpgme (package (name "gpgme") - (version "1.14.0") + (version "1.15.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gpgme/gpgme-" version ".tar.bz2")) (sha256 - (base32 "01s3rlspykbm9vmi5rfbdm3d20ip6yni69r48idqzlmhlq8ggwff")))) + (base32 "0nqfipv5s4npfidsm1rs3kpq0r0av9bfqfd5r035jibx5k0jniqb")))) (build-system gnu-build-system) (native-inputs `(("gnupg" ,gnupg))) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index db67d7ad0a..dc143f869d 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -550,8 +550,8 @@ from forcing GEXP-PROMISE." #:system system #:guile-for-build guile))) -(define %icecat-version "78.4.0-guix0-preview1") -(define %icecat-build-id "20201019000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-version "78.5.0-guix0-preview1") +(define %icecat-build-id "20201117000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -573,11 +573,11 @@ from forcing GEXP-PROMISE." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "1z3hj45bnd12z3g6ajv9qrgclca7fymi1sxj9l9nh9q6y6xz0g4f")))) + "1442yjmwz69hkfcvh8kkb60jf4c9ms0pac04nc3xw2da13v4zxai")))) - (upstream-icecat-base-version "78.4.0") ; maybe older than base-version + (upstream-icecat-base-version "78.5.0") ; maybe older than base-version ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version)) - (gnuzilla-commit "05adddbf87a5ee11de7cd90794c331a178bcfd5c") + (gnuzilla-commit "bcfe407570cae32d00dd33a268de0e0593166f7b") (gnuzilla-source (origin (method git-fetch) @@ -589,7 +589,7 @@ from forcing GEXP-PROMISE." (string-take gnuzilla-commit 8))) (sha256 (base32 - "128h0gnn1adinjkfmskxdjkvyh60li8czlar2xdjn2b6myiq5yny")))) + "1pg8fjjg91qyrv7za585ds1xrdvmybbkf2jmkff107fh5y23lxrg")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -1161,11 +1161,11 @@ standards of the IceCat project.") (cpe-version . ,(first (string-split version #\-))))))) ;; Update this together with icecat! -(define %icedove-build-id "20201021000000") ;must be of the form YYYYMMDDhhmmss +(define %icedove-build-id "20201117000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "78.4.0") + (version "78.5.0") (source icecat-source) (properties `((cpe-name . "thunderbird_esr"))) @@ -1445,7 +1445,7 @@ standards of the IceCat project.") ;; in the Thunderbird release tarball. We don't use the release ;; tarball because it duplicates the Icecat sources and only adds the ;; "comm" directory, which is provided by this repository. - ,(let ((changeset "d5c3faff83924f56859ea4584eb0610c68a0cafa")) + ,(let ((changeset "92abc26b9c80383e974fb0234f22e06fea793be2")) (origin (method hg-fetch) (uri (hg-reference @@ -1454,7 +1454,7 @@ standards of the IceCat project.") (file-name (string-append "thunderbird-" version "-checkout")) (sha256 (base32 - "146vp5048j5drzyvmsj9v34ifqcywr1gikwh4f1z4l9zad7b09rs"))))) + "0468k3qrqs9w1vva2fdxvwqdsypqpsdy5iixgx58dqivchg4qlf9"))))) ("autoconf" ,autoconf-2.13) ("cargo" ,rust-1.41 "cargo") ("clang" ,clang) @@ -1476,6 +1476,27 @@ standards of the IceCat project.") Thunderbird. It supports email, news feeds, chat, calendar and contacts.") (license license:mpl2.0))) +(define-public icedove/wayland + (package/inherit icedove + (name "icedove-wayland") + (arguments + (substitute-keyword-arguments (package-arguments icedove) + ((#:phases phases) + `(modify-phases ,phases + (replace 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (gtk (assoc-ref inputs "gtk+")) + (gtk-share (string-append gtk "/share")) + (pulseaudio (assoc-ref inputs "pulseaudio")) + (pulseaudio-lib (string-append pulseaudio "/lib"))) + (wrap-program (car (find-files lib "^icedove$")) + `("MOZ_ENABLE_WAYLAND" = ("1")) + `("XDG_DATA_DIRS" prefix (,gtk-share)) + `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib))) + #t))))))))) + (define-public firefox-decrypt (package (name "firefox-decrypt") diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6ba735c4a2..9746f7a0a4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -1139,7 +1139,7 @@ optimized for performance yet simple to use.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/tv42/httpunix.git") + (url "https://github.com/tv42/httpunix") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1708,7 +1708,7 @@ finding resources located relative to the executable file.") (method git-fetch) (uri (git-reference (url - "https://github.com/ayufan/golang-kardianos-service.git") + "https://github.com/ayufan/golang-kardianos-service") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -5933,3 +5933,105 @@ tests.") (description "This package provides SCSS compiler support for Go applications.") (license license:expat))) + +(define-public go-github-com-hashicorp-go-syslog + (package + (name "go-github-com-hashicorp-go-syslog") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-syslog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09vccqggz212cg0jir6vv708d6mx0f9w5bxrcdah3h6chgmal6v1")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hashicorp/go-syslog")) + (home-page "https://github.com/hashicorp/go-syslog") + (synopsis "Golang syslog wrapper, cross-compile friendly") + (description "This package is a very simple wrapper around log/syslog") + (license license:expat))) + +(define-public go-github-com-hjson-hjson-go + (package + (name "go-github-com-hjson-hjson-go") + (version "3.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hjson/hjson-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dfdiahimg6z9idg8jiqxwnlwjnmasbjccx8gnag49cz4yfqskaz")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hjson/hjson-go")) + (home-page "https://hjson.org/") + (synopsis "Human JSON implementation for Go") + (description "Hjson is a syntax extension to JSON. It is intended to be +used like a user interface for humans, to read and edit before passing the +JSON data to the machine.") + (license license:expat))) + +(define-public go-golang-zx2c4-com-wireguard + (package + (name "go-golang-zx2c4-com-wireguard") + (version "0.0.20200320") + (source + (origin + (method git-fetch) + ;; NOTE: module URL is a redirect + ;; target: git.zx2c4.com/wireguard-go + ;; source: golang.zx2c4.com/wireguard + (uri (git-reference + (url "https://git.zx2c4.com/wireguard-go/") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fy4qsss3i3pkq1rpgjds4aipbwlh1dr9hbbf7jn2a1c63kfks0r")))) + (build-system go-build-system) + (arguments + '(#:import-path "golang.zx2c4.com/wireguard")) + (propagated-inputs + `(("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://git.zx2c4.com/wireguard") + (synopsis "Implementation of WireGuard in Go") + (description "This package is a Go Implementation of WireGuard.") + (license license:expat))) + +(define-public go-github-com-kardianos-minwinsvc + (package + (name "go-github-com-kardianos-minwinsvc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kardianos/minwinsvc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z941cxymkjcsj3p5l3g4wm2da3smz7iyqk2wbs5y8lmxd4kfzd8")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/kardianos/minwinsvc")) + (home-page "https://github.com/kardianos/minwinsvc/") + ;; some packages (Yggdrasil) need it to compile + ;; it's a tiny package and it's easier to bundle it than to patch it out + (synopsis "Minimal windows only service stub for Go") + (description "Go programs designed to run from most *nix style operating +systems can import this package to enable running programs as services without +modifying them.") + (license license:zlib))) diff --git a/gnu/packages/gpodder.scm b/gnu/packages/gpodder.scm index 26ea15ba56..44c356e2ff 100644 --- a/gnu/packages/gpodder.scm +++ b/gnu/packages/gpodder.scm @@ -38,7 +38,7 @@ (define-public gpodder (package (name "gpodder") - (version "3.10.16") + (version "3.10.17") (source (origin (method git-fetch) @@ -46,8 +46,7 @@ (url "https://github.com/gpodder/gpodder") (commit version))) (sha256 - (base32 - "0pbpaasd7kj6y25nm45y1qyb9sxd4570f7g6zkfcpf6pa3nx7qkq")) + (base32 "0wrk8d4q6ricbcjzlhk10vrk1qg9hi323kgyyd0c8nmh7a82h8pd")) (file-name (git-file-name name version)) (patches (search-patches "gpodder-disable-updater.patch")))) (build-system python-build-system) @@ -177,21 +176,20 @@ downloading episode status changes.") (define-public python-podcastparser (package (name "python-podcastparser") - (version "0.6.5") + (version "0.6.6") (source (origin (method url-fetch) (uri (pypi-uri "podcastparser" version)) (sha256 - (base32 "0k62ppg20i41gcc5x8ddjn7zbpy47hqpxzrq9257g2c71m4qw07b")))) + (base32 "0m24r2qhck0win44xfhxajbppkss4ha6am0042s0xyq3408883m3")))) (native-inputs - `(("python-coverage" ,python-coverage) - ("python-nose" ,python-nose))) + `(("python-pytest" ,python-pytest))) (arguments '(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (invoke "nosetests")))))) + (lambda _ (invoke "pytest")))))) (build-system python-build-system) (home-page "http://gpodder.org/podcastparser") (synopsis "Simplified and fast RSS parser Python library") diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index 60305e62ce..680ddb8ca8 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -184,7 +184,7 @@ coordinates as well as partial support for adjustments in global coordinate syst (define-public gpxsee (package (name "gpxsee") - (version "7.35") + (version "7.36") (source (origin (method git-fetch) (uri (git-reference @@ -193,7 +193,7 @@ coordinates as well as partial support for adjustments in global coordinate syst (file-name (git-file-name name version)) (sha256 (base32 - "1schmymcsd8s0r26qwyx56z107ql8pgrk1pnqy19mc7fyirdwmp5")))) + "18vsw6hw6kn5wmr4iarhx1v8q455j60fhf0hq69jkfyarl56b99j")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index d0bf577139..7a61084f24 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -90,6 +90,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) + #:use-module (gnu packages stb) #:use-module (gnu packages swig) #:use-module (gnu packages tbb) #:use-module (gnu packages upnp) @@ -120,7 +121,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/NVIDIA/eglexternalplatform.git") + (url "https://github.com/NVIDIA/eglexternalplatform") (commit version))) (file-name (git-file-name name version)) @@ -171,7 +172,7 @@ application-facing EGL functions.") (method git-fetch) (uri (git-reference - (url "https://github.com/NVIDIA/egl-wayland.git") + (url "https://github.com/NVIDIA/egl-wayland") (commit version))) (file-name (git-file-name name version)) @@ -201,7 +202,7 @@ EGLStream families of extensions.") (method git-fetch) (uri (git-reference - (url "https://github.com/hodefoting/mmm.git") + (url "https://github.com/hodefoting/mmm") (commit version))) (file-name (git-file-name name version)) @@ -230,7 +231,7 @@ framebuffer graphics, audio output and input event.") (method git-fetch) (uri (git-reference - (url "https://github.com/deniskropp/DirectFB.git") + (url "https://github.com/deniskropp/DirectFB") (commit "DIRECTFB_1_7_7"))) (file-name (git-file-name name version)) (sha256 @@ -300,7 +301,7 @@ minimum of resource usage and overhead.") (method git-fetch) (uri (git-reference - (url "https://github.com/deniskropp/flux.git") + (url "https://github.com/deniskropp/flux") (commit "e45758a"))) (file-name (git-file-name name version)) (sha256 @@ -430,14 +431,14 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.") (define-public blender (package (name "blender") - (version "2.83.5") + (version "2.83.9") (source (origin (method url-fetch) (uri (string-append "https://download.blender.org/source/" "blender-" version ".tar.xz")) (sha256 (base32 - "0xyawly00a59hfdb6b7va84k5fhcv2mxnzd77vs22bzi9y7sap43")))) + "106w9vi6z0gi2nbr73g8pm40w3wn7dkjcibzvvzbc786yrnzvkhb")))) (build-system cmake-build-system) (arguments (let ((python-version (version-major+minor (package-version python)))) @@ -855,26 +856,102 @@ other vector formats such as: @end itemize") (license license:gpl2+))) +(define-public dear-imgui + (package + (name "dear-imgui") + (version "1.79") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ocornut/imgui") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0x26igynxp6rlpp2wfc5dr7x6yh583ajb7p23pgycn9vqikn318q")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "CC=" ,(cc-for-target)) + (string-append "PREFIX=" (assoc-ref %outputs "out")) + (string-append "VERSION=" ,version)) + #:tests? #f ; no test suite + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-debian-files + (lambda* (#:key inputs #:allow-other-keys) + (invoke "tar" "xvf" (assoc-ref inputs "debian-files")) + (apply invoke "patch" "-Np1" "-i" + (find-files "debian/patches" "\\.patch$")) + (substitute* "Makefile" + (("<stb/") "<") ; Guix doesn't use this subdirectory + ;; Don't build or install the static library. + (("^all: .*") "all: $(SHLIB) $(PCFILE)")) + (substitute* (list "imgui.pc.in" + "Makefile") + ;; Don't link against a non-existent library. + (("-lstb") "")) + #t)) + (delete 'configure) ; no configure script + (replace 'install + ;; The default ‘install’ target installs the static library. Don't. + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install-shared" "install-header" + make-flags)))))) + (native-inputs + `(("debian-files" + ;; Upstream doesn't provide a build system. Use Debian's. + ,(origin + (method url-fetch) + (uri (string-append "mirror://debian/pool/main/i/imgui/imgui_" + version "+ds-1.debian.tar.xz")) + (sha256 + (base32 "1xhk34pzpha6k5l2j150capq66y8czhmsi04ib09wvb34ahqxpby")))) + ("pkg-config" ,pkg-config))) + (inputs + `(("freetype" ,freetype) + ("stb-rect-pack" ,stb-rect-pack) + ("stb-truetype" ,stb-truetype))) + (home-page "https://github.com/ocornut/imgui") + (synopsis "Immediate-mode C++ GUI library with minimal dependencies") + (description + "Dear ImGui is a @acronym{GUI, graphical user interface} library for C++. +It creates optimized vertex buffers that you can render anytime in your +3D-pipeline-enabled application. It's portable, renderer-agnostic, and +self-contained, without external dependencies. + +Dear ImGui is aimed at content creation, visualization, and debugging tools as +opposed to average end-user interfaces. Hence it favors simplicity and +productivity but lacks certain features often found in higher-level libraries. +It is particularly suited to integration in game engine tooling, real-time 3D +applications, full-screen applications, and embedded platforms without standard +operating system features.") + (license license:expat))) ; some examples/ use the zlib licence + (define-public ogre (package (name "ogre") - (version "1.12.6") + (version "1.12.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/OGRECave/ogre") - (commit (string-append "v" version)) - (recursive? #t))) ;for Dear ImGui submodule + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ap3krrl55hswv1n2r3ijf3xrb3kf9dnqvwyrc0fgnc7j7vd45sk")))) + (base32 "0b0pwh31nykrfhka6jqwclfx1pxzhj11vkl91951d63kwr5bbzms")))) (build-system cmake-build-system) (arguments '(#:phases (modify-phases %standard-phases + (add-before 'configure 'unpack-dear-imgui + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "dear-imgui-source") + "../dear-imgui-source") + #t)) (add-before 'configure 'pre-configure - ;; CMakeLists.txt forces CMAKE_INSTALL_RPATH value. As + ;; CMakeLists.txt forces a CMAKE_INSTALL_RPATH value. As ;; a consequence, we cannot suggest ours in configure flags. Fix ;; it. (lambda* (#:key inputs outputs #:allow-other-keys) @@ -888,6 +965,7 @@ other vector formats such as: (string-append out "/lib/OGRE")) ";"))) (list (string-append "-DCMAKE_INSTALL_RPATH=" runpath) + "-DIMGUI_DIR=../dear-imgui-source" "-DOGRE_BUILD_DEPENDENCIES=OFF" "-DOGRE_BUILD_TESTS=TRUE" "-DOGRE_INSTALL_DOCS=TRUE" @@ -895,6 +973,7 @@ other vector formats such as: "-DOGRE_INSTALL_SAMPLES_SOURCE=TRUE")))) (native-inputs `(("boost" ,boost) + ("dear-imgui-source" ,(package-source dear-imgui)) ("doxygen" ,doxygen) ("googletest" ,googletest-1.8) ("pkg-config" ,pkg-config))) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 0f2afb99de..b5c4774d5c 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2020 Pjotr Prins <pjotr.guix@thebird.nl> ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages bison) #:use-module (gnu packages check) @@ -323,21 +325,34 @@ can be used either as a standalone application, or as a Python library.") (define-public python-pydot (package (name "python-pydot") - (version "1.2.4") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "pydot" version)) (sha256 (base32 - "1dhy4jpp646jslh2yks6klwwbaxcs905byyny880gl1iap8y5llj")))) + "00az4cbf8bv447lkk9xi6pjm7gcc7ia33y4pm71fwfwis56rv76l")) + (patches (search-patches "python-pydot-regression-test.patch")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + ;; Taken from .travis.yaml + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (with-directory-excursion "test" + (invoke "python" "pydot_unittest.py"))) + #t))))) (native-inputs ;; For tests. - `(("python-chardet" ,python-chardet))) + `(("graphviz" ,graphviz) + ("python-chardet" ,python-chardet))) (propagated-inputs `(("python-pyparsing" ,python-pyparsing))) - (home-page "https://github.com/erocarrera/pydot") + (home-page "https://github.com/pydot/pydot") (synopsis "Python interface to Graphviz's DOT language") (description "Pydot provides an interface to create, handle, modify and process diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index 01474e29a7..a317170379 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -95,7 +95,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/occipital/OpenNI2.git") + (url "https://github.com/occipital/OpenNI2") (commit (string-append "v" version "-debian")))) (file-name (git-file-name name version)) (sha256 @@ -167,7 +167,7 @@ module for the DMA capture of the video flow.") (method git-fetch) (uri (git-reference - (url "https://github.com/CCExtractor/ccextractor.git") + (url "https://github.com/CCExtractor/ccextractor") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -220,7 +220,7 @@ and very fast.") (method git-fetch) (uri (git-reference - (url "https://github.com/Libvisual/libvisual.git") + (url "https://github.com/Libvisual/libvisual") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -268,7 +268,7 @@ applications that want audio visualisation and audio visualisation plugins.") (method git-fetch) (uri (git-reference - (url "https://github.com/Libvisual/libvisual.git") + (url "https://github.com/Libvisual/libvisual") (commit (string-append name "-" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 02281d60d1..5ec5eefadd 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -966,8 +966,8 @@ convenient nested tree operations.") (license license:gpl3+))) (define-public guile-simple-zmq - (let ((commit "68bedb6679716214fb9d3472da57544526f7a618") - (revision "3")) + (let ((commit "5fc3b7190d31c258ce969c2a5d2ad38c66a09d09") + (revision "4")) (package (name "guile-simple-zmq") (version (git-version "0.0.0" revision commit)) @@ -979,7 +979,7 @@ convenient nested tree operations.") (commit commit))) (sha256 (base32 - "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli")) + "0inhvl5jssvbw3nd129wdahfwyvy1iciq403wzf0algbvl1fqs7z")) (file-name (git-file-name name version)))) (build-system guile-build-system) (arguments @@ -1803,8 +1803,8 @@ capabilities.") (license license:gpl3+))) (define-public g-golf - (let ((commit "84e894eb7945c3bcdf7f8d5135c1be3efa524c92") - (revision "822")) + (let ((commit "ef830107b9765bd6a2da848d0cbe45e11374c0b5") + (revision "839")) (package (name "g-golf") (version (git-version "0.1.0" revision commit)) @@ -1816,7 +1816,7 @@ capabilities.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1pkcij65zy2lkip5yrfzj85nq17pp9mrf0d4sk6hpjqr4kd0bxd5")))) + (base32 "0r472hvmf447kqvkahp1wy4irb5gy8y793hm8r9rc511smdx66cw")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -2973,7 +2973,7 @@ more expressive and flexible than the traditional @code{format} procedure.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/scheme-requests-for-implementation/srfi-180.git") + (url "https://github.com/scheme-requests-for-implementation/srfi-180") (commit commit))) (sha256 (base32 @@ -3084,7 +3084,7 @@ in C using Gtk+-3 and WebKitGtk.") (license license:gpl3+))) (define-public emacsy-minimal - (let ((commit "v0.4.1-31-g415d96f")) + (let ((commit "v0.4.1-37-g5f91ee6")) (package (inherit emacsy) (name "emacsy-minimal") @@ -3097,7 +3097,7 @@ in C using Gtk+-3 and WebKitGtk.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1cs1i1hxwrv0a512j54yrvfh743nci1chx6qjgp4jyzq98ncvxgg")))) + (base32 "03ym14g9qhjqmryr5z065kynqm8yhmvnbs2djl6vp3i9cmqln8cl")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-2.2) @@ -3150,7 +3150,7 @@ perform geometrical transforms on JPEG images.") (define-public nomad (package (name "nomad") - (version "0.2.0-alpha-100-g6a565d3") + (version "0.2.0-alpha-199-g3e7a475") (source (origin (method git-fetch) (uri (git-reference @@ -3159,7 +3159,7 @@ perform geometrical transforms on JPEG images.") (file-name (git-file-name name version)) (sha256 (base32 - "0anmprm63a88kii251rl296v1g4iq62r6n4nssx5jbc0hzkknanz")))) + "0p0ha6prp7pyadp61clbhc6b55023vxzfwy14j2qygb2mkq7fhic")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -3190,6 +3190,7 @@ perform geometrical transforms on JPEG images.") ("gtk+:bin" ,gtk+ "bin") ("webkitgtk" ,webkitgtk) ("gtksourceview" ,gtksourceview) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("vte" ,vte) ;; Gstreamer ("gstreamer" ,gstreamer) @@ -3733,7 +3734,7 @@ models and also supports a rich set of boolean query operators.") (source (origin (method git-fetch) (uri (git-reference (url - "https://github.com/o-nly/torrent.git") + "https://github.com/o-nly/torrent") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm index da1bd2128c..1339536954 100644 --- a/gnu/packages/haskell-apps.scm +++ b/gnu/packages/haskell-apps.scm @@ -339,14 +339,14 @@ to @code{cabal repl}).") (define-public git-annex (package (name "git-annex") - (version "8.20201007") + (version "8.20201103") (source (origin (method url-fetch) (uri (string-append "https://hackage.haskell.org/package/" "git-annex/git-annex-" version ".tar.gz")) (sha256 - (base32 "0v11yc4kkxnzvwqry277dpjwlavinrjiagfw0ayhrfwd703j1y8a")))) + (base32 "1z9ikpsz3by48yfw87qav5dy7j4k9ky4a7nqnasl15kdm3lav9pl")))) (build-system haskell-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm index a4269599f6..9a149187b6 100644 --- a/gnu/packages/haskell-web.scm +++ b/gnu/packages/haskell-web.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Kyle Meyer <kyle@kyleam.com> +;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -417,6 +418,48 @@ contents of the HTTP connection. It also provides higher-level functions which allow you to avoid direct usage of conduits.") (license license:bsd-3))) +(define-public ghc-http-reverse-proxy + (package + (name "ghc-http-reverse-proxy") + (version "0.6.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/http-reverse-proxy/" + "http-reverse-proxy-" version ".tar.gz")) + (sha256 + (base32 + "1a6i5njf85b2lhg8m83njagcf09wih5q2irnyb2890s724qr277v")))) + (build-system haskell-build-system) + (inputs + `(("ghc-case-insensitive" ,ghc-case-insensitive) + ("ghc-http-types" ,ghc-http-types) + ("ghc-word8" ,ghc-word8) + ("ghc-blaze-builder" ,ghc-blaze-builder) + ("ghc-http-client" ,ghc-http-client) + ("ghc-wai" ,ghc-wai) + ("ghc-network" ,ghc-network) + ("ghc-conduit" ,ghc-conduit) + ("ghc-conduit-extra" ,ghc-conduit-extra) + ("ghc-wai-logger" ,ghc-wai-logger) + ("ghc-resourcet" ,ghc-resourcet) + ("ghc-unliftio" ,ghc-unliftio) + ("ghc-streaming-commons" ,ghc-streaming-commons))) + (native-inputs + `(("ghc-hspec" ,ghc-hspec) + ("ghc-warp" ,ghc-warp) + ("ghc-http-conduit" ,ghc-http-conduit))) + (home-page + "https://github.com/fpco/http-reverse-proxy") + (synopsis + "Reverse proxy HTTP requests, either over raw sockets or with WAI") + (description + "Provides a simple means of reverse-proxying HTTP requests. The raw +approach uses the same technique as leveraged by keter, whereas the WAI +approach performs full request/response parsing via WAI and http-conduit.") + (license license:bsd-3))) + (define-public ghc-wai (package (name "ghc-wai") diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm index b28433431c..5f49265ebb 100644 --- a/gnu/packages/heads.scm +++ b/gnu/packages/heads.scm @@ -19,6 +19,7 @@ (define-module (gnu packages heads) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -161,3 +162,36 @@ done (synopsis "Musl-cross gcc 5 toolchain") (description "Musl-cross toolchain: binutils, gcc 5 and musl.") (license license:isc)))) + +;; This package provides a "dev.cpio" file usable as a base for booting Heads. +(define-public heads-dev-cpio + (package + (name "heads-dev-cpio") + (version "0.1") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (guix cpio)) + #:builder (begin + (use-modules (guix build utils) + (guix cpio) + (srfi srfi-26)) + (mkdir-p "dev") ; input directory. + (let* ((out (assoc-ref %outputs "out")) + (libexec (string-append out "/libexec"))) + (mkdir-p libexec) + (call-with-output-file (string-append libexec "/dev.cpio") + (lambda (port) + (write-cpio-archive '("dev" "dev/console") port + #:file->header + (lambda (name) + (if (string=? "dev/console" name) + (special-file->cpio-header* name 'char-special 5 1 #o600) + (file->cpio-header* name)))))) + #t)))) + (synopsis "@file{dev.cpio} for Heads") + (description "This package provides a @file{dev.cpio} file usable as a +base for heads' initrd.") + (home-page "http://osresearch.net/") + (license license:bsd-2))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 36d7dd606f..5f42924810 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -790,7 +790,7 @@ images of initially unknown height.") (method git-fetch) (uri (git-reference - (url "https://github.com/uclouvain/openjpeg-data.git") + (url "https://github.com/uclouvain/openjpeg-data") (commit "c5c4a8c"))) (file-name (git-file-name name version)) (sha256 @@ -2124,16 +2124,16 @@ by AOM, including with alpha.") (name "mtpaint") ;; The author neither releases tarballs nor uses git version tags. ;; Instead, author puts version in git commit title. - (version "3.49.27") + (version "3.49.33") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/wjaguar/mtPaint") - (commit "26751cd0336414e2f16cbe25c9fe2702f34e7b5c"))) + (commit "5272e2b1e773c8e02ac3506b2d3bde82ad946b21"))) (file-name (git-file-name name version)) (sha256 - (base32 "12mzai9pqvyb342m21rjz0jxiy75q24sjw6ax147pzy8frzkgd54")))) + (base32 "1bmq4m0dxczl18n1yiqb75g05a4c3pal1vdcyypkilx7ijsr0cmc")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 0d9908c771..61144618c0 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages openldap) #:use-module (gnu packages kde) #:use-module (gnu packages kde-frameworks) + #:use-module (gnu packages password-utils) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -499,7 +500,7 @@ interface for those who are accustomed to the ircII way of doing things.") (define-public inspircd (package (name "inspircd") - (version "3.7.0") + (version "3.8.1") (source (origin (method git-fetch) @@ -508,13 +509,13 @@ interface for those who are accustomed to the ircII way of doing things.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1npzp23c3ac7m1grkm39i1asj04rs4i0jwf5w0c0j0hmnwslnz7a")))) + (base32 "1i30649dw84iscxa5as81g96f393mn1i883aq4za5ypdinr5x65g")))) (build-system gnu-build-system) (arguments `(#:configure-flags (map (lambda (module) (string-append "--enable-extras=" module)) - '("m_geo_maxmind.cpp" + '("m_argon2.cpp" + "m_geo_maxmind.cpp" "m_ldap.cpp" "m_mysql.cpp" "m_pgsql.cpp" @@ -550,16 +551,17 @@ interface for those who are accustomed to the ircII way of doing things.") (string-append "--config-dir=" out-etc name))) #t))))) (native-inputs - `(("gnutls" ,gnutls) - ("libgcrypt" ,libgcrypt) + `(("pkg-config" ,pkg-config))) + (inputs + `(("argon2" ,argon2) + ("gnutls" ,gnutls) ("libmaxminddb" ,libmaxminddb) - ("mysql" ,mysql) ("mbedtls-apache" ,mbedtls-apache) + ("mysql" ,mysql) ("openldap" ,openldap) ("openssl" ,openssl) ("pcre" ,pcre "bin") ("perl" ,perl) - ("pkg-config" ,pkg-config) ("postgresql" ,postgresql) ("re2" ,re2) ("sqlite" ,sqlite) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 70141a5f05..3eecbc7e7c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2706,7 +2706,7 @@ debugging, etc.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/javacc/javacc.git") + (url "https://github.com/javacc/javacc") (commit "release_32"))) (file-name (string-append "javacc-" version "-checkout")) (sha256 diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index 0e61cf10ff..ac9fbfea60 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; @@ -32,7 +32,8 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) - #:use-module (guix build-system minify)) + #:use-module (guix build-system minify) + #:use-module (guix utils)) (define-public font-mathjax (package @@ -415,24 +416,28 @@ external server.") (define-public mujs (package (name "mujs") - (version "1.0.7") - (source (origin - (method url-fetch) - (uri (string-append "https://mujs.com/downloads/mujs-" - version ".tar.xz")) - (sha256 - (base32 - "1ilhay15z4k7mlzs6g2d00snivin7vp72dfw5wwpmc0x70jr31l2")))) + (version "1.0.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ccxvii/mujs") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "146lmmigqlvx36d3fzb9kk7sy6y4ddv0ih4pkjz4zyj30zl84gy2")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases - (delete 'configure) ; no configure - (add-after 'install 'install-shared-library + (delete 'configure) ; no configure script + (replace 'install (lambda* (#:key (make-flags '()) #:allow-other-keys) (apply invoke "make" "install-shared" make-flags)))) - #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")) - (string-append "CC=gcc")) + #:make-flags + (list ,(string-append "VERSION=" version) + ,(string-append "CC=" (cc-for-target)) + (string-append "prefix=" (assoc-ref %outputs "out"))) #:tests? #f)) ; no tests (inputs `(("readline" ,readline))) @@ -451,14 +456,14 @@ roots, or wrestle with obscure build systems.") (define-public quickjs (package (name "quickjs") - (version "2020-09-06") + (version "2020-11-08") (source (origin (method url-fetch) (uri (string-append "https://bellard.org/quickjs/quickjs-" version ".tar.xz")) (sha256 (base32 - "05vpnnzmws7plnwsnk2brwf7whyj84l5xl0iahi1xdn6rpla6880")))) + "0yqqcjxi3cqagw184mqrxpvqg486x7c233r3cp9mxachngd6779f")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index 65fa726d92..13c9f7baf1 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,8 +52,8 @@ #:use-module (ice-9 match)) (define libuv-julia - (let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1") - (revision "1")) + (let ((commit "1fcc6d66f9df74189c74d3d390f02202bb7db953") + (revision "2")) ;; When upgrading Julia, also upgrade this. Get the commit from ;; https://github.com/JuliaLang/julia/blob/v1.5.2/deps/libuv.version (package @@ -67,7 +68,7 @@ (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0dn3v6fdp1z382pqg3nhjzk60l61ky9b65mfgaj29fv2da95rwjs")))) + "040l7f1hk7xyza11sry5cj4fhw05na949865axqqhxnifdvnmfji")))) (build-system gnu-build-system) (arguments (substitute-keyword-arguments (package-arguments libuv) @@ -104,7 +105,7 @@ "/deps/patches/" name ".patch")) (define (julia-patch name sha) - (let ((version "1.5.2")) + (let ((version "1.5.3")) (origin (method url-fetch) (uri (julia-patch-url version name)) (sha256 (base32 sha)) @@ -195,14 +196,15 @@ "1bpa0fcqpa3ai3hm8mz0p13bf76fsq53wsfcx5qw302zh22108xr")))) (arguments `(#:make-flags - (list "CC=gcc") + (list (string-append "CC=" ,(cc-for-target))) #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'check 'set-ld-library-path - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs #:allow-other-keys) (setenv "LD_LIBRARY_PATH" - (string-append (assoc-ref inputs "zlib") "/lib")))) + (string-append (assoc-ref (or native-inputs inputs) "zlib") + "/lib")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -221,7 +223,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.") (define-public julia (package (name "julia") - (version "1.5.2") + (version "1.5.3") (source (origin (method url-fetch) (uri (string-append @@ -229,7 +231,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.") version "/julia-" version ".tar.gz")) (sha256 (base32 - "08wazf3f1lb2c2c5s700kyak8llfqwki8xlnqyrbwmwxjj801p2n")) + "1zmim82x9kkdcgn0cdi01hmzi59zbszy1sqlygb86xq4hc1n66dy")) (patches (search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index 3e341c0752..d80e59cdeb 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -137,7 +137,7 @@ This package contains GUI widgets for baloo.") (list license:lgpl2.1+ license:fdl1.2+)))) (define-public kdenlive - (let ((version "20.08.2")) + (let ((version "20.08.3")) (package (name "kdenlive") (version version) @@ -149,7 +149,7 @@ This package contains GUI widgets for baloo.") (commit (string-append "v" version)))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "1zcckv4wj12pvxjg85c8l67vi3amz79yv8mf7m4fbxnam3yxhy90")))) + (base32 "0x0qfwf6wfnybjyjvmllpf87sm27d1n2akslhp2k8ins838qy55i")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 27c13fab8a..3f17465039 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -62,7 +62,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/liblouis/liblouis.git") + (url "https://github.com/liblouis/liblouis") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -115,7 +115,7 @@ Marburg.") (method git-fetch) (uri (git-reference - (url "https://github.com/liblouis/liblouisutdml.git") + (url "https://github.com/liblouis/liblouisutdml") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/lego.scm b/gnu/packages/lego.scm index 2067e45dd1..2294d693c5 100644 --- a/gnu/packages/lego.scm +++ b/gnu/packages/lego.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2019 Eric Bavier <bavier@posteo.net> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +35,8 @@ (name "nqc") (version "3.1.r6") (source (origin + ;; XXX Using url-fetch/tarbomb results in failure: + ;; Error: could not create compiler/rcx1_nqh.h (method url-fetch) (uri (string-append "http://bricxcc.sourceforge.net/nqc/release/" "nqc-" version ".tgz")) @@ -44,24 +46,48 @@ (build-system gnu-build-system) (native-inputs `(("bison" ,bison) - ("flex" ,flex))) + ("flex" ,flex) + ("add-usb-tcp-support.patch" + ,(origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/p/bricxcc/patches/" + "_discuss/thread/00b427dc/b84b/attachment/" + "nqc-01-Linux_usb_and_tcp.diff")) + (sha256 + (base32 "0z5gx55ra1kamhhqxz08lvvwslfl36pbmwdd566rhmbgmyhlykbr")))) + ("debian-writable-swap-inst-len.patch" + ,(origin + (method url-fetch) + (uri (string-append "https://sources.debian.org/data/main/n/nqc/" + "3.1.r6-7/debian/patches/" + "writable-swap-inst-len.patch")) + (sha256 + (base32 "1kr7j057aa5i0kxmlfpbfcsif5yq2lrmjw4sljn400ijaq4mys3v")))))) (arguments '(#:tests? #f ;no tests #:make-flags (list (string-append "PREFIX=" %output)) - #:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'rm-generated - ;; Regenerating compiler/lexer.cpp avoids an 'undefined - ;; reference to `isatty(int)'' error. - (lambda _ - (for-each delete-file - '("compiler/lexer.cpp" - "compiler/parse.cpp")) - #t)) - (add-after 'unpack 'deal-with-tarbomb - (lambda _ - (chdir "..") ;tarbomb - #t))))) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'rm-generated + ;; Regenerating compiler/lexer.cpp avoids an 'undefined + ;; reference to `isatty(int)'' error. + (lambda _ + (for-each delete-file + '("compiler/lexer.cpp" + "compiler/parse.cpp")) + #t)) + (add-after 'unpack 'deal-with-tarbomb + (lambda _ + (chdir "..") ;tarbomb + #t)) + (add-after 'deal-with-tarbomb 'patch + (lambda* (#:key inputs #:allow-other-keys) + (for-each (lambda (patch) + (invoke "patch" "-Np1" "-i" + (assoc-ref inputs patch))) + (list "add-usb-tcp-support.patch" + "debian-writable-swap-inst-len.patch"))))))) (home-page "http://bricxcc.sourceforge.net/nqc/") (synopsis "C-like language for Lego's MINDSTORMS") (description diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index fdc62e8825..76836d718b 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -1109,6 +1109,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") ("clucene" ,clucene) ("cups" ,cups) ("dbus-glib" ,dbus-glib) + ("firebird" ,firebird) ("fontconfig" ,fontconfig) ("fontforge" ,fontforge) ("gconf" ,gconf) @@ -1285,7 +1286,9 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.") "--without-java" ;; FIXME: Enable once the corresponding inputs are packaged. "--disable-coinmp" - "--disable-firebird-sdbc" ; embedded firebird + ;; This could (Debian does this) be a separate output containing only + ;; program/libfirebird_sdbclo.so, if there's a way to point to it. + "--enable-firebird-sdbc" ;; XXX: PDFium support requires fetching an external tarball and ;; patching the build scripts to work with GCC5. Try enabling this ;; when our default compiler is >=GCC 6. diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index f109ca0d8b..337f390fc1 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -564,7 +564,7 @@ devices.") (define-public hidapi (package (name "hidapi") - (version "0.9.0") + (version "0.10.0") (source (origin (method git-fetch) @@ -573,7 +573,7 @@ devices.") (commit (string-append "hidapi-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1p4g8lgwj4rki6lbn5l6rvwj0xlbn1xfh4d255bg5pvgczmwmc4i")))) + (base32 "1n3xn1zvxgyzb84cjpw3i5alw0gkbrps11r4ijxzyqxqym0khagr")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c87c5ffb09..b31ee204c7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -351,15 +351,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernel. That is, the most recently released major ;; version. -(define-public linux-libre-5.9-version "5.9.3") +(define-public linux-libre-5.9-version "5.9.10") (define deblob-scripts-5.9 (linux-libre-deblob-scripts linux-libre-5.9-version (base32 "1l0iw2lp6alk0a8nvdafklyks83iiyw4b2r5xif84z47qfbydsis") - (base32 "0is78bvpx6mrhibpspz4iqnsa1xplh11q1cnalkkm4hpsiy0fi4g"))) + (base32 "0yb04a4j2wq3mwvks3cj7kcm2pscmfs29lrz3falkxpbvjxbbgq2"))) (define-public linux-libre-5.9-pristine-source (let ((version linux-libre-5.9-version) - (hash (base32 "0wwa6557i9l4vyswz26ixz8c2ykxnzqrsc9pwkr76nyjx7gjibni"))) + (hash (base32 "0c7hcqn1ld0axlipzpwmjr1jwizrhz5w6bdfbk9npbirx7rb54gm"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.9))) @@ -367,20 +367,20 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.4-version "5.4.74") +(define-public linux-libre-5.4-version "5.4.79") (define deblob-scripts-5.4 (linux-libre-deblob-scripts linux-libre-5.4-version (base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25") - (base32 "1h6gbc9cfhb7dqx669iq26a23whka6km5av0ysk61aaz2z57vkrk"))) + (base32 "167zcfkw62pm6nv1xdvvhxw0ca724sywcywnv3z00189f8f8p3vg"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "1drs2pngr5w3rmpydljirmibp30qb4hdrhqsi92knshlw6nz817c"))) + (hash (base32 "09ffj66wlp27vx799lnixq4zdkin3y4pqaw4lx2a6rpz13xr3455"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.154") +(define-public linux-libre-4.19-version "4.19.159") (define deblob-scripts-4.19 (linux-libre-deblob-scripts linux-libre-4.19-version @@ -388,12 +388,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "0ik6anz6ly0dl0lp8m5mighlvzkifnk2kljwajxa56vbhj691339"))) + (hash (base32 "195hlvr9zsa2km80rk71na1gl0222r2mk76rsqx0cxpgg7dhpjv0"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.203") +(define-public linux-libre-4.14-version "4.14.208") (define deblob-scripts-4.14 (linux-libre-deblob-scripts linux-libre-4.14-version @@ -401,12 +401,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "0c9r1s83mrn9lzgrr4wzvk4d72q70sbgf7lql6z9ivkf12v3p5mc"))) + (hash (base32 "0vzn5kprjlgpgnjr1drjq97x9xbyfgigpgs42xsfw61h2qjy3b1q"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.241") +(define-public linux-libre-4.9-version "4.9.245") (define deblob-scripts-4.9 (linux-libre-deblob-scripts linux-libre-4.9-version @@ -414,12 +414,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "0b5k9cwz7vpaybw4nd03pn2z4d8qbhmhd9mx4j2yd0fqj57x1in4"))) + (hash (base32 "1vxsd3g96vbykrmfnj9qali0p868h678qzcqvf4yrhya47k6pnnb"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) -(define-public linux-libre-4.4-version "4.4.241") +(define-public linux-libre-4.4-version "4.4.245") (define deblob-scripts-4.4 (linux-libre-deblob-scripts linux-libre-4.4-version @@ -427,7 +427,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf"))) (define-public linux-libre-4.4-pristine-source (let ((version linux-libre-4.4-version) - (hash (base32 "054jd6jgymxbkjfmk8wbckihl355gjimjg2xi5yr4v2343qi9zij"))) + (hash (base32 "0g1cnis8496kp1ln922gxa7skfr096mdvv89la6676yw7dd4lhyi"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.4))) @@ -1008,6 +1008,17 @@ It has been modified to remove all non-free binary blobs.") '("riscv64-linux") #:extra-version "riscv64-generic")) +(define-public linux-libre-mips64el-fuloong2e + (make-linux-libre* linux-libre-version + linux-libre-source + '("mips64el-linux") + #:defconfig "fuloong2e_defconfig" + #:extra-version "mips64el-fuloong2e" + #:extra-options + (append + `(("CONFIG_OVERLAY_FS" . m)) + %default-extra-linux-options))) + (define-public linux-libre-with-bpf (let ((base-linux-libre (make-linux-libre* @@ -1031,39 +1042,45 @@ It has been modified to remove all non-free binary blobs.") ;;; (define-public acpi-call-linux-module - (let ((commit "70b9c80bd700e6a4d10797eaac9fd34b7e8cbd4a") - (revision "0")) - (package - (name "acpi-call-linux-module") - (version (git-version "3.17" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/teleshoes/acpi_call") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "09c1vw6vcrkqxbwhpgfgpj4d1grzn4qq6ka8pwwzm7cvm405xj7x")))) - (build-system linux-module-build-system) - (arguments - `(#:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (add-after 'install 'install-documentation - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (doc (string-append out "/share/doc/" ,name "-" ,version))) - (for-each (lambda (file) - (let ((target (string-append doc "/" file))) - (mkdir-p (dirname target)) - (copy-recursively file target))) - (list "README.md" "examples")) - #t)))))) - (home-page "https://github.com/teleshoes/acpi_call") - (synopsis "Linux kernel module to perform ACPI method calls") - (description - "This simple Linux kernel module allows calls from user space to any + (package + (name "acpi-call-linux-module") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nix-community/acpi_call") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mr4rjbv6fj4phf038addrgv32940bphghw2v9n1z4awvw7wzkbg")))) + (build-system linux-module-build-system) + (arguments + `(#:tests? #f ; no tests + #:phases + (modify-phases %standard-phases + (add-before 'install 'patch-shebangs-harder + ;; The (only) shebangs in examples/ don't justify a reference. + ;; However, do substitute a more portable one than the original. + (lambda _ + (substitute* (find-files "examples" ".") + (("^(#! *)/[^ ]*/" _ shebang) + (string-append shebang "/usr/bin/env "))) + #t)) + (add-after 'install 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (for-each (lambda (file) + (let ((target (string-append doc "/" file))) + (mkdir-p (dirname target)) + (copy-recursively file target))) + (list "README.md" "examples")) + #t)))))) + (home-page "https://github.com/teleshoes/acpi_call") + (synopsis "Linux kernel module to perform ACPI method calls") + (description + "This simple Linux kernel module allows calls from user space to any @acronym{ACPI, Advanced Configuration and Power Interface} method provided by your computer's firmware, by writing to @file{/proc/acpi/call}. You can pass any number of parameters of types @code{ACPI_INTEGER}, @code{ACPI_STRING}, @@ -1071,7 +1088,7 @@ and @code{ACPI_BUFFER}. It grants direct and undocumented access to your hardware that may cause damage and should be used with caution, especially on untested models.") - (license license:gpl3+)))) ; see README.md (no licence headers) + (license license:gpl3+))) ; see README.md (no licence headers) (define-public rtl8812au-aircrack-ng-linux-module (let ((commit "df2b8dfd8cb7d9f6cfeb55abaeab8a5372011fc9") @@ -1355,7 +1372,7 @@ at login. Local and dynamic reconfiguration are its key features.") ;; Tests not distributed in pypi release. (method git-fetch) (uri (git-reference - (url "https://github.com/minrk/pamela.git") + (url "https://github.com/minrk/pamela") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -4049,14 +4066,14 @@ isolation or root privileges.") (define-public hdparm (package (name "hdparm") - (version "9.58") + (version "9.60") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/hdparm/hdparm/" "hdparm-" version ".tar.gz")) (sha256 (base32 - "03z1qm8zbgpxagk3994lvp24yqsshjibkwg05v9p3q1w7y48xrws")))) + "1k1mcv7naiacw1y6bdd1adnjfiq1kkx2ivsadjwmlkg4fff775w3")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -4419,7 +4436,7 @@ arrays when needed.") (define-public multipath-tools (package (name "multipath-tools") - (version "0.8.4") + (version "0.8.5") (source (origin (method git-fetch) (uri (git-reference @@ -4428,8 +4445,7 @@ arrays when needed.") (file-name (git-file-name name version)) (sha256 (base32 - "14n8pcgnliicqxzc40xvjxk4cafm4qx7a3rsx5qva74r3ydzx8rn")) - (patches (search-patches "multipath-tools-sans-systemd.patch")) + "0gipg0z79h76j0f449cx4wcrfsv69ravjlpphsac11h302g3nrvg")) (modules '((guix build utils))) (snippet '(begin @@ -4487,6 +4503,18 @@ arrays when needed.") (("-lmultipath -lcmocka") "-lmultipath -L$(mpathcmddir) -lmpathcmd -lcmocka")) #t)) + (add-after 'unpack 'skip-failing-tests + (lambda _ + ;; This test and the module's setup() test an arbitrary block + ;; device node name, but the build environment has none. + (substitute* "tests/devt.c" + (("return get_one_devt.*") "return 0;\n") + (("cmocka_unit_test\\(test_devt2devname_devt_good\\),") "")) + ;; The above triggers -Werror=unused-function. Ignore it. + (substitute* "tests/Makefile" + (("CFLAGS \\+= " match) + (string-append match "-Wno-error=unused-function "))) + #t)) (delete 'configure)))) ; no configure script (native-inputs `(("perl" ,perl) @@ -5781,7 +5809,7 @@ of flash storage.") (define-public libseccomp (package (name "libseccomp") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/seccomp/libseccomp/" @@ -5789,7 +5817,7 @@ of flash storage.") "/libseccomp-" version ".tar.gz")) (sha256 (base32 - "1wql62cg8f95cwpy057cl764nni9g4sdn5lqj68x22kjs8w71yhz")))) + "0m8dlg1v7kflcxvajs4p76p275qwsm2abbf5mfapkakp7hw7wc7f")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static") @@ -7485,7 +7513,7 @@ and above.") (define-public bpftrace (package (name "bpftrace") - (version "0.10.0") + (version "0.11.4") (source (origin (method git-fetch) @@ -7494,8 +7522,7 @@ and above.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "023ardywbw5w8815j2ny9rrp2xlpxndqaa7v2njjm8109p7ilsdn")) + (base32 "0y4qgm2cpccrsm20rnh92hqplddqsc5q5zhw9nqn2igm3h9i0z7h")) (patches (search-patches "bpftrace-disable-bfd-disasm.patch")))) (build-system cmake-build-system) (native-inputs @@ -7537,7 +7564,7 @@ created by Alastair Robertson.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/eBUS/ttyebus.git") + (url "https://github.com/eBUS/ttyebus") (commit "fe4332a2281cf79804ef4d8516aa848ca1c58d1f"))) (file-name (git-file-name name version)) (sha256 @@ -7557,13 +7584,13 @@ receiving. It is dedicated to the PL011 UART of the Raspberry Pi.") (define-public ipset (package (name "ipset") - (version "7.7") + (version "7.9") (source (origin (method url-fetch) - (uri (string-append "http://ipset.netfilter.org/ipset-" version ".tar.bz2")) + (uri (string-append "https://ipset.netfilter.org/ipset-" version ".tar.bz2")) (sha256 (base32 - "0ckc678l1431mb0q5ilfgy0ajjwi8n135c72h606imm43dc0v9a5")))) + "02mkp7vmsh609dcp02xi290sxmsgq2fsch3875dxkwfxkrl16p5p")))) (build-system gnu-build-system) (inputs `(("libmnl" ,libmnl))) @@ -7571,7 +7598,7 @@ receiving. It is dedicated to the PL011 UART of the Raspberry Pi.") `(("pkg-config" ,pkg-config))) (arguments `(#:configure-flags '("--with-kmod=no"))) - (home-page "http://ipset.netfilter.org/") + (home-page "https://ipset.netfilter.org/") (synopsis "Administration tool for IP sets") (description "IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel which can be administered by the ipset utility. Depending on the type, diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index fb85416e38..c103d99571 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net> ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> @@ -1819,7 +1819,7 @@ writing code that contains string literals that contain code themselves.") (define-public cl-slime-swank (package (name "cl-slime-swank") - (version "2.24") + (version "2.26") (source (origin (file-name (string-append name "-" version ".tar.gz")) @@ -1829,7 +1829,7 @@ writing code that contains string literals that contain code themselves.") (commit (string-append "v" version)))) (sha256 (base32 - "0js24x42m7b5iymb4rxz501dff19vav5pywnzv50b673rbkaaqvh")))) + "0mxb1wnw19v0s72w2wkz5afdlzvpy5nn7pr4vav403qybac0sw5c")))) (build-system asdf-build-system/source) (home-page "https://github.com/slime/slime") (synopsis "Common Lisp Swank server") @@ -2540,6 +2540,12 @@ non-consing thread safe queues and fibonacci priority queues.") (arguments '(#:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-arm-support + (lambda _ + ;; This is apparently deprecated since libffi-3.3. + (substitute* "libffi/libffi-types.lisp" + (("\\\(\\\(:unix64.*") ")\n")) + #t)) (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "libffi/libffi.lisp" @@ -2599,7 +2605,8 @@ package.") (install-file "grovel/common.h" (string-append (assoc-ref outputs "out") - "/include/grovel")))))))))) + "/include/grovel")) + #t)))))))) (define-public sbcl-cffi (package @@ -3135,10 +3142,10 @@ is a library for creating graphical user interfaces.") (sbcl-package->cl-source-package sbcl-cl-cffi-gtk)) (define-public sbcl-cl-webkit - (let ((commit "04bb5703b68f4db9de71529b81896cc428ef54e1")) + (let ((commit "aecd76a2bcc7bfee049c91d94cc75f893800bf37")) (package (name "sbcl-cl-webkit") - (version (git-version "2.4" "8" commit)) + (version (git-version "2.4" "9" commit)) (source (origin (method git-fetch) @@ -3148,7 +3155,7 @@ is a library for creating graphical user interfaces.") (file-name (git-file-name "cl-webkit" version)) (sha256 (base32 - "12dzqgkvgwi97r8dbflslj7nsx7p6iavx82fs48nj9wf7ln1c87s")))) + "1j2wvn19kz0bcg17qr9pc4xp6fgjy8zngdnnp5rpfxd25sli62yc")))) (build-system asdf-build-system/sbcl) (inputs `(("cffi" ,sbcl-cffi) @@ -6634,8 +6641,8 @@ number of other open source projects. (sbcl-package->ecl-package sbcl-s-sysdeps)) (define-public sbcl-cl-prevalence - (let ((commit "1e5f030d94237b33d20947a2f6c194abedb10727") - (revision "3")) + (let ((commit "5a76be036092ed6c18cb695a9e03bce87e21b840") + (revision "4")) (package (name "sbcl-cl-prevalence") (build-system asdf-build-system/sbcl) @@ -6650,7 +6657,7 @@ number of other open source projects. (file-name (git-file-name name version)) (sha256 (base32 - "13yb8lv2aap5wvqa6hw7ms31xnax58f4m2nxifkssrzkb2w2qf29")))) + "050h6hwv8f16b5v6fzba8zmih92hgaaq27i2x9wv1iib41gbia3r")))) (inputs `(("s-sysdeps" ,sbcl-s-sysdeps) ("s-xml" ,sbcl-s-xml))) @@ -8221,8 +8228,8 @@ and camel-case rules.") (sbcl-package->ecl-package sbcl-lisp-unit2)) (define-public sbcl-cl-csv - (let ((commit "3eba29c8364b033fbe0d189c2500559278b6a362") - (revision "1")) + (let ((commit "68ecb5d816545677513d7f6308d9e5e8d2265651") + (revision "2")) (package (name "sbcl-cl-csv") (version (git-version "1.0.6" revision commit)) @@ -8235,7 +8242,7 @@ and camel-case rules.") (file-name (git-file-name name version)) (sha256 (base32 - "07h4ni89jzx93clx453hlnnb5g53hhlcmz5hghqv6ysam48lc8g6")))) + "0gcmlbwx5m3kwgk12qi80w08ak8fgdnvyia429fz6gnxmhg0k54x")))) (build-system asdf-build-system/sbcl) (arguments ;; See: https://github.com/AccelerationNet/cl-csv/pull/34 @@ -13552,6 +13559,70 @@ and decoder for Common Lisp.") (define-public ecl-qbase64 (sbcl-package->ecl-package sbcl-qbase64)) +(define-public sbcl-lw-compat + ;; No release since 2013. + (let ((commit "aabfe28c6c1a4949f9d7b3cb30319367c9fd1c0d")) + (package + (name "sbcl-lw-compat") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pcostanza/lw-compat/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "131rq5k2mlv9bfhmafiv6nfsivl4cxx13d9wr06v5jrqnckh4aav")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/pcostanza/lw-compat/") + (synopsis "LispWorks utilities ported to other Common Lisp implementations") + (description "This package contains a few utility functions from the +LispWorks library that are used in software such as ContextL.") + (license license:expat)))) + +(define-public cl-lw-compat + (sbcl-package->cl-source-package sbcl-lw-compat)) + +(define-public ecl-lw-compat + (sbcl-package->ecl-package sbcl-lw-compat)) + +(define-public sbcl-contextl + ;; No release since 2013. + (let ((commit "5d18a71a85824f6c25a9f35a21052f967b8b6bb9")) + (package + (name "sbcl-contextl") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pcostanza/contextl/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gk1izx6l6g48nypmnm9r6mzjx0jixqjj2kc6klf8a88rr5xd226")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("closer-mop" ,sbcl-closer-mop) + ("lw-compat" ,sbcl-lw-compat))) + (home-page "https://github.com/pcostanza/contextl") + (synopsis "Context-oriented programming for Common Lisp") + (description "ContextL is a CLOS extension for Context-Oriented +Programming (COP). + +Find overview of ContextL's features in an overview paper: +@url{http://www.p-cos.net/documents/contextl-soa.pdf}. See also this general +overview article about COP which also contains some ContextL examples: +@url{http://www.jot.fm/issues/issue_2008_03/article4/}.") + (license license:expat)))) + +(define-public cl-contextl + (sbcl-package->cl-source-package sbcl-contextl)) + +(define-public ecl-contextl + (sbcl-package->ecl-package sbcl-contextl)) + (define-public sbcl-hu.dwim.common-lisp (package (name "sbcl-hu.dwim.common-lisp") @@ -14201,3 +14272,273 @@ object-oriented framework for prototyping genetic algorithms in Common Lisp.") (define-public ecl-geco (sbcl-package->ecl-package sbcl-geco)) + +(define-public sbcl-html-entities + (let ((commit "4af018048e891f41d77e7d680ed3aeb639e1eedb")) + (package + (name "sbcl-html-entities") + (version (git-version "0.02" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BnMcGn/html-entities/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b2yl6lf6vis17y4n5s505p7ica96bdafcl6vydy1hg50fy33nfr")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("ppcre" ,sbcl-cl-ppcre))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/BnMcGn/html-entities/") + (synopsis "Encode and decode entities in HTML with Common Lisp") + (description "Html-entities is a Common Lisp library that lets you +encode and decode entities in HTML.") + (license license:expat)))) + +(define-public cl-html-entities + (sbcl-package->cl-source-package sbcl-html-entities)) + +(define-public ecl-html-entities + (sbcl-package->ecl-package sbcl-html-entities)) + +(define-public sbcl-quicksearch + (let ((commit "fb02ecf7c876ec580ab18c7d2c8c7814c06af599")) + (package + (name "sbcl-quicksearch") + (version (git-version "0.01.04" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tkych/quicksearch/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16k19zjkhh7r64vjq371k5jwjs7cdfjz83flh561n4h4v1z89fps")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("iterate" ,sbcl-iterate) + ("alexandria" ,sbcl-alexandria) + ("anaphora" ,sbcl-anaphora) + ("ppcre" ,sbcl-cl-ppcre) + ("drakma" ,sbcl-drakma) + ("html-entities" ,sbcl-html-entities) + ("yason" ,sbcl-yason) + ("flexi-streams" ,sbcl-flexi-streams) + ("do-urlencode" ,sbcl-do-urlencode))) + (home-page "https://github.com/tkych/quicksearch/") + (synopsis "Search Engine Interface for Common Lisp packages") + (description "Quicksearch is a search-engine-interface for Common Lisp. +The goal of Quicksearch is to find the Common Lisp library quickly. For +example, if you will find the library about json, just type @code{(qs:? +'json)} at REPL. + +The function @code{quicksearch} searches for Common Lisp projects in +Quicklisp, Cliki, GitHub and BitBucket, then outputs results in REPL. The +function @code{?} is abbreviation wrapper for @code{quicksearch}.") + (license license:expat)))) + +(define-public cl-quicksearch + (sbcl-package->cl-source-package sbcl-quicksearch)) + +(define-public ecl-quicksearch + (sbcl-package->ecl-package sbcl-quicksearch)) + +(define-public sbcl-agutil + (let ((commit "df188d754d472da9faa1601a48f1f37bb7b34d68")) + (package + (name "sbcl-agutil") + (version (git-version "0.0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alex-gutev/agutil/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xpnyzksk2xld64b6lw6rw0gn5zxlb77jwna59sd4yl7kxhxlfpf")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("trivia" ,sbcl-trivia))) + (home-page "https://github.com/alex-gutev/agutil/") + (synopsis "Collection of Common Lisp utilities") + (description "A collection of Common Lisp utility functions and macros +mostly not found in other utility packages.") + (license license:expat)))) + +(define-public cl-agutil + (sbcl-package->cl-source-package sbcl-agutil)) + +(define-public ecl-agutil + (sbcl-package->ecl-package sbcl-agutil)) + +(define-public sbcl-custom-hash-table + (let ((commit "f26983133940f5edf826ebbc8077acc04816ddfa")) + (package + (name "sbcl-custom-hash-table") + (version (git-version "0.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/metawilm/cl-custom-hash-table") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1k4mvrpbqqds2fwjxp1bxmrfmr8ch4dkwhnkbw559knbqshvrlj5")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:asd-file "cl-custom-hash-table.asd" + #:asd-system-name "cl-custom-hash-table")) + (home-page "https://github.com/metawilm/cl-custom-hash-table") + (synopsis "Custom hash tables for Common Lisp") + (description "This library allows creation of hash tables with arbitrary +@code{test}/@code{hash} functions, in addition to the @code{test} functions +allowed by the standard (@code{EQ}, @code{EQL}, @code{EQUAL} and +@code{EQUALP}), even in implementations that don't support this functionality +directly.") + (license license:expat)))) + +(define-public cl-custom-hash-table + (sbcl-package->cl-source-package sbcl-custom-hash-table)) + +(define-public ecl-custom-hash-table + (sbcl-package->ecl-package sbcl-custom-hash-table)) + +(define-public sbcl-collectors + (let ((commit "13acef25d8422d1d82e067b1861e513587c166ee")) + (package + (name "sbcl-collectors") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AccelerationNet/collectors") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1si68n1j6rpns8jw6ksqjpb937pdl30v7xza8rld7j5vh0jhy2yi")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("symbol-munger" ,sbcl-symbol-munger))) + (native-inputs + `(("lisp-unit2" ,sbcl-lisp-unit2))) + (home-page "https://github.com/AccelerationNet/collectors/") + (synopsis "Common lisp library providing collector macros") + (description "A small collection of common lisp macros to make +collecting values easier.") + (license license:bsd-3)))) + +(define-public cl-collectors + (sbcl-package->cl-source-package sbcl-collectors)) + +(define-public ecl-collectors + (sbcl-package->ecl-package sbcl-collectors)) + +(define-public cl-environments + ;; TODO: asdf-build-system/sbcl fails here, why? See if it works with the + ;; build system revamp once staging is merged after 2020-11-09. + (let ((commit "bbcd958a9ff23ce3e6ea5f8ee2edad9634819a3a")) ; No version in 2 years. + (package + (name "cl-environments") + (version (git-version "0.2.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alex-gutev/cl-environments") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pfxl3vcdrb4mjy4q4c3c7q95kzv6rfjif3hzd5q91i9z621d64r")))) + (build-system asdf-build-system/source) + (propagated-inputs + `(("alexandria" ,cl-alexandria) + ("anaphora" ,cl-anaphora) + ("collectors" ,cl-collectors) + ("optima" ,cl-optima))) + (native-inputs + `(("prove" ,sbcl-prove) + ("prove-asdf" ,sbcl-prove-asdf))) + (home-page "https://github.com/alex-gutev/cl-environments") + (synopsis "Implements the Common Lisp standard environment access API") + (description "This library provides a uniform API, as specified in Common +Lisp the Language 2, for accessing information about variable and function +bindings from implementation-defined lexical environment objects. All major +Common Lisp implementations are supported, even those which don't support the +CLTL2 environment access API.") + (license license:expat)))) + +(define-public sbcl-static-dispatch + (package + (name "sbcl-static-dispatch") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/alex-gutev/static-dispatch") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wp5yz8liqqic3yifqf33qhccd755pd7ycvsq1j4i7k3f1wm18i0")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("agutil" ,sbcl-agutil) + ("alexandria" ,sbcl-alexandria) + ("anaphora" ,sbcl-anaphora) + ("arrows" ,sbcl-arrows) + ("closer-mop" ,sbcl-closer-mop) + ("iterate" ,sbcl-iterate) + ("trivia" ,sbcl-trivia))) + (propagated-inputs + `(("cl-environments" ,cl-environments))) + (native-inputs + `(("prove-asdf" ,sbcl-prove-asdf) + ("prove" ,sbcl-prove))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Use `arrows' instead of cl-arrows which is abandoned and unlicensed. + ;; https://github.com/nightfly19/cl-arrows/issues/5 + (add-after 'unpack 'use-arrows-instead-of-cl-arrows + (lambda _ + (for-each + (lambda (file) + (substitute* file + ((":cl-arrows") ":arrows"))) + '("static-dispatch.asd" + "src/package.lisp" + "test/methods.lisp" + "test/test.lisp"))))))) + (home-page "https://github.com/alex-gutev/static-dispatch") + (synopsis "Static generic function dispatch for Common Lisp") + (description "Static dispatch is a Common Lisp library, inspired by +@code{inlined-generic-function}, which allows standard Common Lisp generic +function dispatch to be performed statically (at compile time) rather than +dynamically (runtime). This is similar to what is known as \"overloading\" in +languages such as C++ and Java. + +The purpose of static dispatch is to provide an optimization in cases where +the usual dynamic dispatch is too slow, and the dynamic features of generic +functions, such as adding/removing methods at runtime are not required. An +example of such a case is a generic equality comparison function. Currently +generic functions are considered far too slow to implement generic arithmetic +and comparison operations when used heavily in numeric code.") + (license license:expat))) + +(define-public cl-static-dispatch + (sbcl-package->cl-source-package sbcl-static-dispatch)) + +(define-public ecl-static-dispatch + (sbcl-package->ecl-package sbcl-static-dispatch)) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index e1c8bbb5e3..4727b486e9 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -1001,3 +1001,40 @@ including a built-in database engine and a GUI system.") (package (inherit picolisp32) (name "picolisp"))))) + +(define-public janet + (package + (name "janet") + (version "1.12.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/janet-lang/janet") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list + (string-append "DESTDIR=" (assoc-ref %outputs "out")) + (string-append "PREFIX=") + (string-append "CC=" (assoc-ref %build-inputs "gcc") + "/bin/gcc")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'check + (lambda _ + (invoke "make" "test")))))) + (home-page "https://janet-lang.org/") + (synopsis "Functional, imperative and embeddable programming language") + (description + "Janet is a functional and imperative programming language. It can be +used for rapid prototyping, dynamic systems, and other domains where dynamic +languages shine. You can also add Janet scripting to an application by +embedding a single C file and two headers. It can be easily ported to new +platforms. The entire language (core library, interpreter, compiler, +assembler, PEG) is less than 1MB.") + (license license:expat))) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index b2b80572fb..1db01cea36 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -602,11 +603,10 @@ of programming tools as well as libraries with equivalent functionality.") (sha256 (base32 "16hwp3qa54c3a3v7h8nlw0fh5criqh0hlr1skybyk0cz70gyx880")) - (patch-flags '("-p2")) (patches (search-patches - "llvm-9-fix-bitcast-miscompilation.patch" - "llvm-9-fix-scev-miscompilation.patch" - "llvm-9-fix-lpad-miscompilation.patch")))))) + "llvm-9-fix-bitcast-miscompilation.patch" + "llvm-9-fix-scev-miscompilation.patch" + "llvm-9-fix-lpad-miscompilation.patch")))))) (define-public clang-runtime-9 (clang-runtime-from-llvm @@ -1045,48 +1045,96 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") (define-public python-llvmlite (package (name "python-llvmlite") - (version "0.30.0") + (version "0.34.0") (source (origin (method url-fetch) (uri (pypi-uri "llvmlite" version)) (sha256 (base32 - "01wspdc0xhnydl66jyhyr4ii16h3fnw6mjihiwnnxdxg9j6kkajf")))) + "0qqzs6h34002ig2jn31vk08q9hh5kn84lhmv4bljz3yakg8y0gph")))) (build-system python-build-system) (arguments - ;; FIXME: One test fails unable to find libm.so - ;; https://github.com/numba/llvmlite/issues/537 - `(#:tests? #f)) + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-reference-to-llvmlite.so + ;; ctypes.CDLL uses dlopen to load libllvmlite.so, which + ;; fails, so locate it by its absolute path. Change it in + ;; ffi.py, not utils.py, because setup.py relies on the + ;; output of get_library_name for proper installation. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (libllvmlite.so (string-append out "/lib/python" + ,(version-major+minor + (package-version python)) + "/site-packages/llvmlite/" + "binding/libllvmlite.so"))) + (substitute* "llvmlite/binding/ffi.py" + (("_lib_name = get_library_name\\(\\)") + (format #f "_lib_name = ~s" libllvmlite.so))) + #t))) + (add-after 'unpack 'skip-failing-tests + (lambda _ + (substitute* "llvmlite/tests/test_binding.py" + ((" def test_libm\\(self\\).*" all) + (string-append " @unittest.skip('Fails on Guix')\n" all))) + #t)) + (add-before 'build 'set-compiler/linker-flags + (lambda* (#:key inputs #:allow-other-keys) + (let ((llvm (assoc-ref inputs "llvm"))) + ;; Refer to ffi/Makefile.linux. + (setenv "CPPFLAGS" "-fPIC") + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" + llvm "/lib")) + #t)))))) (inputs `(("llvm" - ,(let ((patches-commit "486edd5fb2a6667feb5c865f300c0da73785434a")) - (package - (inherit llvm-7) - (source - (origin - (inherit (package-source llvm-7)) - (patches + ,(let* ((patches-commit "061ab39e1d4591f3aa842458252a19ad01858167") + (patch-uri (lambda (name) + (string-append + "https://raw.githubusercontent.com/numba/" + "llvmlite/" patches-commit "/conda-recipes/" + name))) + (patch-origin (lambda (name hash) + (origin + (method url-fetch) + (uri (patch-uri name)) + (sha256 (base32 hash))))) + (arch-independent-patches (list + (patch-origin + "partial-testing.patch" + "1cwy4jsmijd838q0bylxl77vrwrb7ksijfly5062ay32303jmj86") + (patch-origin + "0001-Revert-Limit-size-of-non-GlobalValue-name.patch" + "0n4k7za0smx6qwdipsh6x5lm7bfvzzb3p9r8q1zq1dqi4na21295")))) + (if (string=? "aarch64-linux" (%current-system)) + (package + (inherit llvm-9) + (source (origin - (method url-fetch) - (uri (string-append - "https://raw.githubusercontent.com/numba/" - "llvmlite/" patches-commit "/conda-recipes/" - "D47188-svml-VF.patch")) - (sha256 - (base32 - "0wxhgb61k17f0zg2m0726sf3hppm41f8jar2kkg2n8sl5cnjj9mr"))) + (inherit (package-source llvm-9)) + (patches + `(,(patch-origin + "intel-D47188-svml-VF_LLVM9.patch" + "1f9ld7wc8bn4gbvdsmk07w1rq371h42vy05rxsq9a22f57rljqbd") + ,@arch-independent-patches + ,@(origin-patches (package-source llvm-9))))))) + (package + (inherit llvm-10) + (source (origin - (method url-fetch) - (uri (string-append - "https://raw.githubusercontent.com/numba/" - "llvmlite/" patches-commit "/conda-recipes/" - "twine_cfg_undefined_behavior.patch")) - (sha256 - (base32 - "07h71n2m1mn9zcfgw04zglffknplb233zqbcd6pckq0wygkrxflp")))))))))))) - (home-page "http://llvmlite.pydata.org") + (inherit (package-source llvm-10)) + (patches + `(,(patch-origin + "intel-D47188-svml-VF.patch" + "0n46qjwfl7i12bl7wp0cyxl277axfvaaz5lxx5kdlgwjcpa582dg") + ,(patch-origin + "expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch" + "0jxhjkkwwi1cy898l2n57l73ckpw0v73lqnrifp7r1mwpsh624nv") + ,@arch-independent-patches + ,@(origin-patches (package-source llvm-10)))))))))))) + (home-page "https://llvmlite.pydata.org") (synopsis "Wrapper around basic LLVM functionality") (description "This package provides a Python binding to LLVM for use in Numba.") diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm index 34ad0f03d5..b317902ee7 100644 --- a/gnu/packages/lsof.scm +++ b/gnu/packages/lsof.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -22,52 +22,37 @@ (define-module (gnu packages lsof) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages groff) #:use-module (gnu packages perl)) (define-public lsof (package (name "lsof") - (version "4.91") + (version "4.94.0") (source (origin - (method url-fetch) - (uri - (apply append - (map - (lambda (mirror-uri) - (let ((tarball (string-append name "_" version ".tar.bz2"))) - (list - (string-append mirror-uri "/" tarball) - ;; Upon every new release, the previous one is moved here: - (string-append mirror-uri "/OLD/" tarball)))) - (list - "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/" - - ;; Add mirrors because the canonical FTP server at purdue.edu - ;; bails out when it cannot do a reverse DNS lookup, as noted - ;; at <https://people.freebsd.org/~abe/>. - "ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/" - (string-append "http://www.mirrorservice.org/sites/" - "lsof.itap.purdue.edu/pub/tools/unix/lsof") - (string-append "ftp://ftp.mirrorservice.org/sites/" - "lsof.itap.purdue.edu/pub/tools/unix/lsof"))))) + (method git-fetch) + (uri (git-reference + (url "https://github.com/lsof-org/lsof") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9")))) + (base32 "0yxv2jg6rnzys49lyrz9yjb4knamah4xvlqj596y6ix3vm4k3chp")) + (patches (search-patches "lsof-fatal-test-failures.patch")))) (build-system gnu-build-system) - (native-inputs `(("perl" ,perl))) + (native-inputs + `(("groff" ,groff) ; for soelim + ("perl" ,perl))) (arguments `(#:phases (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source #:allow-other-keys) - (let ((unpack (assoc-ref %standard-phases 'unpack))) - (unpack #:source source) - (unpack #:source (car (find-files "." "\\.tar$")))))) (replace 'configure (lambda _ - (setenv "LSOF_CC" "gcc") + (setenv "LSOF_CC" ,(cc-for-target)) (setenv "LSOF_MAKE" "make") ;; By default, the makefile captures the output of 'uname -a'. @@ -83,14 +68,13 @@ (substitute* "Makefile" (("`date`") "`date --date=@1`")) #t)) + (add-after 'build 'build-man-page + (lambda _ + (with-output-to-file "lsof.8" + (lambda _ (invoke "soelim" "Lsof.8"))) + #t)) (add-before 'check 'disable-failing-tests (lambda _ - ;; In libc 2.28, the 'major' and 'minor' macros are provided by - ;; <sys/sysmacros.h> only so include it. - (substitute* "tests/LTlib.c" - (("#ifndef lint") - "#include <sys/sysmacros.h>\n\n#ifndef lint")) - (substitute* "tests/Makefile" ;; Fails with ‘ERROR!!! client gethostbyaddr() failure’. (("(STDTST=.*) LTsock" _ prefix) prefix) @@ -98,15 +82,16 @@ (("(OPTTST=.*) LTnfs" _ prefix) prefix)) #t)) (replace 'check - (lambda _ - (with-directory-excursion "tests" - ;; Tests refuse to run on ‘unvalidated’ platforms. - (make-file-writable "TestDB") - (invoke "./Add2TestDB") + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "tests" + ;; Tests refuse to run on ‘unvalidated’ platforms. + (make-file-writable "TestDB") + (invoke "./Add2TestDB") - ;; The ‘standard’ tests suggest running ‘optional’ ones as well. - (invoke "make" "standard" "optional") - #t))) + ;; The ‘standard’ tests suggest running ‘optional’ ones as well. + (invoke "make" "standard" "optional"))) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 42ef24e381..5d6da69fae 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -64,13 +64,16 @@ (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments - '(#:modules ((guix build gnu-build-system) + `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-1)) #:test-target "test" #:make-flags - '("MYCFLAGS=-fPIC -DLUA_DL_DLOPEN" - "linux") + (list "MYCFLAGS=-fPIC -DLUA_DL_DLOPEN" + (string-append "CC=" ,(cc-for-target)) + (string-append "SYSLIBS=-L" (assoc-ref %build-inputs "readline") + "/lib") + "linux") #:phases (modify-phases %standard-phases (delete 'configure) @@ -883,7 +886,7 @@ on numbers.") (define-public lua-resty-core (package (name "lua-resty-core") - (version "0.1.17") + (version "0.1.18") (source (origin (method git-fetch) (uri (git-reference @@ -892,7 +895,7 @@ on numbers.") (file-name (git-file-name name version)) (sha256 (base32 - "11fyli6yrg7b91nv9v2sbrc6y7z3h9lgf4lrrhcjk2bb906576a0")))) + "1c58hykwpg5zqbyhrcb703pzwbkih409v3bh2gady6z2kj9q32dw")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -920,7 +923,7 @@ on numbers.") (define-public lua-resty-lrucache (package (name "lua-resty-lrucache") - (version "0.09") + (version "0.10") (source (origin (method git-fetch) (uri (git-reference @@ -929,7 +932,7 @@ on numbers.") (file-name (git-file-name name version)) (sha256 (base32 - "1mwiy55qs8bija1kpgizmqgk15ijizzv4sa1giaz9qlqs2kqd7q2")))) + "1bsc54v1rvxmkwg7a2c01p192lvw5g576f589is8fy1m1c6v4ap8")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index 17421a9835..20efba17b7 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -1330,7 +1330,7 @@ like @command{tar} and @command{zip}.") (origin (method git-fetch) (uri (git-reference - (url (string-append "https://github.com/lxqt/" name ".git")) + (url (string-append "https://github.com/lxqt/" name)) (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0br4bxfrl8k7lq84aq4grznlk8xzzjgkmd19bf9mwjr0a87gg72v")))) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 44a156fd99..5a10194a4a 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -28,7 +28,7 @@ ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> +;;; Copyright © 2019, 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org> ;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com> @@ -37,6 +37,8 @@ ;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> +;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +64,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) + #:use-module (gnu packages boost) #:use-module (gnu packages calendar) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -106,6 +109,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) + #:use-module (gnu packages ninja) #:use-module (gnu packages openldap) #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pcre) @@ -113,6 +117,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages perl-web) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) @@ -592,12 +597,15 @@ It adds a large amount of new and improved features to mutt.") (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) - ("gnupg" ,gnupg))) ; for tests only + ("gnupg" ,gnupg) ; for tests only + ("gobject-introspection" ,gobject-introspection))) (inputs `(("glib" ,glib) ("gpgme" ,gpgme) ("zlib" ,zlib))) (arguments - `(#:phases + `(#:configure-flags + (list "--enable-introspection=yes") + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-paths-in-tests @@ -699,6 +707,118 @@ mailpack. What can alterMIME do? (license (list (license:non-copyleft "file://LICENSE") license:bsd-3)))) +(define-public astroid + (package + (name "astroid") + (version "0.15") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/astroidmail/astroid") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11cxbva9ni98gii59xmbxh4c6idcg3mg0pgdsp1c3j0yg7ix0lj3")) + (modules '((guix build utils))) + (snippet + '(begin + ;; https://github.com/astroidmail/astroid/pull/685 + (substitute* "tests/test_composed_message.cc" + (("\\\\n\\.\\.\\.") "\\n...\\n")) + #t)))) + (build-system cmake-build-system) + (arguments + `(#:modules ((guix build cmake-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) + (guix build utils) + (ice-9 match)) + #:imported-modules ((guix build glib-or-gtk-build-system) + ,@%cmake-build-system-modules) + #:configure-flags (list "-GNinja") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'skip-markdown-test + ;; This test relies on the plugins and the test suite + ;; cannot find the Astroid module. + ;; gi.require_version ('Astroid', '0.2') + ;; ValueError: Namespace Astroid not available + (lambda _ + (substitute* "tests/CMakeLists.txt" + ((".*markdown.*") "")) + #t)) + (replace 'build + (lambda _ + (invoke "ninja" "-j" (number->string (parallel-job-count))))) + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + (setenv "HOME" (getcwd)) + (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) + (setenv "DISPLAY" ":1") + #t))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (setenv "CTEST_OUTPUT_ON_FAILURE" "1") + (invoke "ctest" ".")) + #t)) + (replace 'install + (lambda _ + (invoke "ninja" "install"))) + (add-after 'install 'wrap-with-GI_TYPELIB_PATH + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (paths (map (match-lambda + ((outputs . directory) + (let ((girepodir (string-append + directory + "/lib/girepository-1.0"))) + (if (file-exists? girepodir) + girepodir + #f)))) + inputs))) + (wrap-program (string-append out "/bin/astroid") + `("GI_TYPELIB_PATH" ":" prefix ,(filter identity paths)))) + #t)) + (add-after 'install 'glib-or-gtk-compile-schemas + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) + (add-after 'install 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (native-inputs + `(("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gnupg" ,gnupg) + ("ninja" ,ninja) + ("pkg-config" ,pkg-config) + ("ronn" ,ronn) + ("w3m" ,w3m) + ("xorg-server" ,xorg-server))) + (inputs + `(("boost" ,boost) + ("gmime" ,gmime) + ("gobject-introspection" ,gobject-introspection) ; it is referenced + ("gtkmm" ,gtkmm) + ("libpeas" ,libpeas) + ("libsass" ,libsass) + ("notmuch" ,notmuch) + ("protobuf" ,protobuf) + ("python" ,python-wrapper) + ("python-pygobject" ,python-pygobject) + ("webkitgtk" ,webkitgtk))) + (propagated-inputs + `(("adwaita-icon-theme" ,adwaita-icon-theme))) ; Required for the thread view + (home-page "https://astroidmail.github.io/") + (synopsis "GTK frontend to the notmuch mail system") + (description + "Astroid is a lightweight and fast Mail User Agent that provides a +graphical interface to searching, display and composing email, organized in +thread and tags. Astroid uses the notmuch backend for searches through tons of +email. Astroid searches, displays and compose emails — and relies on other +programs for fetching, syncing and sending email.") + (license (list license:gpl3+ ; 'this program' + license:lgpl2.1+)))) ; code from geary, gmime + (define-public ripmime ;; Upstream does not tag or otherwise provide any releases (only a version ;; number in the source) @@ -747,6 +867,44 @@ MIME-encoded email package.") (home-page "https://github.com/inflex/ripMIME") (license license:bsd-3)))) +(define-public mailcap + (let* ((version "2.1.49") + (tag ;; mailcap tags their releases like this: rMajor-minor-patch + (string-append "r" (string-join (string-split version #\.) "-")))) + (package + (name "mailcap") + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://pagure.io/mailcap.git") + (commit tag))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ck1fw6gqn51phcfakhfpfq1yziv3gnmgjvswzhj9x0p162n6alj")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'install 'set-dest-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "DESTDIR" out) + (substitute* "Makefile" + (("/usr") "")) ; This allows the man page to install. + #t)))))) + (native-inputs + `(("python" ,python))) ; for tests + (synopsis "MIME type associations for file types") + (description + "This package provides MIME type associations for file types.") + (home-page "https://pagure.io/mailcap") + (license (list license:expat ; mailcap.5 + license:public-domain))))) ; mailcap and mime.types + (define-public bogofilter (package (name "bogofilter") @@ -965,7 +1123,7 @@ attachments, create new maildirs, and so on.") (define-public alot (package (name "alot") - (version "0.5.1") + (version "0.9.1") (source (origin (method url-fetch) ;; package author intends on distributing via github rather @@ -976,27 +1134,47 @@ attachments, create new maildirs, and so on.") (file-name (string-append "alot-" version ".tar.gz")) (sha256 (base32 - "0wax30hjzmkqfml7hig1dqw1v1y63yc0cgbzl96x58b9h2ggqx3a")))) + "1r0x3n2fxi6sfq3paz8a4vn2mmyqaznj1207wa7jl0ixnjqilb7f")))) (build-system python-build-system) (arguments - `(;; python 3 is currently unsupported, more info: - ;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst - #:python ,python-2)) + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (let ((gnupg (assoc-ref inputs "gnupg"))) + (substitute* "tests/test_crypto.py" + (("gpg2") (string-append gnupg "/bin/gpg"))) + #t))) + (add-before 'check 'disable-failing-tests + ;; FIXME: Investigate why these tests are failing. + (lambda _ + (substitute* "tests/test_helper.py" + (("def test_env_set") "def _test_env_set")) + (substitute* "tests/commands/test_global.py" + (("def test_no_spawn_no_stdin_attached") + "def _test_no_spawn_no_stdin_attached")) + #t))))) (native-inputs - `(("python2-mock" ,python2-mock))) + `(("procps" ,procps) + ("python-mock" ,python-mock))) (inputs - `(("python2-magic" ,python2-magic) - ("python2-configobj" ,python2-configobj) - ("python2-twisted" ,python2-twisted) - ("python2-urwid" ,python2-urwid) - ("python2-urwidtrees" ,python2-urwidtrees) - ("python2-pygpgme" ,python2-pygpgme) - ("python2-notmuch" ,python2-notmuch))) + `(("gnupg" ,gnupg) + ("python-magic" ,python-magic) + ("python-configobj" ,python-configobj) + ("python-twisted" ,python-twisted) + ("python-service-identity" ,python-service-identity) + ("python-urwid" ,python-urwid) + ("python-urwidtrees" ,python-urwidtrees) + ("python-gpg" ,python-gpg) + ("python-notmuch" ,python-notmuch))) (home-page "https://github.com/pazz/alot") - (synopsis "Command-line MUA using @code{notmuch}") + (synopsis "Command-line MUA using Notmuch") (description - "Alot is an experimental terminal mail user agent (@dfn{MUA}) based on -@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.") + "Alot is a terminal-based mail user agent based on the Notmuch mail +indexer. It is written in Python using the @code{urwid} toolkit and features +a modular and command prompt driven interface to provide a full mail user +agent (@dfn{MUA}) experience as an alternative to the Emacs mode shipped with +Notmuch.") (license license:gpl3+))) (define-public notifymuch @@ -1050,14 +1228,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.31") + (version "0.31.1") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.xz")) (sha256 (base32 - "1543l57viqzqikjgfzp2abpwz3p0k2iq0b1b3wmn31lwaghs07sp")))) + "0pmvwynd4f4kr38agd5m1ml20lq854knc9da7yiqfi776j8fg2rj")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) @@ -1207,14 +1385,14 @@ and search library.") (define-public muchsync (package (name "muchsync") - (version "5") + (version "6") (source (origin (method url-fetch) (uri (string-append "http://www.muchsync.org/src/" "muchsync-" version ".tar.gz")) (sha256 - (base32 "1k2m44pj5i6vfhp9icdqs42chsp208llanc666p3d9nww8ngq2lb")))) + (base32 "1s799kx16nm5ry1fcqcc0grgxrwnnp4cnzd0hzwbkvc5v2sf6g8b")))) (build-system gnu-build-system) (native-inputs `(("pandoc" ,pandoc) @@ -1234,7 +1412,7 @@ broadband. Muchsync supports arbitrary pairwise synchronization among replicas. A version-vector-based algorithm allows it to exchange only the minimum information necessary to bring replicas up to date regardless of which pairs have previously synchronized.") - (license license:gpl2+))) + (license license:gpl2+))) ; with OpenSSL libcrypto exception (define-public getmail (package @@ -1269,7 +1447,7 @@ useful features.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/dinhviethoa/libetpan.git") + (url "https://github.com/dinhviethoa/libetpan") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1392,14 +1570,14 @@ addons which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.8.12") + (version "1.8.13") (source (origin (method url-fetch) (uri (string-append "https://marlam.de/msmtp/releases/" "/msmtp-" version ".tar.xz")) (sha256 - (base32 "0m33m5bc7ajmgy7vivnzj3mhybg37259hx79xypj769kfyafyvx8")))) + (base32 "1fcv99nis7c6yc63n04cncjysv9jndrp469gcfxh54aiinmlbadd")))) (build-system gnu-build-system) (inputs `(("libsecret" ,libsecret) @@ -2423,17 +2601,68 @@ existing mail server. With Postfix, the proxies can operate as either converts them to maildir format directories.") (license license:public-domain))) +(define-public mblaze + (package + (name "mblaze") + (version "0.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/leahneukirchen/mblaze") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0p97zfl35ilrnrx9ynj82igsb698m9klikfaicw5jhjpf6qp2n3y")))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl))) + (arguments + `(#:tests? #f ; XXX: Upstream tests appear to be broken + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + "PREFIX=" + (string-append "DESTDIR=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (home-page "https://github.com/leahneukirchen/mblaze") + (synopsis "Unix utilities to deal with Maildir") + (description + "The mblaze message system is a set of Unix utilities for processing and +interacting with mail messages which are stored in maildir folders. + +Its design is roughly inspired by MH, the RAND Message Handling System, but it +is a complete implementation from scratch. + +mblaze is a classic command line MUA and has no features for receiving or +transferring messages; you can operate on messages in a local maildir spool, +or fetch your messages using fdm(1), getmail(1), offlineimap(1), or similar +utilities, and send it using dma(8), msmtp(1), sendmail(8), as provided by +OpenSMTPD, Postfix, or similar. + +mblaze operates directly on maildir folders and doesn't use its own caches or +databases. There is no setup needed for many uses. All utilities have been +written with performance in mind. Enumeration of all messages in a maildir is +avoided unless necessary, and then optimized to limit syscalls. Parsing +message metadata is optimized to limit I/O requests. Initial operations on a +large maildir may feel slow, but as soon as they are in the file system cache, +everything is blazingly fast. The utilities are written to be memory +efficient (i.e. not wasteful), but whole messages are assumed to fit into RAM +easily (one at a time).") + (license (list license:public-domain + license:expat)))) ; mystrverscmp.c and mymemmem + (define-public mpop (package (name "mpop") - (version "1.4.10") + (version "1.4.11") (source (origin (method url-fetch) (uri (string-append "https://marlam.de/mpop/releases/" "mpop-" version ".tar.xz")) (sha256 - (base32 "1243hazpiwgvz2m3p48cdh0yw1019i6xjxgc7qyhmxcdy0inb6wy")))) + (base32 "1gcxvhin5y0q47svqbf90r5aip0cgywm8sq6m84ygda7km8xylwv")))) (build-system gnu-build-system) (inputs `(("gnutls" ,gnutls))) @@ -2880,14 +3109,13 @@ messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).") (define-public mailman (package (name "mailman") - (version "3.3.1") + (version "3.3.2") (source (origin (method url-fetch) (uri (pypi-uri "mailman" version)) (sha256 - (base32 - "0idfiv48jjgc0jq4731094ddhraqq8bxnwmjk6sg5ask0jss9kxq")))) + (base32 "0a5ckbf8hc3y28b7p5psp0d4bxk601jlr5pd3hhh545xd8d9f0dg")))) (build-system python-build-system) (propagated-inputs `(("gunicorn" ,gunicorn) @@ -3423,20 +3651,23 @@ the use of a local MTA such as Sendmail.") (define-public afew (package (name "afew") - (version "1.2.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (pypi-uri "afew" version)) (sha256 (base32 - "121w7bd53xyibllxxbfykjj76n81kn1vgjqd22izyh67y8qyyk5r")))) + "0wpfqbqjlfb9z0hafvdhkm7qw56cr9kfy6n8vb0q42dwlghpz1ff")))) (build-system python-build-system) (inputs - `(("python-chardet" ,python-chardet) + `(("notmuch" ,notmuch) + ("python-chardet" ,python-chardet) + ("python-dkimpy" ,python-dkimpy) ("python-notmuch" ,python-notmuch))) (native-inputs - `(("python-setuptools-scm" ,python-setuptools-scm))) + `(("python-freezegun" ,python-freezegun) + ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "https://github.com/afewmail/afew") (synopsis "Initial tagging script for notmuch mail") (description "afew is an initial tagging script for notmuch mail. It @@ -3887,7 +4118,7 @@ DKIM and ARC sign messages and output the corresponding signature headers.") (define-public python-aiosmtpd (package (name "python-aiosmtpd") - (version "1.2.1") + (version "1.2.2") (source (origin (method git-fetch) @@ -3895,7 +4126,7 @@ DKIM and ARC sign messages and output the corresponding signature headers.") (url "https://github.com/aio-libs/aiosmtpd") (commit version))) (sha256 - (base32 "14c30dm6jzxiblnsah53fdv68vqhxwvb9x0aq9bc4vcdas747vr7")) + (base32 "0083d6nf75xv8nq1il6jabz36v6c452svy4p402csxwwih5pw6sk")) (file-name (git-file-name name version)))) (build-system python-build-system) (arguments diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index bc7c011c74..0eadd9d153 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -83,7 +83,7 @@ as description, options, see also, etc.") (method git-fetch) (uri (git-reference - (url "https://github.com/rtomayko/ronn.git") + (url "https://github.com/rtomayko/ronn") (commit version))) (file-name (git-file-name name version)) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index 77e55731a3..a9635d90fe 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -903,7 +903,6 @@ icons on the MATE desktop. It works on local and remote file systems.") ("dbus-glib" ,dbus-glib) ("gajim" ,gajim) ;runtime only? ("gtk+" ,gtk+) - ("imagemagick" ,imagemagick) ("graphicsmagick" ,graphicsmagick) ("mate-desktop" ,mate-desktop) ("pidgin" ,pidgin) ;runtime only? diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ba46937f9a..d3f3539e26 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -41,6 +41,7 @@ ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -306,13 +307,13 @@ programming language.") (define-public units (package (name "units") - (version "2.19") + (version "2.21") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/units/units-" version ".tar.gz")) (sha256 (base32 - "0mk562g7dnidjgfgvkxxpvlba66fh1ykmfd9ylzvcln1vxmi6qj2")))) + "1bybhqs4yrly9myb5maz3kdmf8k4fhk2m1d5cbcryn40z6lq0gkc")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) @@ -2470,7 +2471,18 @@ scientific applications modeled by partial differential equations.") (uri (pypi-uri "petsc4py" version)) (sha256 (base32 - "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q")))) + "1rm1qj5wlkhxl39by9n78lh3gbmii31wsnb8j1rr5hvfr5xgbx2q")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Ensure source file is regenerated in the build phase. + (delete-file "src/petsc4py.PETSc.c") + ;; Remove legacy GC code. See + ;; https://bitbucket.org/petsc/petsc4py/issues/125. + (substitute* "src/PETSc/cyclicgc.pxi" + ((".*gc_refs.*") "" ) + ((".*PyGC_Head.*") "")) + #t)))) (build-system python-build-system) (arguments `(#:phases @@ -2482,6 +2494,8 @@ scientific applications modeled by partial differential equations.") #t)) (add-before 'check 'mpi-setup ,%openmpi-setup)))) + (native-inputs + `(("python-cython" ,python-cython))) (inputs `(("petsc" ,petsc-openmpi) ("python-numpy" ,python-numpy))) @@ -2895,14 +2909,14 @@ easy-to-write markup language for mathematics.") (define-public superlu (package (name "superlu") - (version "5.2.1") + (version "5.2.2") (source (origin (method url-fetch) (uri (string-append "https://portal.nersc.gov/project/sparse/superlu/" "superlu_" version ".tar.gz")) (sha256 - (base32 "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8")) + (base32 "13520vk6fqspyl22cq4ak2jh3rlmhja4czq56j75fdx65fkk80s7")) (modules '((guix build utils))) (snippet ;; Replace the non-free implementation of MC64 with a stub adapted @@ -4703,7 +4717,7 @@ as equations, scalars, vectors, and matrices.") (define-public z3 (package (name "z3") - (version "4.8.8") + (version "4.8.9") (home-page "https://github.com/Z3Prover/z3") (source (origin (method git-fetch) @@ -4712,7 +4726,7 @@ as equations, scalars, vectors, and matrices.") (file-name (git-file-name name version)) (sha256 (base32 - "1rn538ghqwxq0v8i6578j8mflk6fyv0cp4hjfqynzvinjbps56da")))) + "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx")))) (build-system gnu-build-system) (arguments `(#:imported-modules ((guix build python-build-system) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 7fe58094c0..cb1cdc4b5c 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -743,7 +743,8 @@ of xmpppy.") (version-major+minor version) "/gajim-" version ".tar.gz")) (sha256 - (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx")))) + (base32 "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx")) + (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments `(#:imported-modules @@ -756,16 +757,6 @@ of xmpppy.") (guix build utils)) #:phases (modify-phases %standard-phases - (add-after 'unpack 'add-plugin-dirs - (lambda _ - (substitute* "gajim/common/configpaths.py" - (("_paths\\['PLUGINS_USER'\\]\\]") - "_paths['PLUGINS_USER']] + \ -([os.getenv('GAJIM_PLUGIN_PATH')] \ -if os.getenv('GAJIM_PLUGIN_PATH') \ -and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() \ -else [])")) - #t)) (replace 'check (lambda _ ;; Tests require a running X server. @@ -859,7 +850,7 @@ and OpenPGP) and available in 29 languages.") (define-public gajim-omemo (package (name "gajim-omemo") - (version "2.7.9") + (version "2.6.80") (source (origin (method url-fetch/zipbomb) @@ -868,7 +859,7 @@ and OpenPGP) and available in 29 languages.") "https://ftp.gajim.org/plugins_releases/omemo_" version ".zip")) (sha256 - (base32 "19si2v5yrxpn2m0f684npsg0iiyl2h3r5hbxyrxv4k3acmfmhb3z")))) + (base32 "179hgx091c12258335znn1540jhp4z3n3wv5ksrgqq7l3jgc93d7")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -897,7 +888,7 @@ multi-client end-to-end encryption.") (define-public gajim-openpgp (package (name "gajim-openpgp") - (version "1.3.5") + (version "1.2.14") (source (origin (method url-fetch/zipbomb) @@ -906,7 +897,7 @@ multi-client end-to-end encryption.") "https://ftp.gajim.org/plugins_releases/openpgp_" version ".zip")) (sha256 - (base32 "1jvpl2gjl5xxvsgxpmvh3mn2mm142dg2hknakkc32swb7l1fqx5m")))) + (base32 "0wdjpf1i4pvl4ha4plfpywwi9aw5n2mhrpv8mmbidpawxqfbd94b")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -931,20 +922,20 @@ Encryption to Gajim.") (define-public dino (package (name "dino") - (version "0.1.0") - (outputs '("out" "debug")) + (version "0.2.0") (source (origin (method url-fetch) - (uri (string-append "https://github.com/dino/dino/releases/download/v" - version "/dino-" version ".tar.gz")) + (uri + (string-append "https://github.com/dino/dino/releases/download/v" + version "/dino-" version ".tar.gz")) (sha256 - (base32 - "0dcq2jhpywgxrp9x1qqmrl2z50hazspqj547b9zz70apy3y4418h")))) + (base32 "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn")))) (build-system cmake-build-system) + (outputs '("out" "debug")) (arguments `(#:tests? #f - #:parallel-build? #f ; not supported + #:parallel-build? #f ; not supported #:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils)) @@ -955,10 +946,21 @@ Encryption to Gajim.") (modify-phases %standard-phases (add-after 'install 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("vala" ,vala))) (inputs - `(("libgee" ,libgee) - ("libsignal-protocol-c" ,libsignal-protocol-c) + `(("glib" ,glib) + ("glib-networking" ,glib-networking) + ("gpgme" ,gpgme) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("gtk+" ,gtk+) ("libgcrypt" ,libgcrypt) + ("libgee" ,libgee) + ("libsignal-protocol-c" ,libsignal-protocol-c) ("libsoup" ,libsoup) ("qrencode" ,qrencode) ("sqlite" ,sqlite) @@ -966,15 +968,11 @@ Encryption to Gajim.") ("gtk+" ,gtk+) ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin") - ("vala" ,vala) - ("gettext" ,gettext-minimal))) + (synopsis "Graphical Jabber/XMPP Client using GTK+/Vala") + (description "Dino is a chat client for the desktop. It focuses on providing +a minimal yet reliable Jabber/XMPP experience and having encryption enabled by +default.") (home-page "https://dino.im") - (synopsis "Graphical Jabber (XMPP) client") - (description "Dino is a Jabber (XMPP) client which aims to fit well into -a graphical desktop environment like GNOME.") (license license:gpl3+))) (define-public prosody @@ -2373,7 +2371,7 @@ support for high performance Telegram Bot creation.") (define-public chatty (package (name "chatty") - (version "0.1.16") + (version "0.1.17") (source (origin (method git-fetch) (uri (git-reference @@ -2382,7 +2380,7 @@ support for high performance Telegram Bot creation.") (file-name (git-file-name name version)) (sha256 (base32 - "085hb3ii1cy0jb3f0mim25v5r5w3gpfsdpjid5dmrpw4gi88aa2x")))) + "0ba1rw8a3vif9k3570hxjfm25vqys3vk3f6g8z5irklwq4bi6lmn")))) (build-system meson-build-system) (arguments '(#:phases diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 96a4d8be47..919e7f1449 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -158,7 +158,7 @@ etc. via a Web interface. Features include: (define-public zabbix-agentd (package (name "zabbix-agentd") - (version "5.2.0") + (version "5.2.1") (source (origin (method url-fetch) @@ -166,7 +166,7 @@ etc. via a Web interface. Features include: "https://cdn.zabbix.com/zabbix/sources/stable/" (version-major+minor version) "/zabbix-" version ".tar.gz")) (sha256 - (base32 "168yi9igwkb4jcdw38kvp85n8mxnlg2n7lkrgaycp8b0dlgjnidl")))) + (base32 "0rz5hg0r2m6qc0dj9b57g96dgilbg8i0rjhm4v9025v51jkby3xq")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index b4e1182e52..4944c960a6 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -104,7 +104,7 @@ interfacing MPD in the C, C++ & Objective C languages.") (define-public mpd (package (name "mpd") - (version "0.22.2") + (version "0.22.3") (source (origin (method url-fetch) (uri @@ -113,7 +113,7 @@ interfacing MPD in the C, C++ & Objective C languages.") "/mpd-" version ".tar.xz")) (sha256 (base32 - "0dldj7r58a3zxbvhs188p8mb4wcffnp66kpnglm4vwcp0wpmn6rn")))) + "1kvcarqijyw07bdqszjsn62plmncaid5az0q542p6rsygc1i501k")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=enabled"))) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 0d72c24d92..2ffe435109 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2019 Riku Viitanen <riku.viitanen0@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -944,6 +945,60 @@ engine (except effects) that can be used for layering or split patches.") you to define complex tempo maps for entire songs or performances.") (license license:gpl2+))) +(define-public glyr + (package + (name "glyr") + (version "1.0.10") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sahib/glyr") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1miwbqzkhg0v3zysrwh60pj9sv6ci4lzq2vq2hhc6pc6hdyh8xyr")))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DTEST=true") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda _ + (substitute* "spec/capi/check_api.c" + (("fail_unless \\(c != NULL,\"Could not load www.google.de\"\\);") + "")) + #t)) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; capi tests + (invoke "bin/check_api") + ;; (invoke "bin/check_opt") TODO Very dependent on the network + (invoke "bin/check_dbc")) + + ;; TODO Work out how to run the spec/providers Python tests + #t))))) + (inputs + `(("glib" ,glib) + ("curl" ,curl) + ("sqlite" ,sqlite))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("check" ,check))) + (home-page "https://github.com/sahib/glyr") + (synopsis "Search engine for music related metadata") + (description + "Glyr comes both in a command-line interface tool (@command{glyrc}) and +as a C library (libglyr). + +The sort of metadata glyr is searching (and downloading) is usually the data +you see in your musicplayer. And indeed, originally it was written to serve +as internally library for a musicplayer, but has been extended to work as a +standalone program which is able to download cover art, lyrics, photos, +biographies, reviews and more.") + (license license:lgpl3+))) + (define-public gtklick (package (name "gtklick") @@ -1328,7 +1383,7 @@ complete studio.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/onkelDead/tascam-gtk.git") + (url "https://github.com/onkelDead/tascam-gtk") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1804,17 +1859,30 @@ special variant of additive synthesis.") (base32 "1882pfcmf3rqg3vd4qflzkppcv158d748i603spqjbxqi8z7x7w0")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-file-names + (lambda _ + (substitute* "src/GUI/editor_pane.c" + (("/usr/bin/unzip") (which "unzip"))) + (substitute* "src/GUI/GUI.cc" + (("/usr/bin/which") (which "which"))) + #t))))) (inputs `(("alsa-lib" ,alsa-lib) + ("gtk+" ,gtk+-2) + ("gtkmm" ,gtkmm-2) ("jack" ,jack-1) - ("lv2" ,lv2) ("lash" ,lash) ("libsndfile" ,libsndfile) - ("gtk+" ,gtk+-2) - ("gtkmm" ,gtkmm-2))) + ("lv2" ,lv2) + ;; External commands invoked at run time. + ("unzip" ,unzip) + ("which" ,which))) (native-inputs - `(("pkg-config" ,pkg-config) - ("intltool" ,intltool))) + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) (home-page "https://amsynth.github.io") (synopsis "Analog modeling synthesizer") (description @@ -5084,7 +5152,7 @@ for integration into status line generators or other command-line tools.") (method git-fetch) (uri (git-reference (url - "https://github.com/openAVproductions/openAV-ArtyFX.git") + "https://github.com/openAVproductions/openAV-ArtyFX") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index fefb9a5bf8..5468398e40 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -97,6 +97,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) @@ -135,12 +136,39 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) - #:use-module (gnu packages version-control) #:use-module (gnu packages web) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (ice-9 match)) +(define-public axel + (package + (name "axel") + (version "2.17.9") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/axel-download-accelerator/axel/" + "releases/download/v" version "/" + "axel-" version ".tar.xz")) + (sha256 + (base32 "0m1smb9rmw9w2fcfcf0162qyffx6a1x0j612sg3fydflandlsdpi")))) + (build-system gnu-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("libressl" ,libressl))) + (home-page "https://github.com/axel-download-accelerator/axel") + (synopsis "Light command line download accelerator") + (description + "Axel tries to accelerate the download process by using multiple +connections per file, and can also balance the load between different +servers. It tries to be as light as possible, so it might be useful +on byte-critical systems. It supports HTTP, HTTPS, FTP and FTPS +protocols.") + (license license:gpl2+))) + ;; This package does not have a release yet. ;; But this is required to provide a feature in PipeWire. (define-public libcamera @@ -321,7 +349,7 @@ supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://.") (method git-fetch) (uri (git-reference - (url "https://github.com/Haivision/srt.git") + (url "https://github.com/Haivision/srt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -358,7 +386,7 @@ performance across unpredictable networks, such as the Internet.") (method git-fetch) (uri (git-reference - (url "https://github.com/Haivision/srt.git") + (url "https://github.com/Haivision/srt") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -374,7 +402,7 @@ performance across unpredictable networks, such as the Internet.") (method git-fetch) (uri (git-reference - (url "https://github.com/sctp/lksctp-tools.git") + (url "https://github.com/sctp/lksctp-tools") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -430,7 +458,7 @@ at the link-layer level.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/nanomsg/nng.git") + (url "https://github.com/nanomsg/nng") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -473,7 +501,7 @@ publish/subscribe, RPC-style request/reply, or service discovery.") (method git-fetch) (uri (git-reference - (url "https://github.com/nanomsg/nanomsg.git") + (url "https://github.com/nanomsg/nanomsg") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -871,6 +899,7 @@ transparently check connection attempts against an access control list.") (base32 "18km71p77jm1w7wly2a5mxvphjb0f2l6s08cg382x55f6zdqb4lx")))) (build-system gnu-build-system) + (arguments '(#:configure-flags '("--disable-static"))) (home-page "https://zeromq.org") (synopsis "Library for message-based applications") (description @@ -1822,7 +1851,7 @@ private (reserved).") (define-public perl-net-dns (package (name "perl-net-dns") - (version "1.27") + (version "1.28") (source (origin (method url-fetch) @@ -1833,7 +1862,7 @@ private (reserved).") (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-" version ".tar.gz"))) (sha256 - (base32 "0hdx5ajr34f39rycai090y9w8gq9v0shgziynaaj0rzk21vjfdpk")))) + (base32 "0kh2qbhxv005pqb35mdk2bld7cg7xnxl12qvdwv30sgd91aqica7")))) (build-system perl-build-system) (inputs `(("perl-digest-hmac" ,perl-digest-hmac))) @@ -2141,14 +2170,14 @@ HTTP proxies.") (define-public enet (package (name "enet") - (version "1.3.16") + (version "1.3.17") (source (origin (method url-fetch) (uri (string-append "http://enet.bespin.org/download/" "enet-" version ".tar.gz")) (sha256 - (base32 "1lggc82rbzscci057dqqyhkbq4j6mr5k01hbrvn06jkzc2xpxdxv")))) + (base32 "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3821,3 +3850,97 @@ stamps.") client and server. It allows you to use remote block devices over a TCP/IP network.") (license license:gpl2))) + +(define-public yggdrasil + (package + (name "yggdrasil") + (version "0.3.15") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/yggdrasil-network/yggdrasil-go") + (commit (string-append "v" version)) + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gk7gy8yq5nrnblv4imxzzm2hac4ri0hlw19ajfbc1zll5kj32gf")) + (patches (search-patches "yggdrasil-extra-config.patch")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/yggdrasil-network/yggdrasil-go" + ;; TODO: figure out how tests are run + #:tests? #f + #:install-source? #f + #:phases (modify-phases %standard-phases + (replace 'build + (lambda _ + (for-each + (lambda (c) + (invoke + "go" "build" "-v" "-ldflags=-s -w" + (string-append + "github.com/yggdrasil-network/yggdrasil-go/cmd/" c))) + (list "yggdrasil" "yggdrasilctl")) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/")) + (doc (string-append out "/share/doc/yggdrasil/"))) + (mkdir-p bin) + (for-each + (lambda (f) + (install-file f bin)) + (list "yggdrasil" "yggdrasilctl")) + (mkdir-p doc) + (copy-recursively + (string-append + "src/github.com/yggdrasil-network/yggdrasil-go/" + "doc/yggdrasil-network.github.io") + doc)) + #t))))) + ;; https://github.com/kardianos/minwinsvc is windows only + (propagated-inputs + `(("go-github-com-arceliar-phony" ,go-github-com-arceliar-phony) + ("go-github-com-cheggaaa-pb" ,go-github-com-cheggaaa-pb) + ("go-github-com-gologme-log" ,go-github-com-gologme-log) + ("go-github-com-hashicorp-go-syslog" ,go-github-com-hashicorp-go-syslog) + ("go-github-com-hjson-hjson-go" ,go-github-com-hjson-hjson-go) + ("go-github-com-kardianos-minwinsvc" ,go-github-com-kardianos-minwinsvc) + ("go-github-com-mitchellh-mapstructure" + ,go-github-com-mitchellh-mapstructure) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-zx2c4-com-wireguard" ,go-golang-zx2c4-com-wireguard) + ("go-netlink" ,go-netlink) + ("go-netns" ,go-netns))) + (home-page "https://yggdrasil-network.github.io/blog.html") + (synopsis + "Experiment in scalable routing as an encrypted IPv6 overlay network") + (description + "Yggdrasil is an early-stage implementation of a fully end-to-end encrypted +IPv6 network. It is lightweight, self-arranging, supported on multiple +platforms and allows pretty much any IPv6-capable application to communicate +securely with other Yggdrasil nodes. Yggdrasil does not require you to have +IPv6 Internet connectivity - it also works over IPv4.") + (license + ;; As a special exception to the GNU Lesser General Public License + ;; version 3 ("LGPL3"), the copyright holders of this Library give you + ;; permission to convey to a third party a Combined Work that links + ;; statically or dynamically to this Library without providing any Minimal + ;; Corresponding Source or Minimal Application Code as set out in 4d or + ;; providing the installation information set out in section 4e, provided + ;; that you comply with the other provisions of LGPL3 and provided that you + ;; meet, for the Application the terms and conditions of the license(s) + ;; which apply to the Application. Except as stated in this special + ;; exception, the provisions of LGPL3 will continue to comply in full to + ;; this Library. If you modify this Library, you may apply this exception + ;; to your version of this Library, but you are not obliged to do so. If + ;; you do not wish to do so, delete this exception statement from your + ;; version. This exception does not (and cannot) modify any license terms + ;; which apply to the Application, with which you must still comply + license:lgpl3))) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index f0b989b88a..f04e39bbd5 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -207,14 +207,14 @@ devices.") (define-public node-10.22 (package (inherit node) - (version "10.22.0") + (version "10.22.1") (source (origin (inherit (package-source node)) (uri (string-append "https://nodejs.org/dist/v" version "/node-v" version ".tar.xz")) (sha256 (base32 - "1nz18fa550li10r0kzsm28c2rvvq61nq8bqdygip0rmvbi2paxg0")))) + "0pr569qiabr4m7k38s7rwi3iyzrc5jmx19z2z0k7n4xfvhjlfzzl")))) (inputs (alist-replace "nghttp2" (list nghttp2-1.41 "lib") (package-inputs node))))) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 30add4f6b4..369e819573 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -133,10 +133,10 @@ "/lib/ocaml/site-lib")) #:phases (modify-phases %standard-phases (delete 'configure)))) -(define-public ocaml-4.09 +(define-public ocaml-4.11 (package (name "ocaml") - (version "4.09.0") + (version "4.11.1") (source (origin (method url-fetch) (uri (string-append @@ -145,7 +145,7 @@ "/ocaml-" version ".tar.xz")) (sha256 (base32 - "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))) + "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa")))) (build-system gnu-build-system) (native-search-paths (list (search-path-specification @@ -203,6 +203,20 @@ functional, imperative and object-oriented styles of programming.") ;; distributed under lgpl2.0. (license (list license:qpl license:lgpl2.0)))) +(define-public ocaml-4.09 + (package + (inherit ocaml-4.11) + (version "4.09.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://caml.inria.fr/pub/distrib/ocaml-" + (version-major+minor version) + "/ocaml-" version ".tar.xz")) + (sha256 + (base32 + "1v3z5ar326f3hzvpfljg4xj8b9lmbrl53fn57yih1bkbx3gr3yzj")))))) + (define-public ocaml-4.07 (package (inherit ocaml-4.09) @@ -230,7 +244,7 @@ functional, imperative and object-oriented styles of programming.") "--prefix" out "--mandir" mandir)))))))))) -(define-public ocaml ocaml-4.09) +(define-public ocaml ocaml-4.11) (define-public ocamlbuild (package @@ -999,6 +1013,14 @@ compilers that can directly deal with packages.") `(("m4" ,m4) ("ocaml" ,ocaml-4.07))))) +(define-public ocaml4.09-findlib + (package + (inherit ocaml-findlib) + (name "ocaml4.09-findlib") + (native-inputs + `(("m4" ,m4) + ("ocaml" ,ocaml-4.09))))) + ;; note that some tests may hang for no obvious reason. (define-public ocaml-ounit (package @@ -1293,6 +1315,9 @@ release of Jane Street packages. It reads metadata from @file{dune} files following a very simple s-expression syntax.") (license license:expat))) +(define ocaml4.09-dune-bootstrap + (package-with-ocaml4.09 dune-bootstrap)) + (define-public dune-configurator (package (inherit dune-bootstrap) @@ -1305,6 +1330,7 @@ following a very simple s-expression syntax.") #:tests? #f)) (propagated-inputs `(("ocaml-csexp" ,ocaml-csexp))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator)))) (synopsis "Dune helper library for gathering system configuration") (description "Dune-configurator is a small library that helps writing OCaml scripts that test features available on the system, in order to generate @@ -1317,12 +1343,32 @@ config.h files for instance. Among other things, dune-configurator allows one t @item generate config.h file @end itemize"))) +(define-public ocaml4.09-dune-configurator + (package + (inherit dune-configurator) + (name "ocaml4.09-dune-configurator") + (arguments + `(#:package "dune-configurator" + #:tests? #f + #:dune ,ocaml4.09-dune-bootstrap + #:ocaml ,ocaml-4.09 + #:findlib ,ocaml4.09-findlib)) + (propagated-inputs + `(("ocaml-csexp" ,ocaml4.09-csexp))))) + (define-public dune (package (inherit dune-bootstrap) (propagated-inputs `(("dune-configurator" ,dune-configurator))) - (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune)))))) + (properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune)) + (ocaml4.09-variant . ,(delay ocaml4.09-dune)))))) + +(define-public ocaml4.09-dune + (package + (inherit ocaml4.09-dune-bootstrap) + (propagated-inputs + `(("dune-configurator" ,dune-configurator))))) (define-public ocaml4.07-dune (package @@ -1363,6 +1409,7 @@ config.h files for instance. Among other things, dune-configurator allows one t #t))))) (propagated-inputs `(("ocaml-result" ,ocaml-result))) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp)))) (home-page "https://github.com/ocaml-dune/csexp") (synopsis "Parsing and printing of S-expressions in Canonical form") (description "This library provides minimal support for Canonical @@ -1379,6 +1426,18 @@ To avoid a dependency on a particular S-expression library, the only module of this library is parameterised by the type of S-expressions.") (license license:expat))) +(define-public ocaml4.09-csexp + (package + (inherit ocaml-csexp) + (name "ocaml4.09-csexp") + (arguments + `(#:ocaml ,ocaml-4.09 + #:findlib ,ocaml4.09-findlib + ,@(substitute-keyword-arguments (package-arguments ocaml-csexp) + ((#:dune _) ocaml4.09-dune-bootstrap)))) + (propagated-inputs + `(("ocaml-result" ,ocaml4.09-result))))) + (define-public ocaml-migrate-parsetree (package (name "ocaml-migrate-parsetree") @@ -1423,7 +1482,8 @@ functions to the next and/or previous version.") "07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66")))) (build-system dune-build-system) (arguments - `(#:test-target ".")) + `(#:test-target "." + #:package "ppx_tools_versioned")) (propagated-inputs `(("ocaml-migrate-parsetree" ,ocaml-migrate-parsetree))) (properties `((upstream-name . "ppx_tools_versioned"))) @@ -1487,12 +1547,23 @@ powerful.") (arguments `(#:test-target "." #:dune ,dune-bootstrap)) + (properties `((ocaml4.09-variant . ,(delay ocaml4.09-result)))) (home-page "https://github.com/janestreet/result") (synopsis "Compatibility Result module") (description "Uses the new result type defined in OCaml >= 4.03 while staying compatible with older version of OCaml should use the Result module defined in this library.") (license license:bsd-3))) + +(define-public ocaml4.09-result + (package + (inherit ocaml-result) + (name "ocaml4.09-result") + (arguments + `(#:test-target "." + #:dune ,ocaml4.09-dune-bootstrap + #:ocaml ,ocaml-4.09 + #:findlib ,ocaml4.09-findlib)))) (define-public ocaml-topkg (package @@ -2381,21 +2452,28 @@ radix-64 representation. It is specified in RFC 4648.") (base32 "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii")))) (build-system ocaml-build-system) (arguments - `(#:phases + `(#:tests? #f; no tests + #:phases (modify-phases %standard-phases - (add-after 'unpack 'disable-safe-string - ;; Work around ‘Error: This expression has type string but an - ;; expression was expected of type bytes’ since OCaml 4.06. + (delete 'configure) + (replace 'build + ;; This package uses pre-generated setup.ml by oasis, but is + ;; a dependency of oasis. the pre-generated setup.ml is broken + ;; with recent versions of OCaml, so we perform a bootstrap instead. (lambda _ - (setenv "OCAMLPARAM" "safe-string=0,_") + (substitute* "src/OCamlifyConfig.ml.ab" + (("$pkg_version") ,version)) + (rename-file "src/OCamlifyConfig.ml.ab" "src/OCamlifyConfig.ml") + (with-directory-excursion "src" + (invoke "ocamlc" "OCamlifyConfig.ml" "ocamlify.ml" "-o" + "ocamlify")) #t)) - (delete 'check) ; tests are run during the build - (replace 'configure + (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (invoke "ocaml" "setup.ml" "-configure" "--prefix" - (assoc-ref outputs "out"))))))) - (native-inputs - `(("ocamlbuild" ,ocamlbuild))) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (mkdir-p bin) + (install-file "src/ocamlify" bin) + #t)))))) (home-page "https://forge.ocamlcore.org/projects/ocamlify") (synopsis "Include files in OCaml code") (description "OCamlify creates OCaml source code by including @@ -5719,6 +5797,12 @@ convenience functions for vectors and matrices.") (url "https://github.com/Chris00/ocaml-cairo") (commit version))) (file-name (git-file-name name version)) + (patches + (search-patches + ;; NOTE: This patch will be obsolete on the + ;; next tagged release. Remove it at that + ;; point. + "ocaml-cairo2-caml_ba_array-fix.patch")) (sha256 (base32 "0wzysis9fa850s68qh8vrvqc6svgllhwra3kzll2ibv0wmdqrich")))) @@ -5742,7 +5826,7 @@ and SVG file output.") (define-public lablgtk3 (package (name "lablgtk") - (version "3.0.beta8") + (version "3.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -5751,7 +5835,7 @@ and SVG file output.") (file-name (git-file-name name version)) (sha256 (base32 - "08pgwnia240i2rw1rbgiahg673kwa7b6bvhsg3z4b47xr5sh9pvz")))) + "11qfc39cmwfwfpwmjh6wh98zwdv6p73bv8hqwcsss869vs1r7gmn")))) (build-system dune-build-system) (arguments `(#:tests? #t diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index d0294cdef3..13b92936d0 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -45,47 +47,64 @@ (define-public python-bandit (package (name "python-bandit") - (version "1.4.0") + (version "1.6.2") (source (origin (method url-fetch) (uri (pypi-uri "bandit" version)) (sha256 (base32 - "1m5bm42120zyazky4k0lp3d9r0jwhjmp6sb108xfr0vz952p15yb")))) + "0rb034c99pyhb4a60z7f2kz40cjydhm8m9v2blaal1rmhlam7rs1")))) (build-system python-build-system) (arguments - `(#:phases (modify-phases %standard-phases - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Tests require the 'bandit' executable in PATH. - ;; It's only built during install time. - (add-installed-pythonpath inputs outputs) - (setenv "PATH" (string-append (assoc-ref outputs "out") - "/bin:" (getenv "PATH"))) - (invoke "python" "setup.py" "testr")))))) + ;; The tests are disabled to avoid a circular dependency with + ;; python-stestr. + `(#:tests? #f)) (propagated-inputs - `(("python-gitpython" ,python-gitpython) - ("python-pyyaml" ,python-pyyaml) - ("python-six" ,python-six) - ("python-stevedore" ,python-stevedore))) + `(("python-gitpython" ,python-gitpython) + ("python-pyyaml" ,python-pyyaml) + ("python-six" ,python-six) + ("python-stevedore" ,python-stevedore))) (native-inputs - `(;; Tests. - ("python-beautifulsoup4" ,python-beautifulsoup4) - ("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-subunit" ,python-subunit) - ("python-testrepository" ,python-testrepository) - ("python-testscenarios" ,python-testscenarios) - ("python-testtools" ,python-testtools))) + `(("python-pbr" ,python-pbr))) (home-page "https://github.com/PyCQA/bandit") (synopsis "Security oriented static analyser for python code") - (description - "Bandit is a tool designed to find common security issues in Python code. -To do this Bandit processes each file, builds an AST from it, and runs -appropriate plugins against the AST nodes. Once Bandit has finished scanning -all the files it generates a report.") + (description "Bandit is a tool designed to find common security issues in +Python code. To do this Bandit processes each file, builds an AST from it, +and runs appropriate plugins against the AST nodes. Once Bandit has finished +scanning all the files it generates a report.") + (license asl2.0))) + +(define-public python-cliff + (package + (name "python-cliff") + (version "3.5.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cliff" version)) + (sha256 + (base32 + "0n8pzr0mnn9lq2mykds69ij2xrn0fsirh4ndmkx0mzydbx5niysv")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-cmd2" ,python-cmd2) + ("python-prettytable" ,python-prettytable) + ("python-pyparsing" ,python-pyparsing) + ("python-pyyaml" ,python-pyyaml) + ("python-bandit" ,python-bandit) + ("python-stevedore" ,python-stevedore))) + (home-page "https://opendev.org/openstack/cliff") + (synopsis "Framework for building command line programs") + (description "The @code{cliff} framework allows creating multi-level +commands such as those of @command{subversion} and @command{git}, where the +main program handles some basic argument parsing and then invokes a +sub-command to do the work. It uses plugins to define sub-commands, output +formatters, and other extensions.") (license asl2.0))) (define-public python-debtcollector @@ -131,39 +150,30 @@ manner.") (define-public python-hacking (package (name "python-hacking") - (version "1.1.0") + (version "4.0.0") (source (origin (method url-fetch) (uri (pypi-uri "hacking" version)) (sha256 (base32 - "1vlgh81v4vsw3q3cf7qggsp043vq16knp203lrll82h7l7rhd8r3")))) + "062rvbkvbavqqz55f7q00ikwipkn5j0rdls1rrajdbfwgckjcrsm")))) (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'delete-broken-test - (lambda _ - ;; TODO: Just one test fails: - ;; hacking.tests.test_doctest.HackingTestCase.test_pycodestyle - ;; (H403-hacking_docstring_multiline_end-line-5) - (delete-file "hacking/tests/test_doctest.py") - #t))))) - (propagated-inputs - `(("python-flake8" ,python-flake8-2.6) - ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) - ("python-pbr" ,python-pbr) - ("python-pep8-1.5.7" ,python-pep8-1.5.7) - ("python-pyflakes-1.2" ,python-pyflakes-1.2) - ("python-six" ,python-six))) + (propagated-inputs + `(("python-flake8" ,python-flake8))) (native-inputs `( ;; Tests + ("python-coverage" ,python-coverage) + ("python-ddt" ,python-ddt) + ("python-dnspython" ,python-dnspython) + ("python-fixtures" ,python-fixtures) ("python-eventlet" ,python-eventlet) ("python-mock" ,python-mock) - ("python-reno" ,python-reno) - ("python-testrepository" ,python-testrepository) - ("python-testscenarios" ,python-testscenarios))) + ("python-monotonic" ,python-monotonic) + ("python-subunit" ,python-subunit) + ("python-stestr" ,python-stestr) + ("python-testscenarios" ,python-testscenarios) + ("python-testtools" ,python-testtools))) (home-page "https://github.com/openstack-dev/hacking") (synopsis "OpenStack hacking guideline enforcement") (description @@ -172,9 +182,6 @@ manner.") guidelines}.") (license asl2.0))) -(define-public python2-hacking - (package-with-python2 python-hacking)) - (define-public python-mox3 (package (name "python-mox3") @@ -310,22 +317,21 @@ to docs.openstack.org and developer.openstack.org.") (define-public python-stevedore (package (name "python-stevedore") - (version "1.28.0") + (version "3.2.2") (source (origin (method url-fetch) (uri (pypi-uri "stevedore" version)) (sha256 (base32 - "02ynfgwma84g59834dmvzr39mcppy5s229zf1w23c0qngf753izi")))) + "1w11lm293afzb73iq0ba9wnmr2rjwymnhr92km4a4xrs7a5qcigq")))) (build-system python-build-system) - (propagated-inputs - `(("python-pbr" ,python-pbr) - ("python-six" ,python-six))) + (arguments + ;; The tests are disabled to avoid a circular dependency with + ;; python-stestr. + `(#:tests? #f)) (native-inputs - `(("python-mock" ,python-mock) - ("python-sphinx" ,python-sphinx) - ("python-testrepository" ,python-testrepository))) + `(("python-pbr" ,python-pbr))) (home-page "https://github.com/dreamhost/stevedore") (synopsis "Manage dynamic plugins for Python applications") (description @@ -427,22 +433,33 @@ common features used in Tempest.") (define-public python-oslo.context (package (name "python-oslo.context") - (version "2.20.0") + (version "3.1.1") (source (origin (method url-fetch) (uri (pypi-uri "oslo.context" version)) (sha256 (base32 - "0iiq9rpwg6wrdqnhf3d8z8g0g7fjhs5zn6qw6igvxplz2c3rbvvx")))) + "1l2z186rkd9acrb2ygf53yrdc1lgf7cy1akbhm21kgkzind4p2r6")))) (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "test-requirements.txt" + (("hacking>=3.0.1,<3.1.0") + "hacking>=3.0.1")) + #t))))) (propagated-inputs - `(("python-debtcollector" ,python-debtcollector) - ("python-pbr" ,python-pbr))) + `(("python-debtcollector" ,python-debtcollector))) (native-inputs - `(("python-fixtures" ,python-fixtures) + `(("python-bandit" ,python-bandit) + ("python-coverage" ,python-coverage) + ("python-fixtures" ,python-fixtures) ("python-hacking" ,python-hacking) - ("python-oslotest" ,python-oslotest))) + ("python-oslotest" ,python-oslotest) + ("python-pbr" ,python-pbr) + ("python-stestr" ,python-stestr))) (home-page "https://launchpad.net/oslo") (synopsis "Oslo context library") (description @@ -600,70 +617,62 @@ and building documentation from them.") (define-public python-oslosphinx (package (name "python-oslosphinx") - (version "4.10.0") + (version "4.18.0") (source (origin (method url-fetch) (uri (pypi-uri "oslosphinx" version)) (sha256 (base32 - "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl")))) + "1xm41857vzrzjmnyi6bqirg4i5qa61v7wxcsdc4q1nzgr3ndgz5k")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases - (replace 'check + (add-after 'unpack 'relax-requirements (lambda _ - ;; Note: Upstream tests would have also built the release notes. - ;; That only would work if we were in a git checkout. - ;; Therefore, we don't do it here. - (invoke "python" "setup.py" "build_sphinx")))))) + (substitute* "test-requirements.txt" + (("hacking!=0.13.0,<0.14,>=0.12.0") + "hacking!=0.13.0,>=0.12.0")) + #t))))) (propagated-inputs - `(("python-requests" ,python-requests))) + `(("python-requests" ,python-requests))) (native-inputs - `(("python-pbr" ,python-pbr) - ("python-docutils" ,python-docutils) - ("python-hacking" ,python-hacking) - ("python-sphinx" ,python-sphinx))) + `(("python-hacking" ,python-hacking) + ("python-openstackdocstheme" ,python-openstackdocstheme) + ("python-pbr" ,python-pbr) + ("python-reno" ,python-reno) + ("python-sphinx" ,python-sphinx))) (home-page "https://www.openstack.org/") (synopsis "OpenStack sphinx extensions and theme") - (description - "This package provides themes and extensions for Sphinx documentation -from the OpenStack project.") + (description "This package provides themes and extensions for Sphinx +documentation from the OpenStack project.") (license asl2.0))) -(define-public python2-oslosphinx - (package-with-python2 python-oslosphinx)) - (define-public python-oslotest (package (name "python-oslotest") - (version "3.4.0") + (version "4.4.1") (source - (origin - (method url-fetch) - (uri (pypi-uri "oslotest" version)) - (sha256 - (base32 - "1pp8lq61d548cxcqi451czvrz5i5b3hyi2ry00wmngdgiswcqj1h")))) + (origin + (method url-fetch) + (uri (pypi-uri "oslotest" version)) + (sha256 + (base32 + "0r50sz55m8ljv2vk1k7sp88iz1iqq4p9w6kb8hn8g8c50r9zdi5i")))) (build-system python-build-system) + (arguments + ;; The tests are disabled to avoid a circular dependency with oslo.config. + `(#:tests? #f)) (propagated-inputs - `(("python-fixtures" ,python-fixtures) - ("python-mock" ,python-mock) - ("python-mox3" ,python-mox3) - ("python-os-client-config" ,python-os-client-config) - ("python-six" ,python-six) - ("python-subunit" ,python-subunit) - ("python-testrepository" ,python-testrepository) - ("python-testtools" ,python-testtools))) - (native-inputs - `(("python-pbr" ,python-pbr) - ("python-testscenarios" ,python-testscenarios))) + `(("python-fixtures" ,python-fixtures) + ("python-six" ,python-six) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools))) (home-page "https://launchpad.net/oslo") (synopsis "Oslo test framework") - (description - "The Oslo Test framework provides common fixtures, support for debugging, -and better support for mocking results.") + (description "The Oslo Test framework provides common fixtures, support +for debugging, and better support for mocking results.") (license asl2.0))) (define-public python2-oslotest diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 1a1ad97f30..6fd789ef53 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -572,14 +572,14 @@ out) and returning a package that uses that as its 'source'." (define-public nix (package (name "nix") - (version "2.3.7") + (version "2.3.8") (source (origin (method url-fetch) - (uri (string-append "http://nixos.org/releases/nix/nix-" + (uri (string-append "https://nixos.org/releases/nix/nix-" version "/nix-" version ".tar.xz")) (sha256 (base32 - "15p50jkss6szinisb7axhxybgfi29sm9grz7mxwair8ljj2553yx")))) + "0amd5nnqslvkfpz042l4ydihw2qsy68nmjbwaagcrggaq4irh4f7")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--sysconfdir=/etc" "--enable-gc") @@ -1015,8 +1015,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "d38698d85174b4594e6dc2f9be50083a50786026") - (revision "4")) + (let ((commit "98f50831612b9d1253ae8ca2bceb547fed373f41") + (revision "5")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1027,7 +1027,7 @@ environments.") (commit commit))) (sha256 (base32 - "1jb36p8bbhiav6nb1qpi90j03qjbvr8akn53am3xbz32ps0hf34j")) + "08xwb5phh14cxgwv4fxcd2hhpjgqxfknm9zkx9qp26zb56w2xzkz")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -1081,6 +1081,7 @@ environments.") ("guix" ,guix) ("guile-prometheus" ,guile-prometheus) ("guile-fibers" ,guile-fibers) + ("guile-lib" ,guile-lib) ("guile" ,@(assoc-ref (package-native-inputs guix) "guile")))) (inputs `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile")) @@ -1091,6 +1092,7 @@ environments.") ("guile-prometheus" ,guile-prometheus) ("guile-gcrypt" ,guile-gcrypt) ("guile-json" ,guile-json-4) + ("guile-lib" ,guile-lib) ("guile-lzlib" ,guile-lzlib) ("guile-zlib" ,guile-zlib) ("guile-sqlite3" ,guile-sqlite3) @@ -1271,7 +1273,7 @@ for packaging and deployment of cross-compiled Windows applications.") (define-public libostree (package (name "libostree") - (version "2020.7") + (version "2020.8") (source (origin (method url-fetch) @@ -1279,7 +1281,7 @@ for packaging and deployment of cross-compiled Windows applications.") "https://github.com/ostreedev/ostree/releases/download/v" (version-major+minor version) "/libostree-" version ".tar.xz")) (sha256 - (base32 "0clriq2ypz1fycd6mpjyrhzid44svzpzw0amnank593h69b216ax")))) + (base32 "16v73v63h16ika73kgh2cvgm0v27r2d48m932mbj3xm6s295kapx")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index d65155bbde..be88829825 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -55,14 +55,14 @@ (define-public parallel (package (name "parallel") - (version "20200822") + (version "20201122") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n")))) + (base32 "0c7zrb26xhbn48kvxs01qyj1vhwrpzkm11xxvi23njb6qi1bz82d")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/bitcoin-core-python-compat.patch b/gnu/packages/patches/bitcoin-core-python-compat.patch deleted file mode 100644 index 6bf744124d..0000000000 --- a/gnu/packages/patches/bitcoin-core-python-compat.patch +++ /dev/null @@ -1,28 +0,0 @@ -Get rid of deprecation warning emitted by Python 3.8, which causes a test failure(!). - -https://github.com/bitcoin/bitcoin/pull/17931 - -Taken from upstream: - -https://github.com/bitcoin/bitcoin/commit/f117fb00da747147cddfb071c1427a2754c278cd - -diff --git a/test/functional/p2p_invalid_messages.py b/test/functional/p2p_invalid_messages.py -index 20864881c165..07eacf410d88 100755 ---- a/test/functional/p2p_invalid_messages.py -+++ b/test/functional/p2p_invalid_messages.py -@@ -145,13 +145,13 @@ def run_test(self): - def test_magic_bytes(self): - conn = self.nodes[0].add_p2p_connection(P2PDataStore()) - -- def swap_magic_bytes(): -+ async def swap_magic_bytes(): - conn._on_data = lambda: None # Need to ignore all incoming messages from now, since they come with "invalid" magic bytes - conn.magic_bytes = b'\x00\x11\x22\x32' - - # Call .result() to block until the atomic swap is complete, otherwise - # we might run into races later on -- asyncio.run_coroutine_threadsafe(asyncio.coroutine(swap_magic_bytes)(), NetworkThread.network_event_loop).result() -+ asyncio.run_coroutine_threadsafe(swap_magic_bytes(), NetworkThread.network_event_loop).result() - - with self.nodes[0].assert_debug_log(['PROCESSMESSAGE: INVALID MESSAGESTART ping']): - conn.send_message(messages.msg_ping(nonce=0xff)) diff --git a/gnu/packages/patches/eigen-remove-openmp-error-counting.patch b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch new file mode 100644 index 0000000000..556474e8b3 --- /dev/null +++ b/gnu/packages/patches/eigen-remove-openmp-error-counting.patch @@ -0,0 +1,64 @@ +From ef3cc72cb65e2d500459c178c63e349bacfa834f Mon Sep 17 00:00:00 2001 +From: Luke Peterson <hazelnusse@gmail.com> +Date: Thu, 8 Oct 2020 12:16:53 -0700 +Subject: [PATCH] Remove error counting in OpenMP parallelize_gemm + +This resolves a compilation error associated with +Eigen::eigen_assert_exception. It also eliminates the counting of +exceptions that may occur in the OpenMP parallel section. If an +unhandled exception occurs in this section, the behavior is non-conforming +according to the OpenMP specification. +--- + Eigen/src/Core/products/Parallelizer.h | 14 +++++--------- + test/CMakeLists.txt | 2 +- + 2 files changed, 6 insertions(+), 10 deletions(-) + +diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h +index 67b2442b5..a3cc05b77 100644 +--- a/Eigen/src/Core/products/Parallelizer.h ++++ b/Eigen/src/Core/products/Parallelizer.h +@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, + + ei_declare_aligned_stack_constructed_variable(GemmParallelInfo<Index>,info,threads,0); + +- int errorCount = 0; +- #pragma omp parallel num_threads(threads) reduction(+: errorCount) ++ #pragma omp parallel num_threads(threads) + { + Index i = omp_get_thread_num(); + // Note that the actual number of threads might be lower than the number of request ones. +@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, + info[i].lhs_start = r0; + info[i].lhs_length = actualBlockRows; + +- EIGEN_TRY { +- if(transpose) func(c0, actualBlockCols, 0, rows, info); +- else func(0, rows, c0, actualBlockCols, info); +- } EIGEN_CATCH(...) { +- ++errorCount; +- } ++ if(transpose) ++ func(c0, actualBlockCols, 0, rows, info); ++ else ++ func(0, rows, c0, actualBlockCols, info); + } +- if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception()); + #endif + } + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 0747aa6cb..b02577780 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -163,7 +163,7 @@ ei_add_test(constructor) + ei_add_test(linearstructure) + ei_add_test(integer_types) + ei_add_test(unalignedcount) +-if(NOT EIGEN_TEST_NO_EXCEPTIONS) ++if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP) + ei_add_test(exceptions) + endif() + ei_add_test(redux) +-- +GitLab + diff --git a/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch new file mode 100644 index 0000000000..cb3313197c --- /dev/null +++ b/gnu/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch @@ -0,0 +1,11 @@ +--- a/gajim/common/configpaths.py 2020-11-19 12:12:02.004414323 +0100 ++++ a/gajim/common/configpaths.py 2020-11-19 15:34:52.211476895 +0100 +@@ -47,7 +47,7 @@ + return [Path(_paths['PLUGINS_BASE']), + Path('/app/plugins')] + return [Path(_paths['PLUGINS_BASE']), +- Path(_paths['PLUGINS_USER'])] ++ Path(_paths['PLUGINS_USER'])] + ([Path(os.getenv('GAJIM_PLUGIN_PATH'))] if os.getenv('GAJIM_PLUGIN_PATH') and Path(os.getenv('GAJIM_PLUGIN_PATH')).is_dir() else []) + + + def get_paths(type_: PathType) -> Generator[str, None, None]: diff --git a/gnu/packages/patches/gcc-6-fix-buffer-size.patch b/gnu/packages/patches/gcc-6-fix-buffer-size.patch new file mode 100644 index 0000000000..5fcd769d45 --- /dev/null +++ b/gnu/packages/patches/gcc-6-fix-buffer-size.patch @@ -0,0 +1,15 @@ +Fixes a possible buffer overflow. (There are others) +Author: Danny Milosavljevic <dannym@scratchpost.org> +Date: 2020-11-16 + +--- a/gcc/gimplify.c.orig 2020-10-29 08:45:11.532479774 +0100 ++++ b/gcc/gimplify.c 2020-10-29 08:45:49.584637018 +0100 +@@ -5229,7 +5229,7 @@ + flexibility, split it into separate input and output + operands. */ + tree input; +- char buf[10]; ++ char buf[12]; + + /* Turn the in/out constraint into an output constraint. */ + char *p = xstrdup (constraint); diff --git a/gnu/packages/patches/gcc-6-fix-isl-includes.patch b/gnu/packages/patches/gcc-6-fix-isl-includes.patch new file mode 100644 index 0000000000..ab3c5634ea --- /dev/null +++ b/gnu/packages/patches/gcc-6-fix-isl-includes.patch @@ -0,0 +1,16 @@ +See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86724 +Author: Rainer Jung +Date: 2018-07-29 + +isl 0.20 stopped including other unused header files in their header files. +Therefore,now it's necessary to include the stuff ourselves. +--- .../gcc/graphite.h 2018-01-03 11:03:58.000000000 +0000 ++++ .../gcc/graphite.h 2018-07-29 17:42:55.836121000 +0000 +@@ -37,6 +37,8 @@ + #include <isl/schedule.h> + #include <isl/ast_build.h> + #include <isl/schedule_node.h> ++#include <isl/id.h> ++#include <isl/space.h> + + typedef struct poly_dr *poly_dr_p; diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index e0cdde61ec..9a6e40df4b 100644 --- a/gnu/packages/patches/icecat-makeicecat.patch +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -25,7 +25,7 @@ index 8be2362..48716f2 100755 -wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc -gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 -gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc --echo -n 8e3cf0bbf1062768134db2eb10ab774731ca5ec6694b65def82234bb0a9170fc firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +-echo -n 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - - -echo Extracting Firefox tarball -tar -xf firefox-${FFVERSION}esr.source.tar.xz @@ -37,7 +37,7 @@ index 8be2362..48716f2 100755 +# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc +# gpg --recv-keys --keyserver keyserver.ubuntu.com 14F26682D0916CDD81E37B6D61B7B526D98F0353 +# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc -+# echo -n 8e3cf0bbf1062768134db2eb10ab774731ca5ec6694b65def82234bb0a9170fc firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - ++# echo -n 51f54ff608aa09de07b304307581ae89112781597322b8999b3099cfabf48290 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c - +# +# echo Extracting Firefox tarball +# tar -xf firefox-${FFVERSION}esr.source.tar.xz diff --git a/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch index fe381acf1b..ec8e888618 100644 --- a/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch +++ b/gnu/packages/patches/llvm-9-fix-bitcast-miscompilation.patch @@ -36,8 +36,8 @@ Differential Revision: https://reviews.llvm.org/D70844 diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp index 2c9ba203fbf3..0af3de300e77 100644 ---- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp -+++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp +--- llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp ++++ llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -18,6 +18,7 @@ #include "llvm/IR/DIBuilder.h" #include "llvm/IR/PatternMatch.h" @@ -158,8 +158,8 @@ index 2c9ba203fbf3..0af3de300e77 100644 diff --git a/llvm/test/Transforms/InstCombine/cast.ll b/llvm/test/Transforms/InstCombine/cast.ll index b6d1eda0601d..3ce8de033422 100644 ---- a/llvm/test/Transforms/InstCombine/cast.ll -+++ b/llvm/test/Transforms/InstCombine/cast.ll +--- llvm/test/Transforms/InstCombine/cast.ll ++++ llvm/test/Transforms/InstCombine/cast.ll @@ -824,7 +824,7 @@ define i64 @test59(i8 %A, i8 %B) { define <3 x i32> @test60(<4 x i32> %call4) { diff --git a/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch index 6cfe07e50a..9a97d82ddc 100644 --- a/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch +++ b/gnu/packages/patches/llvm-9-fix-lpad-miscompilation.patch @@ -15,8 +15,8 @@ PR45261 diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp index 5ac3606dc662..2638b1e8a05c 100644 ---- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp -+++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp +--- llvm/lib/CodeGen/SelectionDAG/FastISel.cpp ++++ llvm/lib/CodeGen/SelectionDAG/FastISel.cpp @@ -225,6 +225,21 @@ static bool isRegUsedByPhiNodes(unsigned DefReg, return false; } @@ -50,8 +50,8 @@ index 5ac3606dc662..2638b1e8a05c 100644 } diff --git a/llvm/test/CodeGen/X86/sink-local-value.ll b/llvm/test/CodeGen/X86/sink-local-value.ll index b0e511ac1189..f7d861ac9b6c 100644 ---- a/llvm/test/CodeGen/X86/sink-local-value.ll -+++ b/llvm/test/CodeGen/X86/sink-local-value.ll +--- llvm/test/CodeGen/X86/sink-local-value.ll ++++ llvm/test/CodeGen/X86/sink-local-value.ll @@ -145,6 +145,42 @@ try.cont: ; preds = %entry, %lpad ; CHECK: retl diff --git a/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch b/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch index 3f16de5a2b..ec37dc16fd 100644 --- a/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch +++ b/gnu/packages/patches/llvm-9-fix-scev-miscompilation.patch @@ -21,8 +21,8 @@ llvm-svn: 373184 diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 354ae05bb841..c29fc5dbccfb 100644 ---- a/llvm/lib/Analysis/ScalarEvolution.cpp -+++ b/llvm/lib/Analysis/ScalarEvolution.cpp +--- llvm/lib/Analysis/ScalarEvolution.cpp ++++ llvm/lib/Analysis/ScalarEvolution.cpp @@ -4992,7 +4992,7 @@ const SCEV *ScalarEvolution::createSimpleAffineAddRec(PHINode *PN, // overflow. if (auto *BEInst = dyn_cast<Instruction>(BEValueV)) @@ -34,8 +34,8 @@ index 354ae05bb841..c29fc5dbccfb 100644 } diff --git a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll index db68a4f84c91..6fdf8c5df974 100644 ---- a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll -+++ b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll +--- llvm/test/Analysis/ScalarEvolution/limit-depth.ll ++++ llvm/test/Analysis/ScalarEvolution/limit-depth.ll @@ -46,7 +46,7 @@ define void @test_mul(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) { define void @test_sext(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) { ; CHECK-LABEL: @test_sext @@ -47,8 +47,8 @@ index db68a4f84c91..6fdf8c5df974 100644 diff --git a/llvm/test/Analysis/ScalarEvolution/nsw.ll b/llvm/test/Analysis/ScalarEvolution/nsw.ll index 69427368625d..ca24f9d4a04b 100644 ---- a/llvm/test/Analysis/ScalarEvolution/nsw.ll -+++ b/llvm/test/Analysis/ScalarEvolution/nsw.ll +--- llvm/test/Analysis/ScalarEvolution/nsw.ll ++++ llvm/test/Analysis/ScalarEvolution/nsw.ll @@ -163,7 +163,7 @@ bb5: ; preds = %bb2 declare void @f(i32) @@ -60,8 +60,8 @@ index 69427368625d..ca24f9d4a04b 100644 %add = add nsw i32 %v, 1 diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll index 5e7d72d5e4f3..d0086ee2e6ac 100644 ---- a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll -+++ b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll +--- llvm/test/Analysis/ScalarEvolution/trip-count12.ll ++++ llvm/test/Analysis/ScalarEvolution/trip-count12.ll @@ -1,7 +1,7 @@ ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s @@ -73,8 +73,8 @@ index 5e7d72d5e4f3..d0086ee2e6ac 100644 define zeroext i16 @test(i16* nocapture %p, i32 %len) nounwind readonly { diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll index c0a1d12fa00e..9a080b34743f 100644 ---- a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll -+++ b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll +--- llvm/test/Analysis/ScalarEvolution/trip-count9.ll ++++ llvm/test/Analysis/ScalarEvolution/trip-count9.ll @@ -179,7 +179,7 @@ exit: } diff --git a/gnu/packages/patches/lsof-fatal-test-failures.patch b/gnu/packages/patches/lsof-fatal-test-failures.patch new file mode 100644 index 0000000000..e874ba6ad4 --- /dev/null +++ b/gnu/packages/patches/lsof-fatal-test-failures.patch @@ -0,0 +1,58 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Mon, 23 Nov 2020 05:36:53 +0100 +Subject: [PATCH] gnu: lsof: Make test failures fatal. + +Submitted upstream[0]. + +[0]: https://github.com/lsof-org/lsof/pull/144 + +diff --git a/tests/Makefile b/tests/Makefile +index 08574a0..2923bb8 100644 +--- a/tests/Makefile ++++ b/tests/Makefile +@@ -27,7 +27,7 @@ all: ${CKTSTDB} ${BASTST} ${STDTST} FRC + exit 1 ;\ + fi + @rm -f config.LT* +- -@err=0; \ ++ @err=0; \ + echo ""; \ + echo "Basic test:"; \ + ./${BASTST}; \ +@@ -54,8 +54,11 @@ all: ${CKTSTDB} ${BASTST} ${STDTST} FRC + echo "Suggestion: try the optional tests: \"make opt\""; \ + echo ""; \ + fi; \ +- fi; +- @rm -f config.LT* ++ fi; \ ++ rm -f config.LT*; \ ++ if [ $$err -ne 0 ]; then \ ++ exit 1; \ ++ fi + + auto: ckDB silent FRC + +@@ -112,7 +115,7 @@ LTunix: LTunix.c ${CONFIG} ${LIBOBJ} ${HDR} config.ldflags + + opt: ${CKTSTDB} ${OPTTST} FRC + @rm -f config.LT* +- -@err=0; \ ++ @err=0; \ + echo ""; \ + echo "Optional tests:"; \ + for i in ${OPTTST}; do \ +@@ -126,8 +129,11 @@ opt: ${CKTSTDB} ${OPTTST} FRC + else \ + echo "All optional tests succeeded."; \ + fi; \ +- echo ""; +- @rm -f config.LT* ++ echo ""; \ ++ rm -f config.LT*; \ ++ if [ $$err -ne 0 ]; then \ ++ exit 1; \ ++ fi + + optional: opt + diff --git a/gnu/packages/patches/multipath-tools-sans-systemd.patch b/gnu/packages/patches/multipath-tools-sans-systemd.patch deleted file mode 100644 index 8f3144718c..0000000000 --- a/gnu/packages/patches/multipath-tools-sans-systemd.patch +++ /dev/null @@ -1,83 +0,0 @@ -Fix various compiler warnings when built without systemd. - -Submitted upstream at <https://www.redhat.com/archives/dm-devel/2020-May/thread.html>. - -diff --git a/libmultipath/config.c b/libmultipath/config.c ---- a/libmultipath/config.c -+++ b/libmultipath/config.c -@@ -696,7 +696,7 @@ process_config_dir(struct config *conf, char *dir) - pthread_cleanup_pop(1); - } - --static void set_max_checkint_from_watchdog(struct config *conf) -+static void set_max_checkint_from_watchdog(__attribute__((unused)) struct config *conf) - { - #ifdef USE_SYSTEMD - char *envp = getenv("WATCHDOG_USEC"); -diff --git a/multipathd/main.c b/multipathd/main.c ---- a/multipathd/main.c -+++ b/multipathd/main.c -@@ -176,6 +176,7 @@ daemon_status(void) - /* - * I love you too, systemd ... - */ -+#ifdef USE_SYSTEMD - static const char * - sd_notify_status(enum daemon_status state) - { -@@ -195,7 +196,6 @@ sd_notify_status(enum daemon_status state) - return NULL; - } - --#ifdef USE_SYSTEMD - static void do_sd_notify(enum daemon_status old_state, - enum daemon_status new_state) - { -@@ -247,7 +247,9 @@ enum daemon_status wait_for_state_change_if(enum daemon_status oldstate, - static void __post_config_state(enum daemon_status state) - { - if (state != running_state && running_state != DAEMON_SHUTDOWN) { -- enum daemon_status old_state = running_state; -+ /* save state for sd_notify */ -+ enum daemon_status -+ __attribute__((unused)) old_state = running_state; - - running_state = state; - pthread_cond_broadcast(&config_cond); -@@ -272,7 +274,9 @@ int set_config_state(enum daemon_status state) - pthread_cleanup_push(config_cleanup, NULL); - pthread_mutex_lock(&config_lock); - if (running_state != state) { -- enum daemon_status old_state = running_state; -+ /* save state for sd_notify */ -+ enum daemon_status -+ __attribute__((unused)) old_state = running_state; - - if (running_state == DAEMON_SHUTDOWN) - rc = EINVAL; -@@ -2280,7 +2284,6 @@ checkerloop (void *ap) - struct timespec last_time; - struct config *conf; - int foreign_tick = 0; -- bool use_watchdog; - - pthread_cleanup_push(rcu_unregister, NULL); - rcu_register_thread(); -@@ -2292,11 +2295,15 @@ checkerloop (void *ap) - get_monotonic_time(&last_time); - last_time.tv_sec -= 1; - -- /* use_watchdog is set from process environment and never changes */ - conf = get_multipath_config(); -- use_watchdog = conf->use_watchdog; - put_multipath_config(conf); - -+#ifdef USE_SYSTEMD -+ /* use_watchdog is set from process environment and never changes */ -+ bool use_watchdog; -+ use_watchdog = conf->use_watchdog; -+#endif -+ - while (1) { - struct timespec diff_time, start_time, end_time; - int num_paths = 0, strict_timing, rc = 0; diff --git a/gnu/packages/patches/oath-toolkit-glibc-compat.patch b/gnu/packages/patches/oath-toolkit-glibc-compat.patch deleted file mode 100644 index 22814599e5..0000000000 --- a/gnu/packages/patches/oath-toolkit-glibc-compat.patch +++ /dev/null @@ -1,90 +0,0 @@ -Adjust the bundled Gnulib to cope with removal of libio interface in Glibc 2.28. - -Based on this upstream gnulib patch: -https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a71827c0bc5e0ec67af23edef4f15cee8e - ---- a/liboath/gl/fflush.c -+++ b/liboath/gl/fflush.c -@@ -33,7 +33,7 @@ - #undef fflush - - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ - static void -@@ -72,7 +72,7 @@ - - #endif - --#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) - - # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ -@@ -148,7 +148,7 @@ - if (stream == NULL || ! freading (stream)) - return fflush (stream); - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - ---- a/liboath/gl/fpurge.c -+++ b/liboath/gl/fpurge.c -@@ -62,7 +62,7 @@ - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ ---- a/libaoth/gl/freading.c -+++ b/liboath/gl/freading.c -@@ -31,7 +31,7 @@ - /* Most systems provide FILE as a struct and the necessary bitmask in - <stdio.h>, because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); ---- a/liboath/gl/fseeko.c -+++ b/liboath/gl/fseeko.c -@@ -47,7 +47,7 @@ - #endif - - /* These tests are based on fpurge.c. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -@@ -123,7 +123,7 @@ - return -1; - } - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ ---- a/liboath/gl/stdio-impl.h -+++ b/liboath/gl/stdio-impl.h -@@ -18,6 +18,11 @@ - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -+/* Glibc 2.28 made _IO_IN_BACKUP private, so define it here for now. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif -+ - /* BSD stdio derived implementations. */ - - #if defined __NetBSD__ /* NetBSD */ diff --git a/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch b/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch new file mode 100644 index 0000000000..1ebde1997f --- /dev/null +++ b/gnu/packages/patches/ocaml-cairo2-caml_ba_array-fix.patch @@ -0,0 +1,68 @@ +From 3c70f2ff18650c4794556049cd4ea22a58cc719e Mon Sep 17 00:00:00 2001 +From: Christophe Troestler <Christophe.Troestler@umons.ac.be> +Date: Sun, 27 Sep 2020 23:20:52 +0200 +Subject: [PATCH] Do not store the Caml_ba_array_val pointer during surface + creation + +Extracted from Cairo git-tree on November 22, 2020 by +Brett Gilio <brettg@gnu.org> +--- + src/cairo_stubs.c | 3 ++- + tests/image_create.ml | 5 +++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/cairo_stubs.c b/src/cairo_stubs.c +index 641ee2c..200abf3 100644 +--- a/src/cairo_stubs.c ++++ b/src/cairo_stubs.c +@@ -1580,6 +1580,7 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy + caml_cairo_image_bigarray_finalize); + } + ++#define b (Caml_ba_array_val(vb)) + #define SURFACE_CREATE_DATA(name) \ + CAMLexport value caml_cairo_image_surface_create_for_##name \ + (value vb, value vformat, value vwidth, value vheight, value vstride) \ +@@ -1588,7 +1589,6 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy + CAMLlocal1(vsurf); \ + cairo_surface_t* surf; \ + const int width = Int_val(vwidth); \ +- struct caml_ba_array *b = Caml_ba_array_val(vb); \ + cairo_status_t status; \ + \ + if ((b->flags & CAML_BA_MANAGED_MASK) == CAML_BA_MAPPED_FILE) \ +@@ -1610,6 +1610,7 @@ static cairo_status_t caml_cairo_image_bigarray_attach_proxy + + SURFACE_CREATE_DATA(data8) + SURFACE_CREATE_DATA(data32) ++#undef b + + #define SURFACE_GET_DATA(type, num_dims, dims ...) \ + CAMLexport value caml_cairo_image_surface_get_##type(value vsurf) \ +diff --git a/tests/image_create.ml b/tests/image_create.ml +index eec98d6..b13c206 100644 +--- a/tests/image_create.ml ++++ b/tests/image_create.ml +@@ -10,6 +10,7 @@ let create() = + + let () = + let cr = create() in ++ printf "With Cairo handle:\n%!"; + set_source_rgb cr 1. 1. 1.; + rectangle cr 0. 0. ~w:300. ~h:300.; + fill cr; +@@ -21,9 +22,9 @@ let () = + show_text cr "Hello"; + Gc.compact(); Gc.compact(); + +- eprintf "Write image\n%!"; ++ eprintf "- Write image\n%!"; + PNG.write (get_target cr) "test_image.png"; +- eprintf "Finish surface\n%!"; ++ eprintf "- Finish surface\n%!"; + Surface.finish (get_target cr); + Gc.compact() + +-- +2.29.2 + diff --git a/gnu/packages/patches/perl-www-curl-fix-struct-void.patch b/gnu/packages/patches/perl-www-curl-fix-struct-void.patch new file mode 100644 index 0000000000..b150950668 --- /dev/null +++ b/gnu/packages/patches/perl-www-curl-fix-struct-void.patch @@ -0,0 +1,24 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Sat, 14 Nov 2020 15:40:56 +0100 +Subject: [PATCH] gnu: perl-www-curl: Fix struct void* usage. + +Copied verbatim from Gentoo[0]. Fixes: + + Curl.xs:76:12: error: expected ‘{’ before ‘void’ + struct void *curlm; + ^~~~ + Curl.xs:76:12: error: two or more data types in declaration specifiers + +[0]: https://694466.bugs.gentoo.org/attachment.cgi?id=595098 + +--- WWW-Curl-4.17/Curl.xs 2014-02-21 18:08:30.000000000 +0200 ++++ WWW-Curl-4.17.new/Curl.xs 2019-11-05 21:44:55.434395739 +0200 +@@ -73,7 +73,7 @@ typedef struct { + #ifdef __CURL_MULTI_H + struct CURLM *curlm; + #else +- struct void *curlm; ++ void *curlm; + #endif + } perl_curl_multi; + diff --git a/gnu/packages/patches/perl-www-curl-remove-symbol.patch b/gnu/packages/patches/perl-www-curl-remove-symbol.patch Binary files differindex ae3486708b..c32a34897b 100644 --- a/gnu/packages/patches/perl-www-curl-remove-symbol.patch +++ b/gnu/packages/patches/perl-www-curl-remove-symbol.patch diff --git a/gnu/packages/patches/python-pydot-regression-test.patch b/gnu/packages/patches/python-pydot-regression-test.patch new file mode 100644 index 0000000000..d2f0f5996e --- /dev/null +++ b/gnu/packages/patches/python-pydot-regression-test.patch @@ -0,0 +1,79 @@ +This patch is taken from the upstream repository +https://github.com/pydot/pydot/commit/a10ced4d132361027a545a471af4541dea8c5cf5.patch +It should be included in the 1.4.2 release. + + +From a10ced4d132361027a545a471af4541dea8c5cf5 Mon Sep 17 00:00:00 2001 +From: Peter Nowee <peter@peternowee.com> +Date: Wed, 26 Jun 2019 15:43:38 +0800 +Subject: [PATCH] Fix multi.dot Graphviz regression test + +Commit d6602ad of 2018-12-01 fixed the regression test broken by commit +2d55978 of 2016-07-01. This revealed that `test/graphs/multi.dot` was +failing. + +`multi.dot` was introduced in commit 2b3f088 of 2010-11-07 together +with many of the other tests still here today. It has not been touched +since. It is a DOT-file containing two digraphs. The regression test +compares the JPEG images rendered from the DOT-file by pydot with those +rendered by Graphviz's dot directly. + +Commit 66734d2 of 2016-07-01 is the actual cause of the failure. It +changed one of the render methods of the regression test, +`_render_with_pydot`, from calculating a single hash for all the JPEG +images to calculating separate hashes for each JPEG image and then +concatenating those hashes in one long string. The other render method, +`_render_with_graphviz`, still calculates a single hash over all data. +For DOT-files that generate only one image the end result is the same, +but because `multi.dot` has two graphs, it produces two images and this +leads to comparing a string of two hashes with one single hash. + +I do not think the change in generating the hash was intentional, for +the following reasons: +- Commit 66734d2 states that its purpose was to adapt the test to an + API change in pydot. It does not mention a deliberate choice to + change the testing method. +- There was no effort to change `_render_with_graphviz` to also produce + multiple hashes. +- Except for easier debugging in case of a failing test with multiple + images (AFAICT, only `multi.dot`), I do not see much added benefit in + checking a concatenation of the hashes of all images vs. checking one + hash of all images together: In both cases the test will fail if one + or more images is rendered differently. +- Given that there were many commits authored that same hour, including + commit 2d55978 which broke the regression tests, I suspect the author + did not run the tests for each individual commit, but only at the end + of that batch, and was therefore also not alerted of this change by + the test suite. + +Assuming that the change was not intended, this commit will now revert +`_render_with_pydot` to the old behavior of calculating a single hash +from all JPEG image data. + +Tested with Debian 9.9, Graphviz 2.38.0-17, Python 2.7.13-2 and 3.5.3-1. + +Fixes https://github.com/pydot/pydot/issues/204. +--- + test/pydot_unittest.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/test/pydot_unittest.py b/test/pydot_unittest.py +index 881ee16..64aa856 100644 +--- a/test/pydot_unittest.py ++++ b/test/pydot_unittest.py +@@ -194,11 +194,11 @@ def _render_with_graphviz(self, filename, encoding): + + def _render_with_pydot(self, filename, encoding): + c = pydot.graph_from_dot_file(filename, encoding=encoding) +- sha = '' ++ jpe_data = bytearray() + for g in c: +- jpe_data = g.create(prog=TEST_PROGRAM, format='jpe', encoding=encoding) +- sha += sha256(jpe_data).hexdigest() +- return sha ++ jpe_data.extend(g.create(prog=TEST_PROGRAM, format='jpe', ++ encoding=encoding)) ++ return sha256(jpe_data).hexdigest() + + def test_my_regression_tests(self): + path = os.path.join(test_dir, TESTS_DIR_1) diff --git a/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch b/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch deleted file mode 100644 index 39008cba5c..0000000000 --- a/gnu/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch +++ /dev/null @@ -1,642 +0,0 @@ -Fix build with Poppler 0.86. - -The original series of patches authored by Craig Bradney <mrb@scribus.info> -and Jean Ghali <jghali@libertysurf.fr>, taken from -https://gitweb.gentoo.org/repo/gentoo.git/tree/app-office/scribus/files - -diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp ---- a/scribus/plugins/import/pdf/importpdf.cpp -+++ b/scribus/plugins/import/pdf/importpdf.cpp -@@ -75,7 +75,11 @@ PdfPlug::PdfPlug(ScribusDoc* doc, int flags) - QImage PdfPlug::readThumbnail(const QString& fName)
- {
- QString pdfFile = QDir::toNativeSeparators(fName);
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
-+ globalParams.reset(new GlobalParams());
-+#else
- globalParams = new GlobalParams();
-+#endif
- if (globalParams)
- {
- #if defined(Q_OS_WIN32) && POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 62, 0)
-@@ -90,7 +94,9 @@ QImage PdfPlug::readThumbnail(const QString& fName) - if (pdfDoc->getErrorCode() == errEncrypted)
- {
- delete pdfDoc;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
- delete globalParams;
-+#endif
- return QImage();
- }
- if (pdfDoc->isOk())
-@@ -134,11 +140,15 @@ QImage PdfPlug::readThumbnail(const QString& fName) - image.setText("YSize", QString("%1").arg(h));
- delete dev;
- delete pdfDoc;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
- delete globalParams;
-+#endif
- return image;
- }
- delete pdfDoc;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
- delete globalParams;
-+#endif
- }
- }
- return QImage();
-@@ -387,7 +397,11 @@ bool PdfPlug::convert(const QString& fn) - qApp->processEvents();
- }
-
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
-+ globalParams.reset(new GlobalParams());
-+#else
- globalParams = new GlobalParams();
-+#endif
- GooString *userPW = nullptr;
- if (globalParams)
- {
-@@ -429,7 +443,9 @@ bool PdfPlug::convert(const QString& fn) - if (progressDialog)
- progressDialog->close();
- delete pdfDoc;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
- delete globalParams;
-+#endif
- return false;
- }
- if (progressDialog)
-@@ -474,7 +490,9 @@ bool PdfPlug::convert(const QString& fn) - progressDialog->close();
- delete optImp;
- delete pdfDoc;
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 83, 0)
- delete globalParams;
-+#endif
- return false;
- }
- pageString = optImp->getPagesString();
-@@ -838,11 +856,20 @@ bool PdfPlug::convert(const QString& fn) - names = catDict.dictLookup("OpenAction");
- if (names.isDict())
- {
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkAction> linkAction;
-+ linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());
-+#else
- LinkAction *linkAction = nullptr;
- linkAction = LinkAction::parseAction(&names, pdfDoc->getCatalog()->getBaseURI());
-+#endif
- if (linkAction)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)linkAction;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) linkAction.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) linkAction;
-+#endif
- if (jsa->isOk())
- {
- QString script = UnicodeParsedString(jsa->getScript());
-@@ -908,8 +935,12 @@ bool PdfPlug::convert(const QString& fn) - }
- delete pdfDoc;
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
-+ globalParams.release();
-+#else
- delete globalParams;
- globalParams = nullptr;
-+#endif
-
- // qDebug() << "converting finished";
- // qDebug() << "Imported" << Elements.count() << "Elements";
-@@ -1046,3 +1077,43 @@ QString PdfPlug::UnicodeParsedString(POPPLER_CONST GooString *s1) - }
- return result;
- }
-+
-+QString PdfPlug::UnicodeParsedString(const std::string& s1)
-+{
-+ if (s1.length() == 0)
-+ return QString();
-+ GBool isUnicode;
-+ int i;
-+ Unicode u;
-+ QString result;
-+ if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff))
-+ {
-+ isUnicode = gTrue;
-+ i = 2;
-+ result.reserve((s1.length() - 2) / 2);
-+ }
-+ else
-+ {
-+ isUnicode = gFalse;
-+ i = 0;
-+ result.reserve(s1.length());
-+ }
-+ while (i < s1.length())
-+ {
-+ if (isUnicode)
-+ {
-+ u = ((s1.at(i) & 0xff) << 8) | (s1.at(i+1) & 0xff);
-+ i += 2;
-+ }
-+ else
-+ {
-+ u = s1.at(i) & 0xff;
-+ ++i;
-+ }
-+ // #15616: imagemagick may write unicode strings incorrectly in PDF
-+ if (u == 0)
-+ continue;
-+ result += QChar( u );
-+ }
-+ return result;
-+}
-diff --git a/scribus/plugins/import/pdf/importpdf.h b/scribus/plugins/import/pdf/importpdf.h ---- a/scribus/plugins/import/pdf/importpdf.h -+++ b/scribus/plugins/import/pdf/importpdf.h -@@ -82,6 +82,7 @@ private: - bool convert(const QString& fn); - QRectF getCBox(int box, int pgNum); - QString UnicodeParsedString(POPPLER_CONST GooString *s1); -+ QString UnicodeParsedString(const std::string& s1); - - QList<PageItem*> Elements; - double baseX, baseY; -diff --git a/scribus/plugins/import/pdf/importpdfconfig.h b/scribus/plugins/import/pdf/importpdfconfig.h ---- a/scribus/plugins/import/pdf/importpdfconfig.h -+++ b/scribus/plugins/import/pdf/importpdfconfig.h -@@ -52,4 +52,16 @@ for which a new license (GPL+exception) is in place. - #define POPPLER_REF
- #endif
-
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 82, 0)
-+#define POPPLER_CONST_082 const
-+#else
-+#define POPPLER_CONST_082
-+#endif
-+
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 83, 0)
-+#define POPPLER_CONST_083 const
-+#else
-+#define POPPLER_CONST_083
-+#endif
-+
- #endif
-diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp ---- a/scribus/plugins/import/pdf/slaoutput.cpp -+++ b/scribus/plugins/import/pdf/slaoutput.cpp -@@ -308,9 +308,15 @@ LinkAction* SlaOutputDev::SC_getAction(AnnotWidget *ano) - }
-
- /* Replacement for the crippled Poppler function LinkAction* AnnotWidget::getAdditionalAction(AdditionalActionsType type) */
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+std::unique_ptr<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)
-+{
-+ std::unique_ptr<LinkAction> linkAction;
-+#else
- LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)
- {
- LinkAction *linkAction = nullptr;
-+#endif
- Object obj;
- Ref refa = ano->getRef();
-
-@@ -455,7 +461,11 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do - POPPLER_CONST GooString *ndst = gto->getNamedDest();
- if (ndst)
- {
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);
-+#else
- LinkDest *dstn = pdfDoc->findDest(ndst);
-+#endif
- if (dstn)
- {
- if (dstn->getKind() == destXYZ)
-@@ -499,7 +509,11 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do - POPPLER_CONST GooString *ndst = gto->getNamedDest();
- if (ndst)
- {
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);
-+#else
- LinkDest *dstn = pdfDoc->findDest(ndst);
-+#endif
- if (dstn)
- {
- if (dstn->getKind() == destXYZ)
-@@ -967,7 +981,11 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) - POPPLER_CONST GooString *ndst = gto->getNamedDest();
- if (ndst)
- {
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);
-+#else
- LinkDest *dstn = pdfDoc->findDest(ndst);
-+#endif
- if (dstn)
- {
- if (dstn->getKind() == destXYZ)
-@@ -1019,7 +1037,11 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) - POPPLER_CONST GooString *ndst = gto->getNamedDest();
- if (ndst)
- {
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkDest> dstn = pdfDoc->findDest(ndst);
-+#else
- LinkDest *dstn = pdfDoc->findDest(ndst);
-+#endif
- if (dstn)
- {
- if (dstn->getKind() == destXYZ)
-@@ -1088,96 +1110,148 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) - else
- qDebug() << "Found unsupported Action of type" << Lact->getKind();
- }
-- LinkAction *Aact = SC_getAdditionalAction("D", ano);
-+ auto Aact = SC_getAdditionalAction("D", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setD_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("E", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setE_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("X", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setX_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("Fo", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("Bl", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("C", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setC_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("F", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setF_act(UnicodeParsedString(jsa->getScript()));
-@@ -1185,14 +1259,22 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) - ite->annotation().setFormat(5);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("K", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setK_act(UnicodeParsedString(jsa->getScript()));
-@@ -1200,21 +1282,33 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano) - ite->annotation().setFormat(5);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- Aact = SC_getAdditionalAction("V", ano);
- if (Aact)
- {
- if (Aact->getKind() == actionJavaScript)
- {
-- LinkJavaScript *jsa = (LinkJavaScript*)Aact;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact.get();
-+#else
-+ LinkJavaScript *jsa = (LinkJavaScript*) Aact;
-+#endif
- if (jsa->isOk())
- {
- ite->annotation().setV_act(UnicodeParsedString(jsa->getScript()));
- ite->annotation().setAAact(true);
- }
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ Aact.reset();
-+#else
- Aact = nullptr;
-+#endif
- }
- }
-
-@@ -1224,6 +1318,11 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA) - catalog = catA;
- pdfDoc = doc;
- updateGUICounter = 0;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0)
-+ m_fontEngine = new SplashFontEngine(true, true, true, true);
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 61, 0)
-+ m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), true, true, true);
-+#else
- m_fontEngine = new SplashFontEngine(
- #if HAVE_T1LIB_H
- globalParams->getEnableT1lib(),
-@@ -1234,6 +1333,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA) - true,
- #endif
- true);
-+#endif
- }
-
- void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *)
-@@ -2784,7 +2884,7 @@ void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, i - delete[] mbuffer;
- }
-
--void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg)
-+void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int* maskColors, GBool inlineImg)
- {
- ImageStream * imgStr = new ImageStream(str, width, colorMap->getNumPixelComps(), colorMap->getBits());
- // qDebug() << "Image Components" << colorMap->getNumPixelComps() << "Mask" << maskColors;
-@@ -3365,7 +3465,7 @@ err1: - fontsrc->unref();
- }
-
--void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, Unicode *u, int uLen)
-+void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, POPPLER_CONST_082 Unicode *u, int uLen)
- {
- double x1, y1, x2, y2;
- int render;
-@@ -3452,7 +3552,7 @@ void SlaOutputDev::drawChar(GfxState *state, double x, double y, double dx, doub - }
- }
-
--GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, Unicode *u, int uLen)
-+GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen)
- {
- // qDebug() << "beginType3Char";
- GfxFont *gfxFont;
-@@ -3705,7 +3805,7 @@ QString SlaOutputDev::getAnnotationColor(const AnnotColor *color) - return fNam;
- }
-
--QString SlaOutputDev::convertPath(GfxPath *path)
-+QString SlaOutputDev::convertPath(POPPLER_CONST_083 GfxPath *path)
- {
- if (! path)
- return QString();
-@@ -3715,7 +3815,7 @@ QString SlaOutputDev::convertPath(GfxPath *path) -
- for (int i = 0; i < path->getNumSubpaths(); ++i)
- {
-- GfxSubpath * subpath = path->getSubpath(i);
-+ POPPLER_CONST_083 GfxSubpath * subpath = path->getSubpath(i);
- if (subpath->getNumPoints() > 0)
- {
- output += QString("M %1 %2").arg(subpath->getX(0)).arg(subpath->getY(0));
-@@ -3922,6 +4022,46 @@ QString SlaOutputDev::UnicodeParsedString(POPPLER_CONST GooString *s1) - return result;
- }
-
-+QString SlaOutputDev::UnicodeParsedString(const std::string& s1)
-+{
-+ if (s1.length() == 0)
-+ return QString();
-+ GBool isUnicode;
-+ int i;
-+ Unicode u;
-+ QString result;
-+ if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff))
-+ {
-+ isUnicode = gTrue;
-+ i = 2;
-+ result.reserve((s1.length() - 2) / 2);
-+ }
-+ else
-+ {
-+ isUnicode = gFalse;
-+ i = 0;
-+ result.reserve(s1.length());
-+ }
-+ while (i < s1.length())
-+ {
-+ if (isUnicode)
-+ {
-+ u = ((s1.at(i) & 0xff) << 8) | (s1.at(i+1) & 0xff);
-+ i += 2;
-+ }
-+ else
-+ {
-+ u = s1.at(i) & 0xff;
-+ ++i;
-+ }
-+ // #15616: imagemagick may write unicode strings incorrectly in PDF
-+ if (u == 0)
-+ continue;
-+ result += QChar( u );
-+ }
-+ return result;
-+}
-+
- bool SlaOutputDev::checkClip()
- {
- bool ret = false;
-diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h ---- a/scribus/plugins/import/pdf/slaoutput.h -+++ b/scribus/plugins/import/pdf/slaoutput.h -@@ -20,6 +20,8 @@ for which a new license (GPL+exception) is in place. - #include <QTextStream>
- #include <QTransform>
-
-+#include <memory>
-+
- #include "fpointarray.h"
- #include "importpdfconfig.h"
- #include "pageitem.h"
-@@ -159,7 +161,11 @@ public: - virtual ~SlaOutputDev();
-
- LinkAction* SC_getAction(AnnotWidget *ano);
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0)
-+ std::unique_ptr<LinkAction> SC_getAdditionalAction(const char *key, AnnotWidget *ano);
-+#else
- LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
-+#endif
- static GBool annotations_callback(Annot *annota, void *user_data);
- bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
- bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
-@@ -229,7 +235,7 @@ public: -
- //----- image drawing
- void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) override;
-- void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg) override;
-+ void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int *maskColors, GBool inlineImg) override;
- void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
- int width, int height,
- GfxImageColorMap *colorMap,
-@@ -261,8 +267,8 @@ public: - //----- text drawing
- void beginTextObject(GfxState *state) override;
- void endTextObject(GfxState *state) override;
-- void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, Unicode * /*u*/, int /*uLen*/) override;
-- GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, Unicode * /*u*/, int /*uLen*/) override;
-+ void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override;
-+ GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override;
- void endType3Char(GfxState * /*state*/) override;
- void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/) override;
- void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/) override;
-@@ -282,11 +288,12 @@ private: - void getPenState(GfxState *state);
- QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade);
- QString getAnnotationColor(const AnnotColor *color);
-- QString convertPath(GfxPath *path);
-+ QString convertPath(POPPLER_CONST_083 GfxPath *path);
- int getBlendMode(GfxState *state);
- void applyMask(PageItem *ite);
- void pushGroup(const QString& maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);
- QString UnicodeParsedString(POPPLER_CONST GooString *s1);
-+ QString UnicodeParsedString(const std::string& s1);
- bool checkClip();
- bool pathIsClosed;
- QString CurrColorFill;
diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch new file mode 100644 index 0000000000..545f0cbd69 --- /dev/null +++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch @@ -0,0 +1,3643 @@ +This patch disables the use of non-free code distributed with SDCC by +removing + + - The "--disable-non-free" option to "configure" and the build logic + it controls; + + - All references to the "device/non-free" source directory and the + corresponding "non-free" installation directory; and + + - The "--use-non-free" and "--no-warn-non-free" compiler options and + references to them in build scripts and compiler output. + +It also updates SDCC's documentation to reflect these changes and to +remove instructions that encourage the use of SDCC with non-free +software. + +diff --git a/Makefile.common.in b/Makefile.common.in +index 4c75cfa..9fa306d 100644 +--- a/Makefile.common.in ++++ b/Makefile.common.in +@@ -65,7 +65,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@ + OPT_DISABLE_SDBINUTILS = @OPT_DISABLE_SDBINUTILS@ + OPT_DISABLE_SDCPP = @OPT_DISABLE_SDCPP@ + OPT_DISABLE_UCSIM = @OPT_DISABLE_UCSIM@ +-OPT_DISABLE_NON_FREE = @OPT_DISABLE_NON_FREE@ + + SLIB = $(top_builddir)/support/util + +diff --git a/Makefile.in b/Makefile.in +index aac442e..dd73e40 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -82,9 +82,6 @@ endif + ifeq ($(OPT_DISABLE_DEVICE_LIB), 0) + TARGETS += sdcc-device-lib + PKGS += device/lib +-ifeq ($(OPT_DISABLE_NON_FREE), 0) +-PKGS += device/non-free/lib +-endif + endif + + ifeq ($(OPT_DISABLE_PACKIHX), 0) +@@ -105,9 +102,6 @@ endif + TARGETS += sdcc-libs sdcc-cc sdcc-device-inc sdcc-as sdcc-ld sdcc-scripts + + PKGS += $(SDCC_LIBS) src device/include +-ifeq ($(OPT_DISABLE_NON_FREE), 0) +-PKGS += device/non-free/include +-endif + PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_LIBRARIAN) $(SDCC_SCRIPTS) + + PORTS = $(shell cat ports.build) +@@ -156,21 +150,12 @@ sdcc-sdbinutils: + + sdcc-device-inc: + $(MAKE) -C device/include +-ifeq ($(OPT_DISABLE_NON_FREE), 0) +- $(MAKE) -C device/non-free/include +-endif + + sdcc-device-lib: sdcc-cc sdcc-as sdcc-ld $(SDCC_BINUTILS) + $(MAKE) -C device/lib +-ifeq ($(OPT_DISABLE_NON_FREE), 0) +- $(MAKE) -C device/non-free/lib +-endif + + sdcc-device-tini: + $(MAKE) -C device/include +-ifeq ($(OPT_DISABLE_NON_FREE), 0) +- $(MAKE) -C device/non-free/include +-endif + $(MAKE) -C device/lib model-ds390 model-ds400 + + # doc depends on latex and latex2html +diff --git a/configure b/configure +index 42b1c7d..00ecb51 100755 +--- a/configure ++++ b/configure +@@ -632,7 +632,6 @@ LATEX + LATEX2HTML + LYX + OPT_ENABLE_DOC +-OPT_DISABLE_NON_FREE + OPT_DISABLE_SDBINUTILS + OPT_DISABLE_SDCDB + OPT_DISABLE_SDCPP +@@ -654,10 +653,7 @@ OPT_DISABLE_R2K + OPT_DISABLE_Z180 + OPT_DISABLE_Z80 + OPT_DISABLE_MCS51 +-non_free_lib_dir_suffix + lib_dir_suffix +-non_free_include_dir_suffix +-non_free_inclib_dir_suffix + include_dir_suffix + inclib_dir_suffix + LIB_TYPE +@@ -771,7 +767,6 @@ enable_packihx + enable_sdcpp + enable_sdcdb + enable_sdbinutils +-enable_non_free + enable_doc + enable_libgc + ' +@@ -792,10 +787,7 @@ sdccconf_h_dir_separator + LIB_TYPE + inclib_dir_suffix + include_dir_suffix +-non_free_inclib_dir_suffix +-non_free_include_dir_suffix + lib_dir_suffix +-non_free_lib_dir_suffix + docdir' + ac_subdirs_all='support/cpp + support/packihx +@@ -803,9 +795,7 @@ sim/ucsim + debugger/mcs51 + support/sdbinutils + device/lib/pic14 +-device/non-free/lib/pic14 +-device/lib/pic16 +-device/non-free/lib/pic16' ++device/lib/pic16' + + # Initialize some variables set by options. + ac_init_help= +@@ -1452,7 +1442,6 @@ Optional Features: + --disable-sdcpp Disables building sdcpp + --disable-sdcdb Disables building sdcdb + --disable-sdbinutils Disables configuring and building of sdbinutils +- --disable-non-free Disables non-free runtime library parts + --enable-doc Enables building the documentation + --enable-libgc Use the Bohem memory allocator. Lower runtime + footprint. +@@ -1481,16 +1470,8 @@ Some influential environment variables: + appended to datadir to define SDCC's include/lib directory + include_dir_suffix + appended to datadir to define SDCC's include directory +- non_free_inclib_dir_suffix +- appended to datadir to define SDCC's non-free include/lib +- directory +- non_free_include_dir_suffix +- appended to datadir to define SDCC's non-free include directory + lib_dir_suffix + appended to datadir to define SDCC's library root directory +- non_free_lib_dir_suffix +- appended to datadir to define SDCC's non-free library root +- directory + docdir documentation installation directory + + Use these variables to override the choices made by `configure' or to help +@@ -7236,19 +7217,6 @@ if test "${include_dir_suffix}" = ""; then + include_dir_suffix="${inclib_dir_suffix}/include" + fi + +- +-if test "${non_free_inclib_dir_suffix}" = ""; then +- non_free_inclib_dir_suffix="sdcc/non-free" +-fi +- +-# non_free_include_dir_suffix: +-# *nix default: "sdcc/non-free/include" +- +- +-if test "${non_free_include_dir_suffix}" = ""; then +- non_free_include_dir_suffix="${non_free_inclib_dir_suffix}/include" +-fi +- + # lib_dir_suffix: + # *nix default: "sdcc/lib" + +@@ -7256,13 +7224,6 @@ if test "${lib_dir_suffix}" = ""; then + lib_dir_suffix="${inclib_dir_suffix}/lib" + fi + +-# non_free_lib_dir_suffix: +-# *nix default: "sdcc/non-free/lib" +- +-if test "${non_free_lib_dir_suffix}" = ""; then +- non_free_lib_dir_suffix="${non_free_inclib_dir_suffix}/lib" +-fi +- + # docdir: + # *nix default: "${datadir}/sdcc/doc" + +@@ -7429,24 +7390,6 @@ cat >>confdefs.h <<_ACEOF + #define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}" + _ACEOF + +-norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix} +-case ":$norm_non_free_inc_dir_suffix:" in +- ::) norm_non_free_inc_dir_suffix='.' ;; +- :*[\\/]:) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $sdccconf_h_dir_separator in +- +- *\\*) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) norm_non_free_inc_dir_suffix=`echo "$norm_non_free_inc_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +- +-cat >>confdefs.h <<_ACEOF +-#define NON_FREE_INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}" +-_ACEOF +- + + norm_lib_dir_suffix=${lib_dir_suffix} + case ":$norm_lib_dir_suffix:" in +@@ -7466,24 +7409,6 @@ cat >>confdefs.h <<_ACEOF + #define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}" + _ACEOF + +-norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix} +-case ":$norm_non_free_lib_dir_suffix:" in +- ::) norm_non_free_lib_dir_suffix='.' ;; +- :*[\\/]:) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $sdccconf_h_dir_separator in +- +- *\\*) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) norm_non_free_lib_dir_suffix=`echo "$norm_non_free_lib_dir_suffix" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +- +-cat >>confdefs.h <<_ACEOF +-#define NON_FREE_LIB_DIR_SUFFIX DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}" +-_ACEOF +- + + # relative paths + for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do +@@ -8411,28 +8336,6 @@ _ACEOF + + + +- # Check whether --enable-non-free was given. +-if test "${enable_non_free+set}" = set; then : +- enableval=$enable_non_free; +-fi +- +- +- arg1=`echo non-free | sed s/-/_/` +- +- if test "`eval echo \\$enable_$arg1`" = "no"; then +- OPT_DISABLE_NON_FREE=1 +- else +- OPT_DISABLE_NON_FREE=0 +- fi +- +- +-cat >>confdefs.h <<_ACEOF +-#define OPT_DISABLE_NON_FREE $OPT_DISABLE_NON_FREE +-_ACEOF +- +- +- +- + + # Check whether --enable-doc was given. + if test "${enable_doc+set}" = set; then : +@@ -8827,20 +8730,12 @@ if test $OPT_DISABLE_PIC14 = 0; then + + test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14" + +-fi +-if test $OPT_DISABLE_PIC14 = 0 && test $OPT_DISABLE_NON_FREE = 0; then +- test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic14" +- + fi + if test $OPT_DISABLE_PIC16 = 0; then + ac_config_files="$ac_config_files src/pic16/Makefile" + + test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic16" + +-fi +-if test $OPT_DISABLE_PIC16 = 0 && test $OPT_DISABLE_NON_FREE = 0; then +- test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/non-free/lib/pic16" +- + fi + + if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then +@@ -8885,15 +8780,9 @@ fi + + test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile" + +-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile" +- + + ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/librarian/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in" + +-if test $OPT_DISABLE_NON_FREE = 0; then +- ac_config_files="$ac_config_files device/non-free/include/Makefile" +- +-fi + cat >confcache <<\_ACEOF + # This file is a shell script that caches the results of configure + # tests run on this system so they can be shared between configure +@@ -9621,7 +9510,6 @@ do + "sdas/asstm8/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/asstm8/Makefile" ;; + "device/lib/stm8/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/stm8/Makefile" ;; + "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;; +- "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;; + "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;; +@@ -9634,7 +9522,6 @@ do + "support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;; +- "device/non-free/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/include/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +@@ -10443,54 +10330,6 @@ esac + incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'` + + +-nonFreeIncPath1=`echo "/${prefix2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeIncPath1:" in +- ::) nonFreeIncPath1='.' ;; +- :*[\\/]:) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeIncPath1=`echo "$nonFreeIncPath1" | sed 's,\\\\\\\\,\\\\,g'` +- +- +-nonFreeIncPath2=`echo "/${bin2data_dir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeIncPath2:" in +- ::) nonFreeIncPath2='.' ;; +- :*[\\/]:) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeIncPath2=`echo "$nonFreeIncPath2" | sed 's,\\\\\\\\,\\\\,g'` +- +- +-nonFreeIncPath3=`echo "${expanded_datadir}/${norm_non_free_inc_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeIncPath3:" in +- ::) nonFreeIncPath3='.' ;; +- :*[\\/]:) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeIncPath3=`echo "$nonFreeIncPath3" | sed 's,\\\\\\\\,\\\\,g'` +- +- + + libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'` + case ":$libPath1:" in +@@ -10540,54 +10379,6 @@ esac + libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'` + + +-nonFreeLibPath1=`echo "/${prefix2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeLibPath1:" in +- ::) nonFreeLibPath1='.' ;; +- :*[\\/]:) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeLibPath1=`echo "$nonFreeLibPath1" | sed 's,\\\\\\\\,\\\\,g'` +- +- +-nonFreeLibPath2=`echo "/${bin2data_dir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeLibPath2:" in +- ::) nonFreeLibPath2='.' ;; +- :*[\\/]:) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeLibPath2=`echo "$nonFreeLibPath2" | sed 's,\\\\\\\\,\\\\,g'` +- +- +-nonFreeLibPath3=`echo "${expanded_datadir}/${norm_non_free_lib_dir_suffix}" | sed 's,/\./,/,g'` +-case ":$nonFreeLibPath3:" in +- ::) nonFreeLibPath3='.' ;; +- :*[\\/]:) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,[\\/]*$,,'` ;; +- :*:) ;; +-esac +-case $dirch in +- +- *\\*) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1\\\\\\\\,g +- s,^[\\/],\\\\\\\\,'` ;; +- +- *) nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\(.\)[\\/][\\/]*,\1/,g'` ;; +-esac +-nonFreeLibPath3=`echo "$nonFreeLibPath3" | sed 's,\\\\\\\\,\\\\,g'` +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: + sdcc ${VERSION} is now configured for + +@@ -10618,7 +10409,6 @@ sdcc ${VERSION} is now configured for + tlcs90 ${enable_tlcs90_port} + stm8 ${enable_stm8_port} + +- Disable non-free lib: ${OPT_DISABLE_NON_FREE} + Disable packihx: ${OPT_DISABLE_PACKIHX} + Disable ucsim: ${OPT_DISABLE_UCSIM} + Disable device lib: ${OPT_DISABLE_DEVICE_LIB} +@@ -10633,9 +10423,6 @@ sdcc ${VERSION} is now configured for + include/library files: ${datadir}/${inclib_dir_suffix} + include files: ${datadir}/${include_dir_suffix} + library files: ${datadir}/${lib_dir_suffix} +- non-free files: ${datadir}/${non_free_inclib_dir_suffix} +- non-free include files: ${datadir}/${non_free_include_dir_suffix} +- non-free library files: ${datadir}/${non_free_lib_dir_suffix} + documentation: ${docdir} + + prefix: ${prefix} +@@ -10647,15 +10434,9 @@ sdcc ${VERSION} is now configured for + include files: ${incPath1} + path(argv[0])${incPath2} + ${incPath3} +- ${nonFreeIncPath1} +- path(argv[0])${nonFreeIncPath2} +- ${nonFreeIncPath3} + library files: \$SDCC_HOME${libPath1}${dirch}<model> + path(argv[0])${libPath2}${dirch}<model> + ${libPath3}${dirch}<model> +- \$SDCC_HOME${nonFreeLibPath1}${dirch}<model> +- path(argv[0])${nonFreeLibPath2}${dirch}<model> +- ${nonFreeLibPath3}${dirch}<model> + " >&5 + $as_echo " + sdcc ${VERSION} is now configured for +@@ -10687,7 +10468,6 @@ sdcc ${VERSION} is now configured for + tlcs90 ${enable_tlcs90_port} + stm8 ${enable_stm8_port} + +- Disable non-free lib: ${OPT_DISABLE_NON_FREE} + Disable packihx: ${OPT_DISABLE_PACKIHX} + Disable ucsim: ${OPT_DISABLE_UCSIM} + Disable device lib: ${OPT_DISABLE_DEVICE_LIB} +@@ -10702,9 +10482,6 @@ sdcc ${VERSION} is now configured for + include/library files: ${datadir}/${inclib_dir_suffix} + include files: ${datadir}/${include_dir_suffix} + library files: ${datadir}/${lib_dir_suffix} +- non-free files: ${datadir}/${non_free_inclib_dir_suffix} +- non-free include files: ${datadir}/${non_free_include_dir_suffix} +- non-free library files: ${datadir}/${non_free_lib_dir_suffix} + documentation: ${docdir} + + prefix: ${prefix} +@@ -10716,14 +10493,8 @@ sdcc ${VERSION} is now configured for + include files: ${incPath1} + path(argv[0])${incPath2} + ${incPath3} +- ${nonFreeIncPath1} +- path(argv[0])${nonFreeIncPath2} +- ${nonFreeIncPath3} + library files: \$SDCC_HOME${libPath1}${dirch}<model> + path(argv[0])${libPath2}${dirch}<model> + ${libPath3}${dirch}<model> +- \$SDCC_HOME${nonFreeLibPath1}${dirch}<model> +- path(argv[0])${nonFreeLibPath2}${dirch}<model> +- ${nonFreeLibPath3}${dirch}<model> + " >&6; } + # End of configure/configure.in +diff --git a/configure.ac b/configure.ac +index 3a16e42..bfba129 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -588,19 +588,6 @@ if test "${include_dir_suffix}" = ""; then + include_dir_suffix="${inclib_dir_suffix}/include" + fi + +-AC_ARG_VAR([non_free_inclib_dir_suffix], [appended to datadir to define SDCC's non-free include/lib directory]) +-if test "${non_free_inclib_dir_suffix}" = ""; then +- non_free_inclib_dir_suffix="sdcc/non-free" +-fi +- +-# non_free_include_dir_suffix: +-# *nix default: "sdcc/non-free/include" +- +-AC_ARG_VAR([non_free_include_dir_suffix], [appended to datadir to define SDCC's non-free include directory]) +-if test "${non_free_include_dir_suffix}" = ""; then +- non_free_include_dir_suffix="${non_free_inclib_dir_suffix}/include" +-fi +- + # lib_dir_suffix: + # *nix default: "sdcc/lib" + AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory]) +@@ -608,13 +595,6 @@ if test "${lib_dir_suffix}" = ""; then + lib_dir_suffix="${inclib_dir_suffix}/lib" + fi + +-# non_free_lib_dir_suffix: +-# *nix default: "sdcc/non-free/lib" +-AC_ARG_VAR([non_free_lib_dir_suffix], [appended to datadir to define SDCC's non-free library root directory]) +-if test "${non_free_lib_dir_suffix}" = ""; then +- non_free_lib_dir_suffix="${non_free_inclib_dir_suffix}/lib" +-fi +- + # docdir: + # *nix default: "${datadir}/sdcc/doc" + AC_ARG_VAR([docdir], [documentation installation directory]) +@@ -655,19 +635,11 @@ norm_inc_dir_suffix=${include_dir_suffix} + adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator]) + AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX, + DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX]) +-norm_non_free_inc_dir_suffix=${non_free_include_dir_suffix} +-adl_NORMALIZE_PATH([norm_non_free_inc_dir_suffix], [$sdccconf_h_dir_separator]) +-AC_DEFINE_UNQUOTED(NON_FREE_INCLUDE_DIR_SUFFIX, +- DIR_SEPARATOR_STRING "${norm_non_free_inc_dir_suffix}", [XXX]) + + norm_lib_dir_suffix=${lib_dir_suffix} + adl_NORMALIZE_PATH([norm_lib_dir_suffix], [$sdccconf_h_dir_separator]) + AC_DEFINE_UNQUOTED(LIB_DIR_SUFFIX, + DIR_SEPARATOR_STRING "${norm_lib_dir_suffix}", [XXX]) +-norm_non_free_lib_dir_suffix=${non_free_lib_dir_suffix} +-adl_NORMALIZE_PATH([norm_non_free_lib_dir_suffix], [$sdccconf_h_dir_separator]) +-AC_DEFINE_UNQUOTED(NON_FREE_LIB_DIR_SUFFIX, +- DIR_SEPARATOR_STRING "${norm_non_free_lib_dir_suffix}", [XXX]) + + # relative paths + adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir]) +@@ -836,7 +808,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx]) + AC_DO_DISABLER(sdcpp, SDCPP, [Disables building sdcpp]) + AC_DO_DISABLER(sdcdb, SDCDB, [Disables building sdcdb]) + AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils]) +-AC_DO_DISABLER(non-free, NON_FREE, [Disables non-free runtime library parts]) + + AC_DO_ENABLER(doc, DOC, [Enables building the documentation]) + AC_CHECK_PROG([LYX], [lyx], [lyx], [:]) +@@ -907,16 +878,10 @@ if test $OPT_DISABLE_PIC14 = 0; then + AC_CONFIG_FILES(src/pic14/Makefile) + test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14) + fi +-if test $OPT_DISABLE_PIC14 = 0 && test $OPT_DISABLE_NON_FREE = 0; then +- test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic14) +-fi + if test $OPT_DISABLE_PIC16 = 0; then + AC_CONFIG_FILES(src/pic16/Makefile) + test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic16) + fi +-if test $OPT_DISABLE_PIC16 = 0 && test $OPT_DISABLE_NON_FREE = 0; then +- test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/non-free/lib/pic16) +-fi + + if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_GBZ80 = 0 || test $OPT_DISABLE_TLCS90 = 0; then + AC_CONFIG_FILES([src/z80/Makefile]) +@@ -951,7 +916,6 @@ if test $OPT_DISABLE_STM8 = 0; then + fi + + test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile]) +-test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && AC_CONFIG_FILES([device/non-free/lib/Makefile]) + + AC_CONFIG_FILES([main.mk:main_in.mk + src/Makefile +@@ -966,9 +930,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in + Makefile + Makefile.common:Makefile.common.in + ]) +-if test $OPT_DISABLE_NON_FREE = 0; then +- AC_CONFIG_FILES([device/non-free/include/Makefile]) +-fi + AC_OUTPUT + + # I found no better place +@@ -986,16 +947,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [ + adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch]) + adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix}, [incPath2], [$dirch]) + adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch]) +-adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_non_free_inc_dir_suffix}, [nonFreeIncPath1], [$dirch]) +-adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_non_free_inc_dir_suffix}, [nonFreeIncPath2], [$dirch]) +-adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_non_free_inc_dir_suffix}, [nonFreeIncPath3], [$dirch]) + + adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_lib_dir_suffix}, [libPath1], [$dirch]) + adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_lib_dir_suffix}, [libPath2], [$dirch]) + adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_lib_dir_suffix}, [libPath3], [$dirch]) +-adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_non_free_lib_dir_suffix}, [nonFreeLibPath1], [$dirch]) +-adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_non_free_lib_dir_suffix}, [nonFreeLibPath2], [$dirch]) +-adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_non_free_lib_dir_suffix}, [nonFreeLibPath3], [$dirch]) + + AC_MSG_RESULT([ + sdcc ${VERSION} is now configured for +@@ -1027,7 +982,6 @@ sdcc ${VERSION} is now configured for + tlcs90 ${enable_tlcs90_port} + stm8 ${enable_stm8_port} + +- Disable non-free lib: ${OPT_DISABLE_NON_FREE} + Disable packihx: ${OPT_DISABLE_PACKIHX} + Disable ucsim: ${OPT_DISABLE_UCSIM} + Disable device lib: ${OPT_DISABLE_DEVICE_LIB} +@@ -1042,9 +996,6 @@ sdcc ${VERSION} is now configured for + include/library files: ${datadir}/${inclib_dir_suffix} + include files: ${datadir}/${include_dir_suffix} + library files: ${datadir}/${lib_dir_suffix} +- non-free files: ${datadir}/${non_free_inclib_dir_suffix} +- non-free include files: ${datadir}/${non_free_include_dir_suffix} +- non-free library files: ${datadir}/${non_free_lib_dir_suffix} + documentation: ${docdir} + + prefix: ${prefix} +@@ -1056,14 +1007,8 @@ sdcc ${VERSION} is now configured for + include files: ${incPath1} + path(argv[[0]])${incPath2} + ${incPath3} +- ${nonFreeIncPath1} +- path(argv[[0]])${nonFreeIncPath2} +- ${nonFreeIncPath3} + library files: \$SDCC_HOME${libPath1}${dirch}<model> + path(argv[[0]])${libPath2}${dirch}<model> + ${libPath3}${dirch}<model> +- \$SDCC_HOME${nonFreeLibPath1}${dirch}<model> +- path(argv[[0]])${nonFreeLibPath2}${dirch}<model> +- ${nonFreeLibPath3}${dirch}<model> + ]) + # End of configure/configure.in +diff --git a/device/lib/pic14/Makefile.common b/device/lib/pic14/Makefile.common +index e456838..8179255 100644 +--- a/device/lib/pic14/Makefile.common ++++ b/device/lib/pic14/Makefile.common +@@ -3,11 +3,10 @@ EARCH ?= @EARCH@ + + AM_CPPFLAGS = + AM_CPPFLAGS += -I. +-AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic14 + + AM_CFLAGS = + AM_CFLAGS += -mpic14 -p$(ARCH) +-AM_CFLAGS += --no-warn-non-free + AM_CFLAGS += --std-c99 + #AM_CFLAGS += --asm="$(CCAS)" + ##AM_CFLAGS += -Wa,-q +@@ -29,7 +28,7 @@ AM_CFLAGS += --i-code-in-asm + + AM_CCASFLAGS = + AM_CCASFLAGS += -p$(ARCH) +-AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14 -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic14 + AM_CCASFLAGS += -I$(srcdir) + + clean-local: +diff --git a/device/lib/pic14/Makefile.in b/device/lib/pic14/Makefile.in +index f1c9940..de47dbe 100644 +--- a/device/lib/pic14/Makefile.in ++++ b/device/lib/pic14/Makefile.in +@@ -297,15 +297,13 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + SUBDIRS = libm libsdcc/regular $(am__append_1) $(am__append_2) +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 + #AM_CFLAGS += --asm="$(CCAS)" + + #AM_CFLAGS += --debug-ralloc + #AM_CFLAGS += --debug-xtra + #AM_CFLAGS += --pcode-verbose +-AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ +- --i-code-in-asm ++AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm + + #AM_CFLAGS += --no-pcode-opt + +@@ -316,8 +314,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir) ++AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir) + DISTCLEANFILES = a.cod a.hex ./.checkdevices/* + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive +diff --git a/device/lib/pic14/libm/Makefile.in b/device/lib/pic14/libm/Makefile.in +index fd9fd2e..4a7d250 100644 +--- a/device/lib/pic14/libm/Makefile.in ++++ b/device/lib/pic14/libm/Makefile.in +@@ -299,15 +299,13 @@ libm_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c ceilf.c \ + libm_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS) + libme_a_SOURCES = $(libm_a_SOURCES) + libme_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS) $(am__append_2) +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 + #AM_CFLAGS += --asm="$(CCAS)" + + #AM_CFLAGS += --debug-ralloc + #AM_CFLAGS += --debug-xtra + #AM_CFLAGS += --pcode-verbose +-AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ +- --i-code-in-asm ++AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm + + #AM_CFLAGS += --no-pcode-opt + +@@ -318,8 +316,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir) ++AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in +index e946da7..bced941 100644 +--- a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in ++++ b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in +@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \ + _gptrput3.S _gptrput4.S macros.inc + libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS) + CLEANFILES = ../*.asm ../*.lst +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 + #AM_CFLAGS += --asm="$(CCAS)" + + #AM_CFLAGS += --debug-ralloc + #AM_CFLAGS += --debug-xtra + #AM_CFLAGS += --pcode-verbose +-AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ +- --i-code-in-asm ++AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm + + #AM_CFLAGS += --no-pcode-opt + +@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir) ++AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic14/libsdcc/enhanced/Makefile.in b/device/lib/pic14/libsdcc/enhanced/Makefile.in +index 7fe1e25..854f87f 100644 +--- a/device/lib/pic14/libsdcc/enhanced/Makefile.in ++++ b/device/lib/pic14/libsdcc/enhanced/Makefile.in +@@ -311,15 +311,13 @@ libsdcce_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \ + _gptrput3.S _gptrput4.S macros.inc + libsdcce_a_CFLAGS = -p$(EARCH) $(AM_CFLAGS) + CLEANFILES = ../*.asm ../*.lst +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 + #AM_CFLAGS += --asm="$(CCAS)" + + #AM_CFLAGS += --debug-ralloc + #AM_CFLAGS += --debug-xtra + #AM_CFLAGS += --pcode-verbose +-AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ +- --i-code-in-asm ++AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm + + #AM_CFLAGS += --no-pcode-opt + +@@ -330,8 +328,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir) ++AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic14/libsdcc/regular/Makefile.in b/device/lib/pic14/libsdcc/regular/Makefile.in +index 29a5924..8c60a49 100644 +--- a/device/lib/pic14/libsdcc/regular/Makefile.in ++++ b/device/lib/pic14/libsdcc/regular/Makefile.in +@@ -304,15 +304,13 @@ libsdcc_a_SOURCES = ../_divschar.c ../_divsint.c ../_divslong.c \ + _gptrput3.S _gptrput4.S macros.inc shadowregs.c + libsdcc_a_CFLAGS = -p$(ARCH) $(AM_CFLAGS) + CLEANFILES = ../*.asm ../*.lst +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic14 + #AM_CFLAGS += --asm="$(CCAS)" + + #AM_CFLAGS += --debug-ralloc + #AM_CFLAGS += --debug-xtra + #AM_CFLAGS += --pcode-verbose +-AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ +- --i-code-in-asm ++AM_CFLAGS = -mpic14 -p$(ARCH) --std-c99 --i-code-in-asm + + #AM_CFLAGS += --no-pcode-opt + +@@ -323,8 +321,7 @@ AM_CFLAGS = -mpic14 -p$(ARCH) --no-warn-non-free --std-c99 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 \ +- -I$(top_srcdir)/../../non-free/include/pic14 -I$(srcdir) ++AM_CCASFLAGS = -p$(ARCH) -I$(top_srcdir)/../../include/pic14 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/Makefile.common b/device/lib/pic16/Makefile.common +index 73200d7..e298bf5 100644 +--- a/device/lib/pic16/Makefile.common ++++ b/device/lib/pic16/Makefile.common +@@ -1,11 +1,10 @@ + AM_CPPFLAGS = + AM_CPPFLAGS += -I. +-AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16 -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS += -I$(top_srcdir)/../../include/pic16 + + AM_CFLAGS = + AM_CFLAGS += --std-c99 + AM_CFLAGS += --asm="$(CCAS)" +-AM_CFLAGS += --no-warn-non-free + ##AM_CFLAGS += -Wa,-q + + AM_CFLAGS += --fomit-frame-pointer +@@ -31,7 +30,7 @@ AM_CFLAGS += --i-code-in-asm + AM_CFLAGS += @USE_FLOATS@ + + AM_CCASFLAGS = +-AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic16 -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CCASFLAGS += -I$(top_srcdir)/../../include/pic16 + AM_CCASFLAGS += -I$(srcdir) + + clean-local: +diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in +index b17f151..31ecfa4 100644 +--- a/device/lib/pic16/Makefile.in ++++ b/device/lib/pic16/Makefile.in +@@ -87,10 +87,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = . + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ +@@ -295,8 +292,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + SUBDIRS = debug libc libio libm libsdcc startup +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -310,11 +306,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + DISTCLEANFILES = a.cod a.hex ./.checkdevices/* pics.supported + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive +diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure +index d8760a0..eaea231 100755 +--- a/device/lib/pic16/configure ++++ b/device/lib/pic16/configure +@@ -3657,7 +3657,6 @@ fi + + + +-LIBDEV="${srcdir}/../../non-free/lib/pic16/libdev" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking devices supported by gputils" >&5 + $as_echo_n "checking devices supported by gputils... " >&6; } + GOOD_PICS=""; +diff --git a/device/lib/pic16/configure.ac b/device/lib/pic16/configure.ac +index 3966c11..cdbffc7 100644 +--- a/device/lib/pic16/configure.ac ++++ b/device/lib/pic16/configure.ac +@@ -68,10 +68,6 @@ AC_SUBST(OBJEXT, [o]) + _AM_DEPENDENCIES(CC) + _AM_DEPENDENCIES(CCAS) + +-LIBDEV="${srcdir}/../../non-free/lib/pic16/libdev" +-m4_include([../../non-free/lib/pic16/supported-devices.ac]) +-m4_include([../../non-free/lib/pic16/processors.ac]) +- + # Checks for libraries. + + # Checks for header files. +diff --git a/device/lib/pic16/debug/Makefile.in b/device/lib/pic16/debug/Makefile.in +index bc77b98..724a443 100644 +--- a/device/lib/pic16/debug/Makefile.in ++++ b/device/lib/pic16/debug/Makefile.in +@@ -88,10 +88,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = debug + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -290,8 +287,7 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + lib_LIBRARIES = libdebug.a + libdebug_a_SOURCES = gstack/gstack.c +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -305,11 +301,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in +index 6d2699f..5546319 100644 +--- a/device/lib/pic16/libc/Makefile.in ++++ b/device/lib/pic16/libc/Makefile.in +@@ -88,10 +88,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = libc + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -344,8 +341,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \ + string/strpbrk.c string/strrchr.c string/strspn.c \ + string/strstr.c string/strtok.c string/strupr.c \ + utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -359,11 +355,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in +index 0d7c731..64b56c8 100644 +--- a/device/lib/pic16/libio/Makefile.in ++++ b/device/lib/pic16/libio/Makefile.in +@@ -481,10 +481,7 @@ POST_UNINSTALL = : + @ENABLE_18LF8723_TRUE@am__append_393 = libio18lf8723.a + subdir = libio + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -9826,8 +9823,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \ + libio18lf8722_a_CFLAGS = -p18lf8722 $(AM_CFLAGS) + libio18lf8723_a_SOURCES = dummy.c + libio18lf8723_a_CFLAGS = -p18lf8723 $(AM_CFLAGS) +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -9841,11 +9837,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/libio/mkmk.sh b/device/lib/pic16/libio/mkmk.sh +index 211604e..e8896bf 100755 +--- a/device/lib/pic16/libio/mkmk.sh ++++ b/device/lib/pic16/libio/mkmk.sh +@@ -17,40 +17,6 @@ lib_LIBRARIES = + + HEREDOC + +-for f in "../../../non-free/lib/pic16/libdev/pic1"*.c; do +- p="${f##*/pic}"; +- p="${p%.c}"; +- P=$(echo "$p" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ); +- echo "Generating for device >>${p}<<" >&2; +- cat <<HERE +-if ENABLE_$P +-lib_LIBRARIES += libio${p}.a +-endif ENABLE_$P +-libio${p}_a_SOURCES = dummy.c +-HERE +- sed -e 's/\s*\(#.*\)\{0,1\}$//' adc.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No adc." >&2 ; } || cat <<HERE +-libio${p}_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c +-libio${p}_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c +-HERE +- sed -e 's/\s*\(#.*\)\{0,1\}$//' i2c.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No i2c." >&2 ; } || cat <<HERE +-libio${p}_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c +-libio${p}_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c +-libio${p}_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c +-libio${p}_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c +-libio${p}_a_SOURCES += i2c/i2cwrites.c +-HERE +- sed -e 's/\s*\(#.*\)\{0,1\}$//' usart.ignore | grep -x "$p" > /dev/null 2>&1 && { echo "No usart." >&2 ; } || cat <<HERE +-libio${p}_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c +-libio${p}_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c +-libio${p}_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c +-libio${p}_a_SOURCES += usart/usartd.c +-HERE +- cat <<HERE +-libio${p}_a_CFLAGS = -p${p} \$(AM_CFLAGS) +- +-HERE +-done +- + cat <<HEREDOC + include \$(top_srcdir)/Makefile.common + +diff --git a/device/lib/pic16/libm/Makefile.in b/device/lib/pic16/libm/Makefile.in +index 7f90e89..94cd985 100644 +--- a/device/lib/pic16/libm/Makefile.in ++++ b/device/lib/pic16/libm/Makefile.in +@@ -88,10 +88,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = libm + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -299,8 +296,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \ + frexpf.c isinf.c isnan.c ldexpf.c log10f.c logf.c modff.c \ + powf.c sincosf.c sincoshf.c sinf.c sinhf.c sqrtf.c tancotf.c \ + tanf.c tanhf.c +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -314,11 +310,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in +index e58bad0..b318b70 100644 +--- a/device/lib/pic16/libsdcc/Makefile.in ++++ b/device/lib/pic16/libsdcc/Makefile.in +@@ -88,10 +88,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = libsdcc + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -364,8 +361,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \ + int/modsint.c int/moduint.c int/mulint.c long/divslong.c \ + long/divulong.c long/modslong.c long/modulong.c long/mullong.c \ + lregs/lrrest.c lregs/lrst.c stack/stack.S +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -379,11 +375,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in +index 3c44c6f..274acde 100644 +--- a/device/lib/pic16/startup/Makefile.in ++++ b/device/lib/pic16/startup/Makefile.in +@@ -89,10 +89,7 @@ PRE_UNINSTALL = : + POST_UNINSTALL = : + subdir = startup + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +-am__aclocal_m4_deps = \ +- $(top_srcdir)/../../non-free/lib/pic16/supported-devices.ac \ +- $(top_srcdir)/../../non-free/lib/pic16/processors.ac \ +- $(top_srcdir)/configure.ac ++am__aclocal_m4_deps = $(top_srcdir)/configure.ac + am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) + DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +@@ -306,8 +303,7 @@ libcrt0iz_a_SOURCES = crt0iz.c + # Force installation of .o files into $libdir + crtdir = $(libdir) + crt_DATA = crt0.o crt0i.o crt0iz.o +-AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 ++AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 + #AM_CFLAGS += --no-optimize-goto + + #AM_CFLAGS += --debug-ralloc +@@ -321,11 +317,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ + #AM_CFLAGS += --noinduction + #AM_CFLAGS += --nojtbound + #AM_CFLAGS += --noloopreverse +-AM_CFLAGS = --std-c99 --asm="$(CCAS)" --no-warn-non-free \ ++AM_CFLAGS = --std-c99 --asm="$(CCAS)" \ + --fomit-frame-pointer --obanksel=9 --denable-peeps \ + --optimize-cmp --optimize-df --i-code-in-asm @USE_FLOATS@ +-AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 \ +- -I$(top_srcdir)/../../non-free/include/pic16 -I$(srcdir) ++AM_CCASFLAGS = -I$(top_srcdir)/../../include/pic16 -I$(srcdir) + all: all-am + + .SUFFIXES: +diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt +index 7d83ef7..5bd71d3 100644 +--- a/doc/INSTALL.txt ++++ b/doc/INSTALL.txt +@@ -18,9 +18,7 @@ To install: + + This will install sdcc binaries into: /usr/local/bin/ + header files into: /usr/local/share/sdcc/include/ +-non-free header files into: /usr/local/share/sdcc/non-free/include/ + library files into: /usr/local/share/sdcc/lib/ +-non-free library files into: /usr/local/share/sdcc/non-free/lib/ + and documentation into: /usr/local/share/sdcc/doc/ + + You can test the install by entering: +@@ -44,9 +42,7 @@ To install: + + By default this will install sdcc binaries into: C:\Program Files\SDCC\bin\ + header files into: C:\Program Files\SDCC\include\ +-non-free header files into: C:\Program Files\SDCC\non-free\include\ + library files into: C:\Program Files\SDCC\lib\ +-non-free library files into: C:\Program Files\SDCC\non-free\lib\ + and documentation into: C:\Program Files\SDCC\doc\ + + You can test the install by opening a DOS box and entering: +@@ -75,9 +71,7 @@ To install: + + This will install sdcc binaries into: /Developer/sdcc/bin/ + header files into: /Developer/sdcc/share/sdcc/include/ +-non-free header files into: /Developer/sdcc/share/sdcc/non-free/include/ + library files into: /Developer/sdcc/share/sdcc/lib/ +-non-free library files into: /Developer/sdcc/share/sdcc/non-free/lib/ + and documentation into: /Developer/sdcc/share/sdcc/doc/ + + You can test the install by entering: +diff --git a/doc/README.txt b/doc/README.txt +index 86ed809..69e16e2 100644 +--- a/doc/README.txt ++++ b/doc/README.txt +@@ -35,10 +35,9 @@ Exception are pic device libraries and header files which are derived + from Microchip header (.inc) and linker script (.lkr) files. Microchip + requires that "The header files should state that they are only to be + used with authentic Microchip devices" which makes them incompatible +-with the GPL. Pic device libraries and header files are located at +-non-free/lib and non-free/include directories respectively. Sdcc should +-be run with the --use-non-free command line option in order to include +-non-free header files and libraries. ++with the GPL. These non-free libraries and header files (and the build ++and run-time options that enable their use) are omitted in the SDCC ++package distributed with GNU Guix. + + See: + +diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx +index 41e8db0..9a971fa 100644 +--- a/doc/sdccman.lyx ++++ b/doc/sdccman.lyx +@@ -1083,54 +1083,9 @@ Exception are pic device libraries and header files which are derived from + Microchip requires that "The header files should state that they are only + to be used with authentic Microchip devices" which makes them incompatible + with the GPL. +- Pic device libraries and header files are located at non-free/lib and non-free/ +-include directories respectively. +- SDCC should be run with the +-\series bold +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +-- +-\series default +-use-non-free +-\series bold +- +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- +-\series default +- command line option in order to include non-free header files and libraries. +- ++ These non-free libraries and header files (and the build and run-time options ++ that enable their use) are omitted in the SDCC package distributed with ++ GNU Guix. + \end_layout + + \begin_layout Itemize +@@ -2890,18 +2845,6 @@ include_dir_suffix environment variable, see table below + \end_inset + + +-\begin_inset space ~ +-\end_inset +- +-non_free_include_dir_suffix environment variable, see table below +-\end_layout +- +-\begin_layout Labeling +-\labelwidthstring 00.00.0000 +-\begin_inset space ~ +-\end_inset +- +- + \begin_inset space ~ + \end_inset + +@@ -2914,22 +2857,6 @@ lib_dir_suffix environment variable, see table below + \end_inset + + +-\begin_inset space ~ +-\end_inset +- +- +-\begin_inset space ~ +-\end_inset +- +-non_free_lib_dir_suffix environment variable, see table below +-\end_layout +- +-\begin_layout Labeling +-\labelwidthstring 00.00.0000 +-\begin_inset space ~ +-\end_inset +- +- + \begin_inset space ~ + \end_inset + +@@ -3410,7 +3337,7 @@ These defaults are: + \begin_layout Standard + \align center + \begin_inset Tabular +-<lyxtabular version="3" rows="11" columns="3"> ++<lyxtabular version="3" rows="9" columns="3"> + <features tabularvalignment="middle"> + <column alignment="block" valignment="top" width="0in"> + <column alignment="block" valignment="top" width="0in"> +@@ -3694,68 +3621,6 @@ sdcc/include + include + \end_layout + +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-NON_FREE_INCLUDE_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-sdcc/non-free/include +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-non-free/include +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-LIB_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-sdcc/lib +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-lib +-\end_layout +- + \end_inset + </cell> + </row> +@@ -3766,7 +3631,7 @@ lib + \begin_layout Plain Layout + + \emph on +-NON_FREE_LIB_DIR_SUFFIX ++LIB_DIR_SUFFIX + \end_layout + + \end_inset +@@ -3775,7 +3640,7 @@ NON_FREE_LIB_DIR_SUFFIX + \begin_inset Text + + \begin_layout Plain Layout +-sdcc/non-free/lib ++sdcc/lib + \end_layout + + \end_inset +@@ -3784,7 +3649,7 @@ sdcc/non-free/lib + \begin_inset Text + + \begin_layout Plain Layout +-non-free/lib ++lib + \end_layout + + \end_inset +@@ -4183,20 +4048,6 @@ include + \end_inset + + +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-non_free_include_dir_suffix= +-\begin_inset Quotes srd +-\end_inset +- +-non-free/include +-\begin_inset Quotes srd +-\end_inset +- +- + \backslash + + \begin_inset Newline newline +@@ -4211,20 +4062,6 @@ lib + \end_inset + + +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-non_free_lib_dir_suffix= +-\begin_inset Quotes srd +-\end_inset +- +-non-free/lib +-\begin_inset Quotes srd +-\end_inset +- +- + \backslash + + \begin_inset Newline newline +@@ -4405,20 +4242,6 @@ include + \end_inset + + +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-non_free_include_dir_suffix= +-\begin_inset Quotes srd +-\end_inset +- +-non-free/include +-\begin_inset Quotes srd +-\end_inset +- +- + \backslash + + \begin_inset Newline newline +@@ -4433,20 +4256,6 @@ lib + \end_inset + + +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-non_free_lib_dir_suffix= +-\begin_inset Quotes srd +-\end_inset +- +-non-free/lib +-\begin_inset Quotes srd +-\end_inset +- +- + \backslash + + \begin_inset Newline newline +@@ -4543,7 +4352,7 @@ Install paths + \begin_layout Standard + \align center + \begin_inset Tabular +-<lyxtabular version="3" rows="7" columns="4"> ++<lyxtabular version="3" rows="5" columns="4"> + <features tabularvalignment="middle"> + <column alignment="left" valignment="top"> + <column alignment="left" valignment="top" width="4.5cm"> +@@ -4699,64 +4508,6 @@ include + <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> + \begin_inset Text + +-\begin_layout Plain Layout +-Non-free include files +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-$DATADIR/non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$INCLUDE_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-/usr/local/share/ +-\begin_inset Newline newline +-\end_inset +- +-sdcc/non-free/include +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\backslash +-sdcc +-\backslash +-non-free +-\backslash +-include +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- + \begin_layout Plain Layout + Library file** + \end_layout +@@ -4806,64 +4557,6 @@ sdcc + lib + \end_layout + +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Library file** +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-$DATADIR/non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$LIB_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-/usr/local/share/ +-\begin_inset Newline newline +-\end_inset +- +-sdcc/non-free/lib +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\backslash +-sdcc +-\backslash +-non-free +-\backslash +-lib +-\end_layout +- + \end_inset + </cell> + </row> +@@ -5186,7 +4879,7 @@ $PATH + \begin_layout Standard + \align center + \begin_inset Tabular +-<lyxtabular version="3" rows="9" columns="4"> ++<lyxtabular version="3" rows="6" columns="4"> + <features tabularvalignment="middle"> + <column alignment="block" valignment="top" width="0.5cm"> + <column alignment="block" valignment="top" width="4.8cm"> +@@ -5464,203 +5157,13 @@ include + </cell> + </row> + <row> +-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none"> ++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout + 5 + \end_layout + +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-$DATADIR/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$INCLUDE_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-/usr/local/share/ +-\begin_inset Newline newline +-\end_inset +- +-sdcc/include +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-(not on Win32) +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-6 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME/ +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$PREFIX2DATA_DIR/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$INCLUDE_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME/share/ +-\begin_inset Newline newline +-\end_inset +- +-sdcc/non-free/include +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME +-\backslash +-non-free +-\backslash +-include +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-7 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0])/ +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$BIN2DATADIR/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$INCLUDE_DIR_SUFFIX +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0])/../ +-\begin_inset Newline newline +-\end_inset +- +-sdcc/non-free/include +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0]) +-\backslash +-.. +-\backslash +-non-free +-\backslash +-include +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-8 +-\end_layout +- + \end_inset + </cell> + <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +@@ -5676,21 +5179,13 @@ $DATADIR/ + \end_inset + + +-\emph on +-non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- + \emph on + $INCLUDE_DIR_SUFFIX + \end_layout + + \end_inset + </cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> ++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout +@@ -5698,7 +5193,7 @@ $INCLUDE_DIR_SUFFIX + \begin_inset Newline newline + \end_inset + +-sdcc/non-free/include ++sdcc/include + \end_layout + + \end_inset +@@ -5796,7 +5291,7 @@ model + \begin_layout Standard + \align center + \begin_inset Tabular +-<lyxtabular version="3" rows="10" columns="4"> ++<lyxtabular version="3" rows="6" columns="4"> + <features tabularvalignment="middle"> + <column alignment="block" valignment="top" width="0.5cm"> + <column alignment="block" valignment="top" width="4.5cm"> +@@ -6076,7 +5571,7 @@ lib + </cell> + </row> + <row> +-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none"> ++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout +@@ -6085,7 +5580,7 @@ lib + + \end_inset + </cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> ++<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout +@@ -6116,7 +5611,7 @@ $LIB_DIR_SUFFIX/ + + \end_inset + </cell> +-<cell alignment="left" valignment="top" topline="true" leftline="true" usebox="none"> ++<cell alignment="left" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout +@@ -6131,7 +5626,7 @@ lib/ + + \end_inset + </cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> ++<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> + \begin_inset Text + + \begin_layout Plain Layout +@@ -6154,308 +5649,6 @@ lib + <model> + \end_layout + +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-6 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-$DATADIR/non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$LIB_DIR_SUFFIX/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-/usr/local/share/sdcc/ +-\begin_inset Newline newline +-\end_inset +- +-lib/ +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-(not on Win32) +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-7 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME/ +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$PREFIX2DATA_DIR/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$LIB_DIR_SUFFIX/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME/share/sdcc/ +-\begin_inset Newline newline +-\end_inset +- +-non-free/lib/ +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-$SDCC_HOME +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-lib +-\backslash +-non-free +-\emph on +- +-\backslash +-<model> +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-8 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0])/ +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$BIN2DATADIR/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$LIB_DIR_SUFFIX/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0])/../sdcc/ +-\begin_inset Newline newline +-\end_inset +- +-non-free/lib/ +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-path(argv[0]) +-\backslash +-.. +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-lib +-\backslash +-non-free +-\emph on +- +-\backslash +-<model> +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-9 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +- +-\emph on +-$DATADIR/non-free/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-$LIB_DIR_SUFFIX/ +-\emph default +- +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-/usr/local/share/sdcc/ +-\begin_inset Newline newline +-\end_inset +- +-non-free/lib/ +-\begin_inset Newline newline +-\end_inset +- +- +-\emph on +-<model> +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-(not on Win32) +-\end_layout +- + \end_inset + </cell> + </row> +@@ -8723,14 +7916,6 @@ In <installdir>/share/sdcc/include + the include files + \end_layout + +-\begin_layout Standard +-In <installdir>/share/sdcc/non-free/include +-\end_layout +- +-\begin_layout Itemize +-the non-free include files +-\end_layout +- + \begin_layout Standard + In <installdir>/share/sdcc/lib + \end_layout +@@ -8739,14 +7924,6 @@ In <installdir>/share/sdcc/lib + the src and target subdirectories with the precompiled relocatables. + \end_layout + +-\begin_layout Standard +-In <installdir>/share/sdcc/non-free/lib +-\end_layout +- +-\begin_layout Itemize +-the src and target subdirectories with the non-free precompiled relocatables. +-\end_layout +- + \begin_layout Standard + In <installdir>/share/sdcc/doc + \end_layout +@@ -15589,66 +14766,6 @@ splint + myprogram.c + \end_layout + +-\begin_layout Labeling +-\labelwidthstring 00.00.0000 +- +-\series bold +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\series default +- +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- +-\begin_inset CommandInset label +-LatexCommand label +-name "lyx:--use-non-free" +- +-\end_inset +- +- Search / include non-free licensed libraries and header files, located +- under the non-free directory - see section +-\begin_inset CommandInset ref +-LatexCommand ref +-reference "subsec:Search-Paths" +- +-\end_inset +- +- +-\end_layout +- + \begin_layout Subsection + Linker Options + \begin_inset Index idx +@@ -44653,66 +43770,9 @@ http://sourceforge.net/projects/gputils + Pic device specific header and c source files are automatically generated + from MPLAB include files, which are published by Microchip with a special + requirement that they are only to be used with authentic Microchip devices. +- This reqirement prevents to publish generated header and c source files +- under the GPL compatible license, so they are located in non-free directory +- (see section +-\begin_inset CommandInset ref +-LatexCommand ref +-reference "subsec:Search-Paths" +- +-\end_inset +- +-). +- In order to include them in include and library search paths, the +-\series bold +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- +-\series default +- command line option should be defined. +-\begin_inset Newline newline +-\end_inset +- +- +-\begin_inset Newline newline +-\end_inset +- +-NOTE: the compiled code, which use non-free pic device specific libraries, +- is not GPL compatible! ++ As this restriction is incompatible with the goal of software freedom, ++ header files and libraries generated from these files are not included ++ in the SDCC package distributed with Guix. + \begin_inset Newline newline + \end_inset + +@@ -44766,7 +43826,7 @@ Makefile + \begin_inset space ~ + \end_inset + +-sdcc -V --use-non-free -mpic14 -p16f877 -c $< ++sdcc -V -mpic14 -p16f877 -c $< + \begin_inset Newline newline + \end_inset + +@@ -44860,7 +43920,7 @@ Makefile + \begin_inset space ~ + \end_inset + +-sdcc -S -V --use-non-free -mpic14 -p16f877 $< ++sdcc -S -V -mpic14 -p16f877 $< + \begin_inset Newline newline + \end_inset + +@@ -45142,47 +44202,6 @@ status collapsed + \begin_layout Plain Layout + + +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-PIC14!Options!- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- make non-free device headers and libraries available in the compiler's +- search paths (implicit -I and -L options) +-\end_layout +- +-\begin_layout Description +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- + \backslash + / + \end_layout +@@ -46055,47 +45074,6 @@ status collapsed + -all-callee-saves + \end_layout + +-\begin_layout Description +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-PIC16!Options!- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- Make non-free device headers and libraries available in the compiler's +- search paths (implicit -I and -L options). +-\end_layout +- + \begin_layout Subsection + Port Specific Options + \begin_inset Index idx +@@ -47372,188 +46350,6 @@ Linker + \end_inset + + +-\end_layout +- +-\begin_layout Standard +-If the +-\series bold +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- +-\series default +- command line option is specified, non-free directories are searched: +-\begin_inset Newline newline +-\end_inset +- +- +-\begin_inset Separator latexpar +-\end_inset +- +- +-\end_layout +- +-\begin_layout Standard +-\align center +-\begin_inset Tabular +-<lyxtabular version="3" rows="3" columns="4"> +-<features tabularvalignment="middle"> +-<column alignment="center" valignment="top"> +-<column alignment="center" valignment="top"> +-<column alignment="center" valignment="top"> +-<column alignment="center" valignment="top"> +-<row> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Directory +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Description +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Target +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Command prefix +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-PREFIX/sdcc/non-free/include/pic16 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-PIC16 specific non-free headers +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Compiler +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +--I +-\end_layout +- +-\end_inset +-</cell> +-</row> +-<row> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-PREFIX/sdcc/non-free/lib/pic16 +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-PIC16 specific non-free libraries +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +-Linker +-\end_layout +- +-\end_inset +-</cell> +-<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none"> +-\begin_inset Text +- +-\begin_layout Plain Layout +--L +-\end_layout +- +-\end_inset +-</cell> +-</row> +-</lyxtabular> +- +-\end_inset +- +- + \end_layout + + \begin_layout Subsection +@@ -48249,66 +47045,9 @@ name "subsec:PIC16_Header-Files-and-Libraries" + Pic device specific header and c source files are automatically generated + from MPLAB include files, which are published by Microchip with a special + requirement that they are only to be used with authentic Microchip devices. +- This requirement prevents to publish generated header and c source files +- under the GPL compatible license, so they are located in the non-free directory +- (see section +-\begin_inset CommandInset ref +-LatexCommand ref +-reference "subsec:Search-Paths" +- +-\end_inset +- +-). +- In order to include them in include and library search paths, the +-\series bold +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\begin_inset Index idx +-status collapsed +- +-\begin_layout Plain Layout +-- +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-/ +-\end_layout +- +-\end_inset +- +--use-non-free +-\end_layout +- +-\end_inset +- +- +-\series default +- command line option should be defined. +-\begin_inset Newline newline +-\end_inset +- +- +-\begin_inset Newline newline +-\end_inset +- +-NOTE: the compiled code, which use non-free pic device specific libraries, +- is not GPL compatible! ++ As this restriction is incompatible with the goal of software freedom, ++ header files and libraries generated from these files are not included ++ in the SDCC package distributed with Guix. + \end_layout + + \begin_layout Subsection +@@ -48554,195 +47293,6 @@ vfprintf.c + should also work, but is untested. + \end_layout + +-\begin_layout Subsection +-Adding New Devices to the Port +-\end_layout +- +-\begin_layout Standard +-Adding support for a new 16 +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +-, +-\end_layout +- +-\end_inset +- +-bit PIC MCU requires the following steps: +-\end_layout +- +-\begin_layout Enumerate +-Create picDEVICE.c and picDEVICE.h from pDEVICE.inc using +-\begin_inset Newline newline +-\end_inset +- +- +-\family typewriter +-perl /path/to/sdcc/support/scripts/inc2h-pic16.pl +-\backslash +- +-\begin_inset Newline newline +-\end_inset +- +-/path/to/gputils/header/pDEVICE.inc +-\end_layout +- +-\begin_layout Enumerate +- +-\family typewriter +-mv picDEVICE.h /path/to/sdcc/device/non-free/include/pic16 +-\end_layout +- +-\begin_layout Enumerate +- +-\family typewriter +-mv picDEVICE.c /path/to/sdcc/device/non-free/lib/pic16/libdev +-\end_layout +- +-\begin_layout Enumerate +-Either +-\begin_inset Separator latexpar +-\end_inset +- +- +-\end_layout +- +-\begin_deeper +-\begin_layout Enumerate +-add the new device to +-\family typewriter +-/path/to/sdcc/device/lib/pic16/libio/*.ignore +-\family default +- to suppress building any of the I/O libraries for the new device +-\begin_inset Foot +-status collapsed +- +-\begin_layout Plain Layout +-In fact, the +-\family typewriter +-.ignore +-\family default +- files are only used when auto-generating +-\family typewriter +-Makefile.am +-\family default +- using the +-\family typewriter +-.../libio/mkmk.sh +-\family default +- script. +-\end_layout +- +-\end_inset +- +-, or +-\end_layout +- +-\begin_layout Enumerate +-add the device (family) to +-\family typewriter +-/path/to/sdcc/support/scripts/pic18fam-h-gen.pl +-\family default +- to assign I/O styles, run the +-\family typewriter +-pic18fam-h-gen.pl +-\family default +- script to generate +-\family typewriter +-pic18fam.h.gen +-\family default +-, replace your existing +-\family typewriter +-pic18fam.h +-\family default +- with the generated file, and (if required) implement new I/O styles in +- +-\family typewriter +-/path/to/sdcc/device/include/pic16/{adc,i2c,usart}.h +-\family default +- and +-\family typewriter +-/path/to/sdcc/device/lib/pic16/libio/*/*. +-\end_layout +- +-\end_deeper +-\begin_layout Enumerate +-Edit +-\family typewriter +-/path/to/sdcc/device/include/pic16/pic18fregs.h +-\family default +- +-\begin_inset Newline newline +-\end_inset +- +-The file format is self-explanatory, just add +-\begin_inset Newline newline +-\end_inset +- +- +-\family typewriter +-#elif defined(picDEVICE) +-\begin_inset Newline newline +-\end_inset +- +-# +-\begin_inset ERT +-status collapsed +- +-\begin_layout Plain Layout +- +- +-\backslash +- +-\backslash +- +-\end_layout +- +-\end_inset +- +-include <picDEVICE.h> +-\family default +- +-\begin_inset Newline newline +-\end_inset +- +-at the right place (keep the file sorted, please). +-\end_layout +- +-\begin_layout Enumerate +-Edit +-\family typewriter +-/path/to/sdcc/device/include/pic16devices.txt +-\begin_inset Newline newline +-\end_inset +- +- +-\family default +-Copy and modify an existing entry or create a new one and insert it at the +- correct place (keep the file sorted, please). +-\end_layout +- +-\begin_layout Enumerate +- +-\family typewriter +-( cd /path/to/sdcc/device/non-free/lib/pic16 && sh update.sh ) +-\end_layout +- +-\begin_layout Enumerate +-Recompile the pic16 libraries as described in +-\begin_inset CommandInset ref +-LatexCommand ref +-reference "subsec:pic16Libraries" +- +-\end_inset +- +- or just configure and build sdcc again from scratch (recommended). +-\end_layout +- + \begin_layout Subsection + Memory Models + \end_layout +@@ -73525,6 +72075,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC + developers. + \end_layout + ++\begin_layout Standard ++It has been modified from the original to reflect the removal of non-free ++ components and related functionality in the SDCC package distributed with ++ GNU Guix. ++\end_layout ++ + \begin_layout Standard + All product names mentioned herein may be trademarks + \begin_inset Index idx +diff --git a/sdcc.spec b/sdcc.spec +index 9f1eeff..3686228 100644 +--- a/sdcc.spec ++++ b/sdcc.spec +@@ -83,15 +83,15 @@ rm -rf $RPM_BUILD_ROOT + %files common + %defattr(-,root,root) + /usr/share/sdcc/include +-/usr/share/sdcc/non-free/include + /usr/share/sdcc/lib +-/usr/share/sdcc/non-free/lib + + %files doc + %defattr(-,root,root) + %doc %{_defaultdocdir} + + %changelog ++* Sat Oct 31 2020 - simon AT simonsouth.net ++- removed non-free include and lib directories + * Wed Feb 07 2018 - pkk AT spth.de + - version updated to 3.7.0 + * Sun May 29 2016 - sourceforge.brock AT dse.nl +diff --git a/sdcc_vc.h.in b/sdcc_vc.h.in +index 06d8cca..736c325 100644 +--- a/sdcc_vc.h.in ++++ b/sdcc_vc.h.in +@@ -23,8 +23,6 @@ + + #define INCLUDE_DIR_SUFFIX "\\include" + #define LIB_DIR_SUFFIX "\\lib" +-#define NON_FREE_INCLUDE_DIR_SUFFIX "\\non-free\\include" +-#define NON_FREE_LIB_DIR_SUFFIX "\\non-free\\lib" + + #define BIN2DATA_DIR "\\.." + #define PREFIX2BIN_DIR "\\bin" +diff --git a/sdccconf_in.h b/sdccconf_in.h +index 29619bd..dadf310 100644 +--- a/sdccconf_in.h ++++ b/sdccconf_in.h +@@ -106,12 +106,6 @@ + /* XXX */ + #undef LIB_DIR_SUFFIX + +-/* XXX */ +-#undef NON_FREE_INCLUDE_DIR_SUFFIX +- +-/* XXX */ +-#undef NON_FREE_LIB_DIR_SUFFIX +- + /* Define to 1 to disable the AVR port */ + #undef OPT_DISABLE_AVR + +@@ -133,9 +127,6 @@ + /* XXX */ + #undef OPT_DISABLE_MCS51 + +-/* XXX */ +-#undef OPT_DISABLE_NON_FREE +- + /* XXX */ + #undef OPT_DISABLE_PACKIHX + +diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h +index 2ce040b..d72d3b8 100644 +--- a/src/SDCCglobl.h ++++ b/src/SDCCglobl.h +@@ -315,7 +315,6 @@ struct options + int no_pack_iram; /* MCS51/DS390 - Deprecated: Tells the linker not to pack variables in internal ram */ + int acall_ajmp; /* MCS51 - Use acall/ajmp instead of lcall/ljmp */ + int no_ret_without_call; /* MCS51 - Do not use ret independent of acall/lcall */ +- int use_non_free; /* Search / include non-free licensed libraries and header files */ + /* starting address of the segments */ + int xstack_loc; /* initial location of external stack */ + int stack_loc; /* initial value of internal stack pointer */ +diff --git a/src/SDCCmain.c b/src/SDCCmain.c +index a523164..a279d3d 100644 +--- a/src/SDCCmain.c ++++ b/src/SDCCmain.c +@@ -144,7 +144,6 @@ char buffer[PATH_MAX * 2]; + #define OPTION_DATA_SEG "--dataseg" + #define OPTION_DOLLARS_IN_IDENT "--fdollars-in-identifiers" + #define OPTION_SIGNED_CHAR "--fsigned-char" +-#define OPTION_USE_NON_FREE "--use-non-free" + #define OPTION_PEEP_RETURN "--peep-return" + #define OPTION_NO_PEEP_RETURN "--no-peep-return" + #define OPTION_NO_OPTSDCC_IN_ASM "--no-optsdcc-in-asm" +@@ -192,7 +191,6 @@ static const OPTION optionsTable[] = { + {0, OPTION_STD_SDCC11, NULL, "Use ISO C11 standard with SDCC extensions (default)"}, + {0, OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"}, + {0, OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"}, +- {0, OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"}, + + {0, NULL, NULL, "Code generation options"}, + {'m', NULL, NULL, "Set the port to use e.g. -mz80."}, +@@ -2045,10 +2043,6 @@ preProcess (char **envp) + else + addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED")); + +- /* set the macro for non-free */ +- if (options.use_non_free) +- addSet (&preArgvSet, Safe_strdup ("-D__SDCC_USE_NON_FREE")); +- + /* set the macro for large model */ + switch (options.model) + { +@@ -2262,12 +2256,6 @@ setIncludePath (void) + * 6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX + * 7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX + * 8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix) +- * 9. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX/target +- * 10. - path(argv[0])/BIN2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX/target +- * 11. - DATADIR/NON_FREE_INCLUDE_DIR_SUFFIX/target (only on *nix) +- * 12. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX +- * 13. - path(argv[0])/BIN2DATA_DIR/NON_FREE_INCLUDE_DIR_SUFFIX +- * 14. - DATADIR/NON_FREE_INCLUDE_DIR_SUFFIX (only on *nix) + */ + + if (!options.nostdinc) +@@ -2280,17 +2268,6 @@ setIncludePath (void) + includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL); + mergeSets (&includeDirsSet, tempSet); + +- if (options.use_non_free) +- { +- set *tempSet1; +- +- tempSet = processStrSet (dataDirsSet, NULL, NON_FREE_INCLUDE_DIR_SUFFIX, NULL); +- tempSet1 = processStrSet (tempSet, NULL, DIR_SEPARATOR_STRING, NULL); +- tempSet1 = processStrSet (tempSet1, NULL, port->target, NULL); +- mergeSets (&tempSet1, tempSet); +- mergeSets (&includeDirsSet, tempSet1); +- } +- + if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL) + { + struct dbuf_s dbuf; +@@ -2315,9 +2292,6 @@ setLibPath (void) + * 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/<model> + * 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/<model> + * 5. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix) +- * 6. - $SDCC_HOME/PREFIX2DATA_DIR/NON_FREE_LIB_DIR_SUFFIX/<model> +- * 7. - path(argv[0])/BIN2DATA_DIR/NON_FREE_LIB_DIR_SUFFIX/<model> +- * 8. - DATADIR/NON_FREE_LIB_DIR_SUFFIX/<model> (only on *nix) + */ + + if (!options.nostdlib) +@@ -2334,13 +2308,6 @@ setLibPath (void) + dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname); + libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL); + +- if (options.use_non_free) +- { +- dbuf_set_length (&dbuf, 0); +- dbuf_makePath (&dbuf, NON_FREE_LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname); +- mergeSets (&libDirsSet, processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL)); +- } +- + if ((p = getenv (SDCC_LIB_NAME)) != NULL) + { + addSetHead (&libDirsSet, Safe_strdup (p)); +diff --git a/src/pic14/main.c b/src/pic14/main.c +index 3d868cc..e8ecaaf 100644 +--- a/src/pic14/main.c ++++ b/src/pic14/main.c +@@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] = + { 0, "--no-pcode-opt", &pic14_options.disable_df, "disable (slightly faulty) optimization on pCode" }, + { 0, OPTION_STACK_SIZE, &options.stack_size, "sets the size if the argument passing stack (default: 16, minimum: 4)", CLAT_INTEGER }, + { 0, "--no-extended-instructions", &pic14_options.no_ext_instr, "forbid use of the extended instruction set (e.g., ADDFSR)" }, +- { 0, "--no-warn-non-free", &pic14_options.no_warn_non_free, "suppress warning on absent --use-non-free option" }, + { 0, NULL, NULL, NULL } + }; + +@@ -153,16 +152,6 @@ _pic14_finaliseOptions (void) + addSet (&preArgvSet, dbuf_detach_c_str (&dbuf)); + } + +- if (!pic14_options.no_warn_non_free && !options.use_non_free) +- { +- fprintf(stderr, +- "WARNING: Command line option --use-non-free not present.\n" +- " When compiling for PIC14/PIC16, please provide --use-non-free\n" +- " to get access to device headers and libraries.\n" +- " If you do not use these, you may provide --no-warn-non-free\n" +- " to suppress this warning (not recommended).\n"); +- } // if +- + } + + static void +diff --git a/src/pic14/main.h b/src/pic14/main.h +index 4275b65..0dc8c86 100644 +--- a/src/pic14/main.h ++++ b/src/pic14/main.h +@@ -5,7 +5,6 @@ typedef struct { + unsigned int isLibrarySource:1; + int disable_df; + int no_ext_instr; +- int no_warn_non_free; + } pic14_options_t; + + extern pic14_options_t pic14_options; +diff --git a/src/pic16/device.h b/src/pic16/device.h +index cdfbba0..5877f09 100644 +--- a/src/pic16/device.h ++++ b/src/pic16/device.h +@@ -99,7 +99,6 @@ typedef struct { + int gstack; + unsigned int debgen; + int xinst; +- int no_warn_non_free; + } pic16_options_t; + + extern pic16_options_t pic16_options; +diff --git a/src/pic16/main.c b/src/pic16/main.c +index 6f194c1..7f7b2f0 100644 +--- a/src/pic16/main.c ++++ b/src/pic16/main.c +@@ -655,7 +655,6 @@ OPTION pic16_optionsTable[]= { + { 0, "--pcode-verbose", &pic16_pcode_verbose, "dump pcode related info"}, + { 0, "--calltree", &pic16_options.dumpcalltree, "dump call tree in .calltree file"}, + { 0, "--gstack", &pic16_options.gstack, "trace stack pointer push/pop to overflow"}, +- { 0, "--no-warn-non-free", &pic16_options.no_warn_non_free, "suppress warning on absent --use-non-free option" }, + { 0, NULL, NULL, NULL} + }; + +@@ -940,16 +939,6 @@ _pic16_finaliseOptions (void) + addSet (&asmOptionsSet, Safe_strdup ("-D__STACK_MODEL_SMALL")); + } + +- if (!pic16_options.no_warn_non_free && !options.use_non_free) +- { +- fprintf(stderr, +- "WARNING: Command line option --use-non-free not present.\n" +- " When compiling for PIC14/PIC16, please provide --use-non-free\n" +- " to get access to device headers and libraries.\n" +- " If you do not use these, you may provide --no-warn-non-free\n" +- " to suppress this warning (not recommended).\n"); +- } // if +- + dbuf_destroy (&dbuf); + } + +@@ -979,7 +968,6 @@ _pic16_setDefaultOptions (void) + pic16_options.ip_stack = 1; /* set to 1 to enable ipop/ipush for stack */ + pic16_options.gstack = 0; + pic16_options.debgen = 0; +- pic16_options.no_warn_non_free = 0; + } + + static const char * +diff --git a/src/regression/Makefile b/src/regression/Makefile +index 26a7ff3..4547295 100644 +--- a/src/regression/Makefile ++++ b/src/regression/Makefile +@@ -65,10 +65,10 @@ TARGETPIC = 18f452 + CFLAGS = -mpic16 -p$(TARGETPIC) + DIR = pic16 + endif +-CFLAGS += -Wl,-q --no-warn-non-free ++CFLAGS += -Wl,-q + CFLAGS += -Wl,--map +-CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR) -I $(SDCC_SRC)/device/non-free/include/$(DIR) +-CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR) -L $(SDCC_BIN)/device/non-free/lib/build/$(DIR) ++CFLAGS += -I $(SDCC_SRC)/device/include/$(DIR) ++CFLAGS += -L $(SDCC_BIN)/device/lib/build/$(DIR) + #CFLAGS += --no-pcode-opt + #CFLAGS += -V + +diff --git a/support/regression/ports/pic14/spec.mk b/support/regression/ports/pic14/spec.mk +index a3dcc05..bef1c45 100644 +--- a/support/regression/ports/pic14/spec.mk ++++ b/support/regression/ports/pic14/spec.mk +@@ -12,13 +12,9 @@ endif + + ifndef SDCC_BIN_PATH + ifndef CROSSCOMPILING +- SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic14 -I$(top_srcdir)/device/non-free/include/pic14 -I$(top_srcdir) +- LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic14 -L$(top_builddir)/device/non-free/lib/build/pic14 +- else +- SDCCFLAGS += --use-non-free ++ SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic14 -I$(top_srcdir) ++ LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic14 + endif +-else +- SDCCFLAGS += --use-non-free + endif + + ifdef CROSSCOMPILING +@@ -26,7 +22,6 @@ ifdef CROSSCOMPILING + endif + + SDCCFLAGS += -mpic14 -pp16f877 --less-pedantic -Wl,-q +-SDCCFLAGS += --no-warn-non-free + LINKFLAGS += libsdcc.lib libm.lib + + OBJEXT = .o +diff --git a/support/regression/ports/pic16/spec.mk b/support/regression/ports/pic16/spec.mk +index 1f94cde..f1ac726 100644 +--- a/support/regression/ports/pic16/spec.mk ++++ b/support/regression/ports/pic16/spec.mk +@@ -12,13 +12,9 @@ endif + + ifndef SDCC_BIN_PATH + ifndef CROSSCOMPILING +- SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic16 -I$(top_srcdir)/device/non-free/include/pic16 -I$(top_srcdir) +- LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic16 -L$(top_builddir)/device/non-free/lib/build/pic16 +- else +- SDCCFLAGS += --use-non-free ++ SDCCFLAGS += --nostdinc -I$(top_srcdir)/device/include/pic16 -I$(top_srcdir) ++ LINKFLAGS += --nostdlib -L$(top_builddir)/device/lib/build/pic16 + endif +-else +- SDCCFLAGS += --use-non-free + endif + + ifdef CROSSCOMPILING +@@ -27,7 +23,6 @@ endif + + SDCCFLAGS += -mpic16 -pp18f452 --less-pedantic -Wl,-q + SDCCFLAGS += --no-peep +-SDCCFLAGS += --no-warn-non-free + LINKFLAGS += libsdcc.lib libc18f.lib libm18f.lib + + OBJEXT = .o +diff --git a/support/scripts/cinc2h.pl b/support/scripts/cinc2h.pl +index 8558135..30d72b7 100755 +--- a/support/scripts/cinc2h.pl ++++ b/support/scripts/cinc2h.pl +@@ -39,58 +39,10 @@ + + ------------------------------------------------- + +- Steps to add a new target device to SDCC/PIC16: +- (Following Raphael Neider <rneider AT web.de>) +- +- 1. Create the picDEVICE.c and picDEVICE.h from pDEVICE.inc using +- ./cinc2h.pl -p 18f4520 -cb -cp -gp "path/to/gputils_source" -o "path/to/output" +- +- 2. mv picDEVICE.h $SDCC/device/non-free/include/pic16 +- 3. mv picDEVICE.c $SDCC/device/non-free/lib/pic16/libdev +- 4. either +- +- (a) adjust $SDCC/device/lib/pic16/libio/*.ignore +- if the device does not support ADC, I2C, or USART +- --- OR --- +- (b) adjust +- * SDCC/scripts/pic18fam-h-gen.pl +- * SDCC/device/include/pic16/adc.h (if required) +- * SDCC/device/include/pic16/usart.h (if required) +- * SDCC/device/lib/pic16/libio/*/* (if required) +- to add the new device to the appropriate I/O style +- and implement new styles (if required). +- +- Having modified pic18fam-h-gen.pl, you need to run the +- script to generate pic18fam.h.gen, which in turn must +- then replace your .../include/pic16/pic18fam.h to take +- effect; see pic18fam-h-gen.pl for usage information. +- 6. edit $SDCC/device/include/pic16/pic18fregs.h +- 7. edit $SDCC/device/include/pic16/pic16devices.txt +- 8. run cd $SDCC/device/non-free/lib/pic16 && sh update.sh +- to regenerate .../libdev/Makefile.am and processors.ac +- +- The file format of steps 6 and 7 is self explanatory, in most +- if not all cases you can copy and paste another device's records +- and adjust them to the newly added device. +- +- ------------------------------------------------- +- +- Steps to add a new target device to SDCC/PIC14: +- +- 1. Create the picDEVICE.c and picDEVICE.h from pDEVICE.inc using +- ./cinc2h.pl -p 16f1503 -cb -cp -gp "path/to/gputils_source" -o "path/to/output" +- +- 2. mv picDEVICE.h $SDCC/device/non-free/include/pic14 +- 3. mv picDEVICE.c $SDCC/device/non-free/lib/pic14/libdev +- 4. add DEVICE to $SDCC/device/non-free/lib/pic14/libdev/devices.txt +- (The names of the enhanced devices the "# enhanced cores" line +- after follow.) +- +- 5. edit $SDCC/device/include/pic14/pic14devices.txt +- +- The file format of step 5 is self explanatory, in most if not all +- cases you can copy and paste another device's records and adjust +- them to the newly added device. ++ For its inclusion in the SDCC package distributed with GNU Guix ++ (https://guix.gnu.org/) this file has been modified from the ++ original to remove instructions on its use with non-free software ++ and to update the output of the print_license subroutine below. + + $Id: cinc2h.pl 9450 2016-01-09 16:47:43Z molnarkaroly $ + =cut +@@ -1345,10 +1297,9 @@ sub print_license($) + * Microchip header (.inc) and linker script (.lkr) files Microchip + * requires that "The header files should state that they are only to be + * used with authentic Microchip devices" which makes them incompatible +- * with the GPL. Pic device libraries and header files are located at +- * non-free/lib and non-free/include directories respectively. +- * Sdcc should be run with the --use-non-free command line option in +- * order to include non-free header files and libraries. ++ * with the GPL. These non-free libraries and header files (and the ++ * build and run-time options that enable their use) are omitted in the ++ * SDCC package distributed with GNU Guix. + * + * See http://sdcc.sourceforge.net/ for the latest information on sdcc. + */ +diff --git a/support/scripts/pic14-header-parser.pl b/support/scripts/pic14-header-parser.pl +index 4413c25..57c6076 100755 +--- a/support/scripts/pic14-header-parser.pl ++++ b/support/scripts/pic14-header-parser.pl +@@ -63,9 +63,7 @@ use constant P_SHOW_ONLY_NAME => 3; + + my @default_paths = + ( +- '/usr/share/sdcc/non-free/include', + '/usr/share/sdcc/include', +- '/usr/local/share/sdcc/non-free/include', + '/usr/local/share/sdcc/include' + ); + +diff --git a/support/scripts/pic16-header-parser.pl b/support/scripts/pic16-header-parser.pl +index 6db417a..4b35225 100755 +--- a/support/scripts/pic16-header-parser.pl ++++ b/support/scripts/pic16-header-parser.pl +@@ -62,9 +62,7 @@ use constant P_SHOW_ONLY_NAME => 3; + + my @default_paths = + ( +- '/usr/share/sdcc/non-free/include', + '/usr/share/sdcc/include', +- '/usr/local/share/sdcc/non-free/include', + '/usr/local/share/sdcc/include' + ); + +diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi +index 5086181..9527244 100644 +--- a/support/scripts/sdcc.nsi ++++ b/support/scripts/sdcc.nsi +@@ -477,11 +477,6 @@ ${Section} "SDCC include files" SEC05 + + SetOutPath "$INSTDIR\include" + File "${DEV_ROOT}\include\*.h" +- +- SetOutPath "$INSTDIR\non-free\include\pic14" +- File "${DEV_ROOT}\non-free\include\pic14\*.h" +- SetOutPath "$INSTDIR\non-free\include\pic16" +- File "${DEV_ROOT}\non-free\include\pic16\*.h" + ${SectionEnd} + + ${Section} "SDCC DS390 library" SEC06 +@@ -579,18 +574,12 @@ ${Section} "SDCC PIC16 library" SEC21 + SetOutPath "$INSTDIR\lib\pic16" + File "${DEV_ROOT}\lib\pic16\*.o" + File "${DEV_ROOT}\lib\pic16\*.lib" +- +- SetOutPath "$INSTDIR\non-free\lib\pic16" +- File "${DEV_ROOT}\non-free\lib\pic16\*.lib" + ${SectionEnd} + + ${Section} "SDCC PIC14 library" SEC22 + SectionIn 1 2 + SetOutPath "$INSTDIR\lib\pic14" + File "${DEV_ROOT}\lib\pic14\*.lib" +- +- SetOutPath "$INSTDIR\non-free\lib\pic14" +- File "${DEV_ROOT}\non-free\lib\pic14\*.lib" + ${SectionEnd} + + ${Section} "SDCC STM8 library" SEC23 +@@ -691,10 +680,6 @@ ${Section} "SDCC library sources" SEC25 + File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc" + # File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile" + +- SetOutPath "$INSTDIR\non-free\lib\src\pic14\libdev" +- File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\*.c" +-# File "${DEV_ROOT}\non-free\lib\src\pic14\libdev\Makefile" +- + SetOutPath "$INSTDIR\lib\src\pic14\libm" + File "${DEV_ROOT}\lib\src\pic14\libm\*.c" + +@@ -746,10 +731,6 @@ ${Section} "SDCC library sources" SEC25 + File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S" + # File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile" + +- SetOutPath "$INSTDIR\non-free\lib\src\pic16\libdev" +- File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\*.c" +-# File "${DEV_ROOT}\non-free\lib\src\pic16\libdev\Makefile" +- + SetOutPath "$INSTDIR\lib\src\pic16\libio" + File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore" + # File "${DEV_ROOT}\lib\src\pic16\libio\Makefile" +@@ -1003,13 +984,9 @@ ${Section} Uninstall SECUNINSTALL + + Delete "$INSTDIR\lib\pic14\*.lib" + +- Delete "$INSTDIR\non-free\lib\pic14\*.lib" +- + Delete "$INSTDIR\lib\pic16\*.o" + Delete "$INSTDIR\lib\pic16\*.lib" + +- Delete "$INSTDIR\non-free\lib\pic16\*.lib" +- + Delete "$INSTDIR\lib\hc08\*.lib" + + Delete "$INSTDIR\lib\s08\*.lib" +@@ -1059,9 +1036,7 @@ ${Section} Uninstall SECUNINSTALL + Delete "$INSTDIR\include\pic14\*.h" + Delete "$INSTDIR\include\pic14\*.txt" + Delete "$INSTDIR\include\pic14\*.inc" +- Delete "$INSTDIR\non-free\include\pic14\*.h" + Delete "$INSTDIR\include\pic16\*.h" +- Delete "$INSTDIR\non-free\include\pic16\*.h" + Delete "$INSTDIR\include\pic16\*.txt" + Delete "$INSTDIR\include\mcs51\*.h" + Delete "$INSTDIR\include\hc08\*.h" +@@ -1119,9 +1094,7 @@ ${Section} Uninstall SECUNINSTALL + Delete "$INSTDIR\uninstall.exe" + + RMDir /r "$INSTDIR\lib\src\pic14" +- RMDir /r "$INSTDIR\non-free\lib\src\pic14" + RMDir /r "$INSTDIR\lib\src\pic16" +- RMDir /r "$INSTDIR\non-free\lib\src\pic16" + RMDir "$INSTDIR\lib\src\small" + RMDir "$INSTDIR\lib\src\medium" + RMDir "$INSTDIR\lib\src\large" +@@ -1138,12 +1111,9 @@ ${Section} Uninstall SECUNINSTALL + RMDir "$INSTDIR\lib\src\s08" + RMDir "$INSTDIR\lib\src\stm8" + RMDir "$INSTDIR\lib\src" +- RMDir "$INSTDIR\non-free\lib\src" + + RMDir "$INSTDIR\lib\pic14" +- RMDir "$INSTDIR\non-free\lib\pic14" + RMDir "$INSTDIR\lib\pic16" +- RMDir "$INSTDIR\non-free\lib\pic16" + RMDir "$INSTDIR\lib\z80" + RMDir "$INSTDIR\lib\z180" + RMDir "$INSTDIR\lib\r2k" +@@ -1160,16 +1130,13 @@ ${Section} Uninstall SECUNINSTALL + RMDir "$INSTDIR\lib\s08" + RMDir "$INSTDIR\lib\stm8" + RMDir "$INSTDIR\lib" +- RMDir "$INSTDIR\non-free\lib" + + RMDir "$INSTDIR\include\asm\z80" + RMDir "$INSTDIR\include\asm\z180" + RMDir "$INSTDIR\include\asm\r2k" + RMDir "$INSTDIR\include\asm\r3ka" + RMDir "$INSTDIR\include\asm\pic16" +- RMDir "$INSTDIR\non-free\include\asm\pic16" + RMDir "$INSTDIR\include\asm\pic14" +- RMDir "$INSTDIR\non-free\include\asm\pic14" + RMDir "$INSTDIR\include\asm\mcs51" + RMDir "$INSTDIR\include\asm\gbz80" + RMDir "$INSTDIR\include\asm\ds390" +@@ -1178,17 +1145,12 @@ ${Section} Uninstall SECUNINSTALL + RMDir "$INSTDIR\include\asm" + RMDir "$INSTDIR\include\z180" + RMDir "$INSTDIR\include\pic14" +- RMDir "$INSTDIR\non-free\include\pic14" + RMDir "$INSTDIR\include\pic16" +- RMDir "$INSTDIR\non-free\include\pic16" + RMDir "$INSTDIR\include\mcs51" + RMDir "$INSTDIR\include\hc08" + RMDir "$INSTDIR\include\ds400" + RMDir "$INSTDIR\include\ds390" + RMDir "$INSTDIR\include" +- RMDir "$INSTDIR\non-free\include" +- +- RMDir "$INSTDIR\non-free" + + !ifdef FULL_DOC + RMDir /r "$INSTDIR\doc" +diff --git a/support/scripts/sdcc_cygwin_mingw32 b/support/scripts/sdcc_cygwin_mingw32 +index 5575663..2588d4f 100755 +--- a/support/scripts/sdcc_cygwin_mingw32 ++++ b/support/scripts/sdcc_cygwin_mingw32 +@@ -6,9 +6,7 @@ + --datarootdir="/sdcc" \ + docdir="\${datarootdir}/doc" \ + include_dir_suffix="include" \ +-non_free_include_dir_suffix="non-free/include" \ + lib_dir_suffix="lib" \ +-non_free_lib_dir_suffix="non-free/lib" \ + sdccconf_h_dir_separator="\\\\" \ + CC="gcc -mno-cygwin" \ + CXX="g++ -mno-cygwin" +diff --git a/support/scripts/sdcc_mingw32 b/support/scripts/sdcc_mingw32 +index 96e3280..050761e 100755 +--- a/support/scripts/sdcc_mingw32 ++++ b/support/scripts/sdcc_mingw32 +@@ -19,9 +19,7 @@ export SDCCCONFIGUREFLAGS=" \ + --datarootdir=/sdcc \ + docdir=\${datarootdir}/doc \ + include_dir_suffix=include \ +-non_free_include_dir_suffix=non-free/include \ + lib_dir_suffix=lib \ +-non_free_lib_dir_suffix=non-free/lib \ + sdccconf_h_dir_separator=\\\\ \ + --disable-device-lib \ + --host=i586-mingw32msvc --build=unknown-unknown-linux-gnu" diff --git a/gnu/packages/patches/tomb-fix-errors-on-open.patch b/gnu/packages/patches/tomb-fix-errors-on-open.patch deleted file mode 100644 index 5f41c9ee8f..0000000000 --- a/gnu/packages/patches/tomb-fix-errors-on-open.patch +++ /dev/null @@ -1,25 +0,0 @@ -Description: Avoid error messages when opening a new tomb - Make sure control file exists and has user ownership before user writes to it. -Author: Sven Geuer <debmaint@g-e-u-e-r.de> -Bug: https://github.com/dyne/Tomb/issues/369 -Last-Update: 2019-11-04 ---- a/tomb -+++ b/tomb -@@ -2197,14 +2197,15 @@ - # {{{ Open - - _update_control_file() { -- # replaces a control file with new contents and gives it user ownership -+ # make sure a control file exists, gives it user ownership -+ # and replaces it with new contents - # stdin = contents - # $1 = path to control file - # $2 = contents - [[ "$2" = "" ]] && return 1 - _sudo touch "$1" -- print "$2" > "$1" - _sudo chown ${_UID}:${_GID} "$1" -+ print "$2" > "$1" - _verbose "updated control file $1 = $2" - } - diff --git a/gnu/packages/patches/xpra-4.0.4-norequests.patch b/gnu/packages/patches/xpra-4.0.4-norequests.patch deleted file mode 100644 index e545be7f1d..0000000000 --- a/gnu/packages/patches/xpra-4.0.4-norequests.patch +++ /dev/null @@ -1,39 +0,0 @@ -Remove python-requests dependency, r27626 upstream. - ---- a/xpra/net/websockets/common.py (revision 27625) -+++ b/xpra/net/websockets/common.py (revision 27626) -@@ -7,7 +7,6 @@ - import uuid - from hashlib import sha1 - from base64 import b64encode --from requests.structures import CaseInsensitiveDict - - from xpra.os_util import strtobytes, bytestostr, monotonic_time - from xpra.log import Logger -@@ -77,7 +76,7 @@ - for line in lines: - parts = line.split(b": ", 1) - if len(parts)==2: -- headers[parts[0]] = parts[1] -+ headers[parts[0].lower()] = parts[1] - return headers - - def verify_response_headers(headers, key): -@@ -84,14 +83,13 @@ - log("verify_response_headers(%s)", headers) - if not headers: - raise Exception("no http headers found in response") -- headers = CaseInsensitiveDict(headers) -- upgrade = headers.get(b"Upgrade", b"") -+ upgrade = headers.get(b"upgrade", b"") - if upgrade!=b"websocket": - raise Exception("invalid http upgrade: '%s'" % upgrade) -- protocol = headers.get(b"Sec-WebSocket-Protocol", b"") -+ protocol = headers.get(b"sec-websocket-protocol", b"") - if protocol!=b"binary": - raise Exception("invalid websocket protocol: '%s'" % protocol) -- accept_key = headers.get(b"Sec-WebSocket-Accept", b"") -+ accept_key = headers.get(b"sec-websocket-accept", b"") - if not accept_key: - raise Exception("websocket accept key is missing") - expected_key = make_websocket_accept_hash(key) diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch new file mode 100644 index 0000000000..c21ca29a84 --- /dev/null +++ b/gnu/packages/patches/yggdrasil-extra-config.patch @@ -0,0 +1,86 @@ +diff --git a/cmd/yggdrasil/main.go b/cmd/yggdrasil/main.go +index 813e950..08d35cc 100644 +--- a/cmd/yggdrasil/main.go ++++ b/cmd/yggdrasil/main.go +@@ -40,11 +40,12 @@ type node struct { + admin module.Module // admin.AdminSocket + } + +-func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config.NodeConfig { ++func readConfig(useconf *bool, useconffile *string, extraconffile *string, normaliseconf *bool) *config.NodeConfig { + // Use a configuration file. If -useconf, the configuration will be read + // from stdin. If -useconffile, the configuration will be read from the + // filesystem. + var conf []byte ++ var extraconf []byte + var err error + if *useconffile != "" { + // Read the file from the filesystem +@@ -56,6 +57,21 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config + if err != nil { + panic(err) + } ++ if *extraconffile != "" { ++ extraconf, err = ioutil.ReadFile(*extraconffile); ++ } ++ if err != nil { ++ panic(err) ++ } ++ // Generate a new configuration - this gives us a set of sane defaults - ++ // then parse the configuration we loaded above on top of it. The effect ++ // of this is that any configuration item that is missing from the provided ++ // configuration will use a sane default. ++ cfg := config.GenerateConfig() ++ var confs [2][]byte ++ confs[0]=conf ++ confs[1]=extraconf ++ for _, conf := range confs { if len(conf)>0 { + // If there's a byte order mark - which Windows 10 is now incredibly fond of + // throwing everywhere when it's converting things into UTF-16 for the hell + // of it - remove it and decode back down into UTF-8. This is necessary +@@ -69,11 +85,6 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config + panic(err) + } + } +- // Generate a new configuration - this gives us a set of sane defaults - +- // then parse the configuration we loaded above on top of it. The effect +- // of this is that any configuration item that is missing from the provided +- // configuration will use a sane default. +- cfg := config.GenerateConfig() + var dat map[string]interface{} + if err := hjson.Unmarshal(conf, &dat); err != nil { + panic(err) +@@ -112,6 +123,7 @@ func readConfig(useconf *bool, useconffile *string, normaliseconf *bool) *config + if err = mapstructure.Decode(dat, &cfg); err != nil { + panic(err) + } ++ }} + return cfg + } + +@@ -164,6 +176,7 @@ func main() { + genconf := flag.Bool("genconf", false, "print a new config to stdout") + useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin") + useconffile := flag.String("useconffile", "", "read HJSON/JSON config from specified file path") ++ extraconffile := flag.String("extraconffile", "", "extra (usually private) HJSON/JSON config from specified file path") + normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised") + confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON") + autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)") +@@ -187,7 +200,7 @@ func main() { + cfg = config.GenerateConfig() + case *useconffile != "" || *useconf: + // Read the configuration from either stdin or from the filesystem +- cfg = readConfig(useconf, useconffile, normaliseconf) ++ cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf) + // If the -normaliseconf option was specified then remarshal the above + // configuration and print it back to stdout. This lets the user update + // their configuration file with newly mapped names (like above) or to +@@ -332,7 +345,7 @@ func main() { + goto exit + case _ = <-r: + if *useconffile != "" { +- cfg = readConfig(useconf, useconffile, normaliseconf) ++ cfg = readConfig(useconf, useconffile, extraconffile, normaliseconf) + logger.Infoln("Reloading configuration from", *useconffile) + n.core.UpdateConfig(cfg) + n.tuntap.UpdateConfig(cfg) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1442d3e43b..a1984e0695 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -68,7 +68,6 @@ #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) #:use-module (gnu packages javascript) #:use-module (gnu packages lesstif) #:use-module (gnu packages libffi) @@ -1045,7 +1044,6 @@ the PDF pages.") ("libudev" ,eudev) ("libwebp" ,libwebp) ("libdrm" ,libdrm) - ("imagemagick" ,imagemagick) ("giflib" ,giflib) ("glib" ,glib) ("cairo-xcb" ,cairo-xcb) @@ -1263,7 +1261,7 @@ multiple files.") (define-public pdfpc (package (name "pdfpc") - (version "4.4.0") + (version "4.4.1") (source (origin (method git-fetch) @@ -1272,7 +1270,7 @@ multiple files.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0vh2r32akvasdrghkaq7ard24r2qncp34jfiyshi3zxabm9bhfaa")))) + (base32 "11n925c5jj3yfwnqkgxzqrmsrpqh8ls1g4idmqqzpsanpam1xvna")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no test target (inputs diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index ad84d63785..d49ca005ba 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -269,15 +269,14 @@ more.") (define-public perl-algorithm-c3 (package (name "perl-algorithm-c3") - (version "0.10") + (version "0.11") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" "Algorithm-C3-" version ".tar.gz")) (sha256 - (base32 - "01hlcaxndls86bl92rkd3fvf9pfa3inxqaimv88bxs95803kmkss")))) + (base32 "02ck52cf0yyk57354rd1rp5l0kbfwi1pvg2lh3jadvjxfrkq9x5a")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/Algorithm-C3") (synopsis "Module for merging hierarchies using the C3 algorithm") @@ -1267,14 +1266,14 @@ different getters and setters.") (define-public perl-class-c3 (package (name "perl-class-c3") - (version "0.34") + (version "0.35") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/" "Class-C3-" version ".tar.gz")) (sha256 - (base32 "1dcibc31v5jwmi6hsdzi7c5ag1sb4wp3kxkibc889qrdj7jm12sd")))) + (base32 "0gp3czp6y0jxx4448kz37f7gdxq4vw514bvc0l98rk4glvqkq1c4")))) (build-system perl-build-system) (propagated-inputs `(("perl-algorithm-c3" ,perl-algorithm-c3))) @@ -1693,15 +1692,14 @@ one.") (define-public perl-clone-pp (package (name "perl-clone-pp") - (version "1.07") + (version "1.08") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-" version ".tar.gz")) (sha256 - (base32 - "15dkhqvih6rx9dnngfwwljcm9s8afb0nbyl2vdvhd8frnw4y31dz")))) + (base32 "0y7m25fksiavzg4xj4cm9zkz8rmnk4iqy7lm01m4nmyqlna3082p")))) (build-system perl-build-system) (home-page "https://metacpan.org/release/Clone-PP") (synopsis "Recursively copy Perl datatypes") @@ -5779,14 +5777,14 @@ one: logging, exceptions, and translations.") (define-public perl-libintl-perl (package (name "perl-libintl-perl") - (version "1.31") + (version "1.32") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/G/GU/GUIDO/" "libintl-perl-" version ".tar.gz")) (sha256 - (base32 "1afandrl44mq9c32r57xr489gkfswdgc97h8x86k98dz1byv3l6a")))) + (base32 "19gbbh9w3rl805mv6mg1q80fsrg610h098qhf7ycnkjnyac84440")))) (build-system perl-build-system) (arguments `(#:phases @@ -5899,15 +5897,14 @@ intersections, unions, unique elements, complements and many more.") (define-public perl-list-moreutils (package (name "perl-list-moreutils") - (version "0.428") + (version "0.430") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" "List-MoreUtils-" version ".tar.gz")) (sha256 - (base32 - "1hkc8xkd27yzfkgaglzn77j4qjmilyva4gaz3pc64vpism2hjgki")))) + (base32 "09v5cipjf634a1176wy2wicibzz51lry0d0yim9rnbfl5j2ggcb3")))) (build-system perl-build-system) (arguments `(#:phases @@ -5934,15 +5931,14 @@ functionality on lists which is not going to go into List::Util.") (define-public perl-list-moreutils-xs (package (name "perl-list-moreutils-xs") - (version "0.428") + (version "0.430") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-" version ".tar.gz")) (sha256 - (base32 - "0bfndmnkqaaf3gffprak143bzplxd69c368jxgr7rzlx88hyd7wx")))) + (base32 "0hmjkhmk1qlzbg8skq7g1zral07k1x0fk4w2fpcfr7hpgkaldkp8")))) (build-system perl-build-system) (native-inputs `(("perl-config-autoconf" ,perl-config-autoconf) @@ -7280,15 +7276,14 @@ building is done in @code{MooX::ConfigFromFile::Role}---using (define-public perl-moox-file-configdir (package (name "perl-moox-file-configdir") - (version "0.007") + (version "0.008") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/R/RE/REHSACK/" "MooX-File-ConfigDir-" version ".tar.gz")) (sha256 - (base32 - "074v150wrbddhy1n0qc8s80zrb71l3c4is968cnr06ac5l9kmshz")))) + (base32 "1b033injzk9d8clgip67ps5j5bpkrnag28q89ddwhrgqx12i3m7q")))) (build-system perl-build-system) (propagated-inputs `(("perl-file-configdir" ,perl-file-configdir) @@ -7304,17 +7299,16 @@ installing configuration files or for finding any piece of settings.") (define-public perl-moox-handlesvia (package (name "perl-moox-handlesvia") - (version "0.001008") + (version "0.001009") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/M/MA/MATTP/MooX-HandlesVia-" + "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-" version ".tar.gz")) (sha256 - (base32 - "137yrjn2jmw4cj0fjdajnkjgqr5arnpq72kbm6w66xskncinz55h")))) + (base32 "04kcyflg49rclxa1nm035c05jpyvhdacjyy1wklbgv4li3im6qvi")))) (build-system perl-build-system) (native-inputs `(("perl-moox-types-mooselike" @@ -9837,7 +9831,7 @@ generally slower on larger files.") (define-public perl-text-format (package (name "perl-text-format") - (version "0.61") + (version "0.62") (source (origin (method url-fetch) (uri (string-append @@ -9845,7 +9839,7 @@ generally slower on larger files.") version ".tar.gz")) (sha256 (base32 - "0axfyiml3zwawwd127z8rl2lm53z6dlsflzmp80m3j0myn7kp2mv")))) + "0104z7jjv46kqh77rnx8kvmsbr5dy0s56xm01dckq4ly65br0hkx")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) diff --git a/gnu/packages/piet.scm b/gnu/packages/piet.scm index 5282290456..a09c05d990 100644 --- a/gnu/packages/piet.scm +++ b/gnu/packages/piet.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Jesse Gibbons <jgibbons2357+guix@gmail.com> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,11 +20,14 @@ (define-module (gnu packages piet) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (gnu packages gd) #:use-module (gnu packages groff) #:use-module (gnu packages image) + #:use-module (gnu packages netpbm) + #:use-module (gnu packages perl) #:use-module (gnu packages tcl)) (define-public npiet @@ -55,16 +59,119 @@ (native-inputs `(("groff" ,groff))) (synopsis "Piet interpreter") (description - "Npiet is an interpreter for the piet programming language. Instead of -text, piet programs are pictures. Commands are determined based on changes in + "Npiet is an interpreter for the Piet programming language. Instead of +text, Piet programs are pictures. Commands are determined based on changes in color. This package includes: @enumerate -@item npiet, a piet interpreter with debugging capabilities -@item npiet-foogol, a program that builds a piet program from foogol, an -algol-like language -@item npietedit, an editor for the piet programming language -@end enumerate") +@item @command{npiet}, a Piet interpreter with debugging capabilities +@item @command{npiet-foogol}, a program that builds a Piet program from Foogol, +an Algol-like language +@item @command{npietedit}, an editor for Piet programs. +@end enumerate\n") (home-page "https://www.bertnase.de/npiet/") (license license:gpl2+))) + +(define-public piet-toolchain + (let ((commit "f002ff6a924a6bbace5eef94f3be06f425e7f590") + (revision "0")) + (package + (name "piet-toolchain") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sl236/Piet") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0xwbhwizfbn080fmrgavaz3b939brycmlar3m5px9avl2b68c816")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove a bundled fork of Marc Majcher's Piet interpreter. + (delete-file-recursively "interpreter") + #t)))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (delete 'build) ; nothing to build + (delete 'check) ; run our own tests below + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/" + ,name "-" ,version))) + (for-each (lambda (script) + (install-file script bin) + (wrap-program (string-append bin "/" script) + `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))))) + (list "piet-assembler" + "piet-compiler")) + + ;; Fix an odd mode. + (chmod "compiler-samples/test-binary-ops.script" #o644) + (for-each (lambda (file) ; INSTALL-FILE is not recursive + (copy-recursively file + (string-append doc "/" file))) + (list "assembler-samples" + "compiler-samples" + "README.md")) ; includes the licence grant + #t))) + (add-after 'install 'check + (lambda* (#:key outputs tests? #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (when tests? + (unsetenv "PERL5LIB") ; test the wrapping + ;; Compile all scripts assemble all Piets. + (for-each (lambda (file) + (system (string-append bin "/piet-compiler " + file ">" + file ".piet"))) + (find-files "." "\\.script$")) + (for-each (lambda (file) + (system (string-append bin "/piet-assembler " + file "|pnmtopng>" + file ".png"))) + (find-files "." "\\.piet$")) + + ;; Don't run the interactive one. + (delete-file "assembler-samples/quest.piet.png") + (for-each (cut invoke "npiet" <>) + (find-files "." "\\.png$")) + #t))))))) + (native-inputs + ;; For our tests. + `(("netpbm" ,netpbm) + ("npiet" ,npiet))) + (inputs + `(("perl" ,perl) + ("perl-parse-recdescent" ,perl-parse-recdescent))) + (home-page "https://www.toothycat.net/wiki/wiki.pl?MoonShadow/Piet") + (synopsis "Piet compiler and assembler") + (description + "This package provides a compiler and assembler that target the Piet +graphical programming language. + +@command{piet-assembler} converts Piet assembler instructions (e.g., +@code{push}, @code{add}, @code{switch}, @code{outn}) and directives into an +executable @code{netpbm} image of the corresponding Piet program. + +@command{piet-compiler} compiles a C-like high-level language into assembly +source understood by @command{piet-assembler}. It supports common arithmetic +and boolean logic operators (though not bitwise manipulation), flow control +(@code{if}, @code{for}, @code{while}), recursive functions, in-line assembler, +and input/output intrinsics. The only supported data type is the integer. + +The language is documented only by the compiler's Perl source code and the +included samples.") + (license license:cc-by-sa4.0)))) diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index b247cf21e1..a3f9bef63c 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -40,7 +40,6 @@ #:use-module (gnu packages gperf) #:use-module (gnu packages groff) #:use-module (gnu packages gv) - #:use-module (gnu packages imagemagick) #:use-module (gnu packages lua) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -72,8 +71,7 @@ (build-system gnu-build-system) (inputs `(("psutils" ,psutils) - ("gv" ,gv) - ("imagemagick" ,imagemagick))) + ("gv" ,gv))) (native-inputs `(("gperf" ,gperf) ("groff" ,groff) @@ -272,14 +270,14 @@ seen in a terminal.") (define-public highlight (package (name "highlight") - (version "3.58") + (version "3.59") (source (origin (method url-fetch) (uri (string-append "http://www.andre-simon.de/zip/highlight-" version ".tar.bz2")) (sha256 - (base32 "1y25vc3nysdih4y9z6yqn1k3i6lgkbyqkmdaib2xyfpqw4djb06z")))) + (base32 "18j9q9w9l71zxaaf8klcl4f5rqcmqnz9632azabv8scfw2l6r4l5")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm index 24fe2906f9..e3d2da9b59 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -28,6 +28,7 @@ (define-module (gnu packages python-check) #:use-module (gnu packages) #:use-module (gnu packages check) + #:use-module (gnu packages openstack) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages web) @@ -82,6 +83,39 @@ This package provides seamless integration with coverage.py (and thus pytest, nosetests, etc...) in Python projects.") (license license:expat))) +(define-public python-junit-xml + ;; XXX: There are no tags or PyPI releases, so take the latest commit + ;; and use the version defined in setup.py. + (let ((version "1.9") + (commit "4bd08a272f059998cedf9b7779f944d49eba13a6") + (revision "0")) + (package + (name "python-junit-xml") + (version (git-version version revision commit)) + (home-page "https://github.com/kyrus/python-junit-xml") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0b8kbjhk3j10rk0vcniy695m3h43yip6y93h1bd6jjh0cp7s09c7")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-six" ,python-six))) + (synopsis "Create JUnit XML test results") + (description + "This package provides a Python module for creating JUnit XML test +result documents that can be read by tools such as Jenkins or Bamboo.") + (license license:expat)))) + (define-public python-vcrpy (package (name "python-vcrpy") @@ -436,6 +470,40 @@ in Pytest.") of the project to ensure it renders properly.") (license license:expat))) +(define-public python-re-assert + (package + (name "python-re-assert") + (version "1.1.0") + (source + (origin + ;; There are no tests in the PyPI tarball. + (method git-fetch) + (uri (git-reference + (url "https://github.com/asottile/re-assert") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rssq4wpqmx1c17hjfx5l3sn3zmnlz9jffddiqrs4f6h7m6cadai")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "-vv")))))) + (native-inputs + `(("python-covdefaults" ,python-covdefaults) + ("python-coverage" ,python-coverage) + ("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-regex" ,python-regex))) + (home-page "https://github.com/asottile/re-assert") + (synopsis "Show where your regex match assertion failed") + (description + "@code{re-assert} provides a helper class to make assertions of regexes +simpler.") + (license license:expat))) + (define-public python-pytest-trio (package (name "python-pytest-trio") @@ -1044,3 +1112,36 @@ any Python VM with basically no runtime overhead.") (description "Robber is a Python assertion library for test-driven and behavior-driven development (TDD and BDD).") (license license:expat))) + +(define-public python-stestr + (package + (name "python-stestr") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "stestr" version)) + (sha256 + (base32 + "0adhqp9c9338wlvlq776k57k04lyxp38bv591afdm9gjsn2qn1zm")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;to avoid circular dependencies + (native-inputs + `(("python-pbr" ,python-pbr))) + (propagated-inputs + `(("python-cliff" ,python-cliff) + ("python-fixtures" ,python-fixtures) + ("python-future" ,python-future) + ("python-pyyaml" ,python-pyyaml) + ("python-subunit" ,python-subunit) + ("python-testtools" ,python-testtools) + ("python-voluptuous" ,python-voluptuous))) + (home-page "https://stestr.readthedocs.io/en/latest/") + (synopsis "Parallel Python test runner") + (description "This package provides the @command{stestr} command, a +parallel Python test runner built around @code{subunit}. It is designed to +execute @code{unittest} test suites using multiple processes to split up +execution of a test suite. It will also store a history of all test runs to +help in debugging failures and optimizing the scheduler to improve speed.") + (license license:asl2.0))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index b294613a5b..ca9d24b24f 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -74,7 +74,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/python-otr/pure-python-otr.git") + (url "https://github.com/python-otr/pure-python-otr") (commit version))) (file-name (git-file-name name version)) @@ -989,26 +989,34 @@ protocol (Javascript Object Signing and Encryption).") (define-public python-pycryptodome (package (name "python-pycryptodome") - (version "3.7.3") + (version "3.9.9") (source (origin (method url-fetch) (uri (pypi-uri "pycryptodome" version)) (sha256 (base32 - "0dh6ky5ngxayyn5f6n7gdamjl49g3khz6pdx9sdnag1zwi8248hs")))) + "1i4m74f88qj9ci8rpyzrbk2slmsdj5ipmwdkq6qk24byalm203li")))) (build-system python-build-system) (home-page "https://www.pycryptodome.org") - (synopsis "Cryptographic library for Python") - (description "This package provides a cryptographic library for Python. + (synopsis "Low-level cryptographic Python library") + (description + "PyCryptodome is a self-contained Python package of low-level +cryptographic primitives. It's not a wrapper to a separate C library like +OpenSSL. To the largest possible extent, algorithms are implemented in pure +Python. Only the pieces that are extremely critical to performance (e.g., +block ciphers) are implemented as C extensions. + +You are expected to have a solid understanding of cryptography and security +engineering to successfully use these primitives. You must also be able to +recognize that some are obsolete (e.g., TDES) or even insecure (RC4). -It brings the following enhancements with respect to the last official version -of PyCrypto: +It provides many enhancements over the last release of PyCrypto (2.6.1): @itemize @item Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) @item Accelerated AES on Intel platforms via AES-NI -@item First class support for PyPy +@item First-class support for PyPy @item Elliptic curves cryptography (NIST P-256 curve only) @item Better and more compact API (nonce and iv attributes for ciphers, automatic generation of random nonces and IVs, simplified CTR cipher mode, and @@ -1022,13 +1030,63 @@ more) @item Random numbers get sourced directly from the OS (and not from a CSPRNG in userspace) @item Cleaner RSA and DSA key generation (largely based on FIPS 186-4) -@item Major clean ups and simplification of the code base -@end itemize\n") - (license license:bsd-2))) +@item Major clean-ups and simplification of the code base +@end itemize + +This package provides drop-in compatibility with PyCrypto. It is one of two +PyCryptodome variants, the other being python-pycryptodomex.") + (license (list license:bsd-2 + license:public-domain)))) ; code inherited from PyCrypto (define-public python2-pycryptodome (package-with-python2 python-pycryptodome)) +(define-public python-pycryptodomex + (package (inherit python-pycryptodome) + (name "python-pycryptodomex") + (version (package-version python-pycryptodome)) + (source + (origin + (method url-fetch) + (uri (pypi-uri "pycryptodomex" version)) + (sha256 + (base32 "0lbx4qk3xmwqiidhmkj8qa7bh2lf8bwzg0xjpsh2w5zqjrc7qnvv")))) + (description + "PyCryptodome is a self-contained Python package of low-level +cryptographic primitives. It's not a wrapper to a separate C library like +OpenSSL. To the largest possible extent, algorithms are implemented in pure +Python. Only the pieces that are extremely critical to performance (e.g., +block ciphers) are implemented as C extensions. + +You are expected to have a solid understanding of cryptography and security +engineering to successfully use these primitives. You must also be able to +recognize that some are obsolete (e.g., TDES) or even insecure (RC4). + +It provides many enhancements over the last release of PyCrypto (2.6.1): + +@itemize +@item Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB) +@item Accelerated AES on Intel platforms via AES-NI +@item First-class support for PyPy +@item Elliptic curves cryptography (NIST P-256 curve only) +@item Better and more compact API (nonce and iv attributes for ciphers, +automatic generation of random nonces and IVs, simplified CTR cipher mode, and +more) +@item SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms +@item Salsa20 and ChaCha20 stream ciphers +@item scrypt and HKDF +@item Deterministic (EC)DSA +@item Password-protected PKCS#8 key containers +@item Shamir’s Secret Sharing scheme +@item Random numbers get sourced directly from the OS (and not from a CSPRNG +in userspace) +@item Cleaner RSA and DSA key generation (largely based on FIPS 186-4) +@item Major clean-ups and simplification of the code base +@end itemize + +PyCryptodomex is the stand-alone version of PyCryptodome that no longer +provides drop-in compatibility with PyCrypto."))) + (define-public python-m2crypto (package (name "python-m2crypto") @@ -1064,7 +1122,7 @@ through the Engine interface.") (define-public python-pykeepass (package (name "python-pykeepass") - (version "3.2.0") + (version "3.2.1") (source (origin (method git-fetch) @@ -1074,7 +1132,7 @@ through the Engine interface.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1wxbfpy7467mlnfsvmh685fhfnq4fki9y7yc9cylp30r5n3hisaj")))) + (base32 "1symxf4ahylynihnp9z4z3lh2vy65ipvg8s4hjrnn936hcaaxghk")))) (build-system python-build-system) (arguments `(#:phases @@ -1098,7 +1156,7 @@ through the Engine interface.") ("python-dateutil" ,python-dateutil) ("python-future" ,python-future) ("python-lxml" ,python-lxml) - ("python-pycryptodome" ,python-pycryptodome))) + ("python-pycryptodomex" ,python-pycryptodomex))) (home-page "https://github.com/libkeepass/pykeepass") (synopsis "Python library to interact with keepass databases") (description @@ -1184,13 +1242,13 @@ been constructed to maintain extensive documentation on how to use (define-public python-pyotp (package (name "python-pyotp") - (version "2.4.0") + (version "2.4.1") (source (origin (method url-fetch) (uri (pypi-uri "pyotp" version)) (sha256 - (base32 "0a1dx07y785xyl70h0vj6vssg13qfx11w04d0gz8h48qffsymv01")))) + (base32 "0jsqfmx9i7j8z81r4zazv76xzy1fcq8v9s2r4kvx7ajfndq3z2h3")))) (build-system python-build-system) (home-page "https://github.com/pyauth/pyotp") (synopsis "Python One Time Password Library") diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index b05de077d2..ca6d7a5bfe 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2020 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2016, 2017, 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2016, 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016, 2017, 2020 Julien Lepiller <julien@lepiller.eu> @@ -68,6 +68,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages django) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) @@ -76,6 +77,7 @@ #:use-module (gnu packages python-check) #:use-module (gnu packages python-compression) #:use-module (gnu packages python-crypto) + #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) #:use-module (gnu packages serialization) #:use-module (gnu packages sphinx) @@ -276,6 +278,158 @@ WSGI. This package includes libraries for implementing ASGI servers.") ;; looks like the user can choose a license. (license (list license:gpl3+ license:lgpl3+ license:expat)))) +(define-public python-aws-sam-translator + (package + (name "python-aws-sam-translator") + (version "1.30.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "aws-sam-translator" version)) + (sha256 + (base32 + "0d9ppd94x2kw404m49ajswmmxgdngbs4p5ajyrdvnlivfzqbv7dx")))) + (build-system python-build-system) + (arguments + `(;; XXX: Tests are not distributed with the PyPI archive, and would + ;; introduce a circular dependency on python-cfn-lint. + #:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'loosen-requirements + (lambda _ + ;; The package needlessly specifies exact versions + ;; of dependencies, when it works fine with others. + (substitute* "requirements/base.txt" + (("(.*)(~=[0-9\\.]+)" all package version) + package)) + #t))))) + (propagated-inputs + `(("python-boto3" ,python-boto3) + ("python-jsonschema" ,python-jsonschema) + ("python-six" ,python-six))) + (home-page "https://github.com/awslabs/serverless-application-model") + (synopsis "Transform AWS SAM templates into AWS CloudFormation templates") + (description + "AWS SAM Translator is a library that transform @dfn{Serverless Application +Model} (SAM) templates into AWS CloudFormation templates.") + (license license:asl2.0))) + +(define-public python-aws-xray-sdk + (package + (name "python-aws-xray-sdk") + (version "2.6.0") + (home-page "https://github.com/aws/aws-xray-sdk-python") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12fzr0ylpa1lx3xr1x2f1jx8iiyzcr6g57fb9jign0j0lxdlbzpv")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-tests + (lambda _ + (for-each delete-file + '(;; These tests require packages not yet in Guix. + "tests/ext/aiobotocore/test_aiobotocore.py" + "tests/ext/aiohttp/test_middleware.py" + "tests/ext/pg8000/test_pg8000.py" + "tests/ext/psycopg2/test_psycopg2.py" + "tests/ext/pymysql/test_pymysql.py" + "tests/ext/pynamodb/test_pynamodb.py" + "tests/test_async_recorder.py" + + ;; FIXME: Why is this failing? + "tests/test_patcher.py" + + ;; TODO: How to configure Django for these tests. + "tests/ext/django/test_db.py" + "tests/ext/django/test_middleware.py" + + ;; These tests want to access httpbin.org. + "tests/ext/requests/test_requests.py" + "tests/ext/httplib/test_httplib.py" + "tests/ext/aiohttp/test_client.py")))) + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:.:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" "tests")))))) + (native-inputs + `(;; These are required for the test suite. + ("python-bottle" ,python-bottle) + ("python-flask" ,python-flask) + ("python-flask-sqlalchemy" ,python-flask-sqlalchemy) + ("python-pymysql" ,python-pymysql) + ("python-pytest" ,python-pytest) + ("python-pytest-aiohttp" ,python-pytest-aiohttp) + ("python-requests" ,python-requests) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-webtest" ,python-webtest))) + (propagated-inputs + `(("python-aiohttp" ,python-aiohttp) + ("python-botocore" ,python-botocore) + ("python-future" ,python-future) + ("python-jsonpickle" ,python-jsonpickle) + ("python-urllib3" ,python-urllib3) + ("python-wrapt" ,python-wrapt))) + (synopsis "Profile applications on AWS X-Ray") + (description + "The AWS X-Ray SDK for Python enables Python developers to record and +emit information from within their applications to the AWS X-Ray service.") + (license license:asl2.0))) + +(define-public python-cfn-lint + (package + (name "python-cfn-lint") + (version "0.41.0") + (home-page "https://github.com/aws-cloudformation/cfn-python-lint") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0nqs0fmj3hd7pnd9hkb4z57jvi2iv82hh6n3xxba6i6p8zgx75q4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Remove test for the documentation update scripts + ;; to avoid a dependency on 'git'. + (delete-file + "test/unit/module/maintenance/test_update_documentation.py") + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (setenv "PATH" (string-append out "/bin:" + (getenv "PATH"))) + (invoke "python" "-m" "unittest" "discover" + "-s" "test"))))))) + (native-inputs + `(("python-pydot" ,python-pydot) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-aws-sam-translator" ,python-aws-sam-translator) + ("python-jsonpatch" ,python-jsonpatch) + ("python-jsonschema" ,python-jsonschema) + ("python-junit-xml" ,python-junit-xml) + ("python-networkx" ,python-networkx) + ("python-pyyaml" ,python-pyyaml) + ("python-six" ,python-six))) + (synopsis "Validate CloudFormation templates") + (description + "This package lets you validate CloudFormation YAML/JSON templates against +the CloudFormation spec and additional checks. Includes checking valid values +for resource properties and best practices.") + (license license:expat))) + (define-public python-falcon (package (name "python-falcon") @@ -453,19 +607,21 @@ other HTTP libraries.") syntax highlighting, wget-like downloads, plugins, and more. It consists of a single http command designed for painless debugging and interaction with HTTP servers, RESTful APIs, and web services.") + ;; This was fixed in 1.0.3. + (properties `((lint-hidden-cve . ("CVE-2019-10751")))) (license license:bsd-3))) (define-public python-html2text (package (name "python-html2text") - (version "2019.8.11") + (version "2020.1.16") (source (origin (method url-fetch) (uri (pypi-uri "html2text" version)) (sha256 (base32 - "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm")))) + "1fvv4z6dblii2wk1x82981ag8yhxbim1v2ksgywxsndh2s7335p2")))) (build-system python-build-system) (arguments '(#:phases @@ -483,7 +639,94 @@ Swartz.") (license license:gpl3+))) (define-public python2-html2text - (package-with-python2 python-html2text)) + (let ((base (package-with-python2 python-html2text))) + (package + (inherit base) + ;; This is the last version with support for Python 2. + (version "2019.8.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "html2text" version)) + (sha256 + (base32 + "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm"))))))) + +(define-public python-jose + (package + (name "python-jose") + (version "3.2.0") + (home-page "http://github.com/mpdavis/python-jose") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xmnf8whzv2gnkkdv0fqcn9qwmcc7y647p4kw9fi3lvcp9kch8vi")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (invoke "pytest" "-vv") + (format #t "test suite not run~%")) + #t))))) + (native-inputs + `(;; All native inputs are for tests. + ("python-pyasn1" ,python-pyasn1) + ("python-pytest" ,python-pytest) + ("python-pytest-cov" ,python-pytest-cov) + ("python-pytest-runner" ,python-pytest-runner))) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-rsa" ,python-rsa) + ("python-six" ,python-six))) + (synopsis "JOSE implementation in Python") + (description + "The @dfn{JavaScript Object Signing and Encryption} (JOSE) technologies +- JSON Web Signature (JWS), JSON Web Encryption (JWE), JSON Web Key (JWK), and +JSON Web Algorithms (JWA) - collectively can be used to encrypt and/or sign +content using a variety of algorithms.") + (license license:expat))) + +(define-public python-jsonpickle + (package + (name "python-jsonpickle") + (version "1.4.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "jsonpickle" version)) + (sha256 + (base32 + "1fn86z468hamw8njh2grw2xdhsm7g48dyxs3lw0n10nn1g6vgm78")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" + ;; Prevent running the flake8 and black + ;; pytest plugins, which only tests style + ;; and frequently causes harmless failures. + "-o" "addopts=''")))))) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-toml" ,python-toml) ;XXX: for setuptools_scm[toml] + ;; For tests. + ("python-numpy" ,python-numpy) + ("python-pandas" ,python-pandas) + ("python-pytest" ,python-pytest))) + (home-page "https://jsonpickle.github.io/") + (synopsis "Serialize object graphs into JSON") + (description + "This package provides a Python library for serializing any arbitrary +object graph to and from JSON.") + (license license:bsd-3))) (define-public python-mechanicalsoup (package @@ -710,6 +953,30 @@ both of which are installed automatically if you install this library.") (define-public python2-flask-babel (package-with-python2 python-flask-babel)) +(define-public python-flask-cors + (package + (name "python-flask-cors") + (version "3.0.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "Flask-Cors" version)) + (sha256 + (base32 + "1f36hkaxc92zn12f88fkzwifdvlvsnmlp1dv3p5inpcc500c3kvb")))) + (build-system python-build-system) + (native-inputs + `(("python-flask" ,python-flask) + ("python-nose" ,python-nose) + ("python-packaging" ,python-packaging))) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://flask-cors.readthedocs.io/en/latest/") + (synopsis "Handle Cross-Origin Resource Sharing with Flask") + (description + "This package provides a Flask extension for handling @acronym{CORS,Cross +Origin Resource Sharing}, making cross-origin AJAX possible.") + (license license:expat))) + (define-public python-html5lib (package (name "python-html5lib") @@ -786,6 +1053,41 @@ C, yielding parse times that can be a thirtieth of the html5lib parse times.") (define-public python2-html5-parser (package-with-python2 python-html5-parser)) +(define-public python-minio + (package + (name "python-minio") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "minio" version)) + (sha256 + (base32 + "1cxpa0m7mdvpdbc1g6wlihq6ja4g4paxkl6f3q84bbnx07zpbllp")))) + (build-system python-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'check 'disable-failing-tests + (lambda _ + ;; This test requires network access. + (delete-file "tests/unit/credentials_test.py") + #t))))) + (native-inputs + `(("python-faker" ,python-faker) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) + (propagated-inputs + `(("python-certifi" ,python-certifi) + ("python-configparser" ,python-configparser) + ("python-dateutil" ,python-dateutil) + ("python-pytz" ,python-pytz) + ("python-urllib3" ,python-urllib3))) + (home-page "https://github.com/minio/minio-py") + (synopsis "Programmatically access Amazon S3 from Python") + (description + "This package provides a Python library for interacting with any +Amazon S3 compatible object storage server.") + (license license:asl2.0))) + (define-public python-pycurl (package (name "python-pycurl") @@ -956,19 +1258,22 @@ options.") (package (inherit python-cssutils) (name "python-css-parser") - (version "1.0.4") + (version "1.0.6") (source (origin (method url-fetch) (uri (pypi-uri "css-parser" version ".tar.gz")) (sha256 - (base32 - "0i4xfykiffxzr4f6y0m2ggqvx1rzam6pw6krlr5k6ldf29akbay7")))) + (base32 "0bmg4kiiir6pj9x3sd12x4dz2c1xpp2bn5nn60fxnbk2lnl4im2f")))) (home-page "https://github.com/ebook-utils/css-parser") (synopsis "Fork of cssutils modified for parsing ebooks") (description - "Css-parser is a fork of cssutils 1.0.2, updated and modified for parsing -ebooks, due to cssutils not receiving updates as of 1.0.2.") + "Css-parser is a Python package for parsing and building CSS +Cascading Style Sheets. Currently it provides a DOM only and no rendering +options. + +It's a fork of cssutils 1.0.2, updated and modified for parsing ebooks, due to +cssutils not receiving updates as of 1.0.2.") (license license:lgpl3+))) (define-public python2-css-parser @@ -1008,6 +1313,49 @@ another XPath engine to find the matching elements in an XML or HTML document.") (define-public python2-cssselect (package-with-python2 python-cssselect)) +(define-public python-databricks-cli + (package + (name "python-databricks-cli") + (version "0.14.0") + (home-page "https://github.com/databricks/databricks-cli") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0imwpfda2pxix1rx0nlqs48v58icfw065nsv53rpg0dw4bw9x2wi")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "tests" "-vv" + ;; XXX: This fails with newer Pytest + ;; (upstream uses Pytest 3..). + "-k" "not test_get_request_with_list")))))) + (native-inputs + `(;; For tests. + ("python-decorator" ,python-decorator) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-requests-mock" ,python-requests-mock))) + (propagated-inputs + `(("python-click" ,python-click) + ("python-configparser" ,python-configparser) + ("python-requests" ,python-requests) + ("python-six" ,python-six) + ("python-tabulate" ,python-tabulate))) + (synopsis "Command line interface for Databricks") + (description + "The Databricks Command Line Interface is a tool which provides an easy +to use interface to the Databricks platform. The CLI is built on top of the +Databricks REST APIs.") + (license license:asl2.0))) + (define-public python-openid-cla (package (name "python-openid-cla") @@ -1158,6 +1506,37 @@ WebSockets (over HTTP/1 and HTTP/2), ASGI/2, and ASGI/3 specifications. It can utilise asyncio, uvloop, or trio worker types.") (license license:expat))) +(define-public python-querystring-parser + (package + (name "python-querystring-parser") + (version "1.2.4") + (source (origin + (method url-fetch) + (uri (pypi-uri "querystring_parser" version)) + (sha256 + (base32 + "0qlar8a0wa003hm2z6wcpb625r6vjj0a70rsni9h8lz0zwfcwkv4")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; XXX FIXME: This test is broken with Python 3.7: + ;; https://github.com/bernii/querystring-parser/issues/35 + (substitute* "querystring_parser/tests.py" + (("self\\.assertEqual\\(self\\.knownValuesNormalized, result\\)") + "True")) + (invoke "python" "querystring_parser/tests.py")))))) + (propagated-inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/bernii/querystring-parser") + (synopsis "QueryString parser that correctly handles nested dictionaries") + (description + "This package provides a query string parser for Python and Django +projects that correctly creates nested dictionaries from sent form/querystring +data.") + (license license:expat))) + (define-public python-tornado (package (name "python-tornado") @@ -2273,15 +2652,16 @@ supports url redirection and retries, and also gzip and deflate decoding.") (define-public awscli (package + ;; Note: updating awscli typically requires updating botocore as well. (name "awscli") - (version "1.18.6") + (version "1.18.183") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm")))) + "0n1pmdl33r1v8qnrcg08ihvri9zm4fvsp14605vwmlkxvs8nb7s5")))) (build-system python-build-system) (arguments ;; FIXME: The 'pypi' release does not contain tests. @@ -2726,6 +3106,19 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients." (define-public python2-cachecontrol (package-with-python2 python-cachecontrol)) +(define-public python-cachecontrol-0.11 + (package + (inherit python-cachecontrol) + (name "python-cachecontrol") + (version "0.11.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "CacheControl" version)) + (sha256 + (base32 + "07jsfhlbcwgqg6ayz8nznzaqg5rmxqblbzxz1qvg5wc44pcjjy4g")))))) + (define-public python-betamax (package (name "python-betamax") @@ -2779,13 +3172,13 @@ Betamax.") (define-public python-s3transfer (package (name "python-s3transfer") - (version "0.2.0") + (version "0.3.3") (source (origin (method url-fetch) (uri (pypi-uri "s3transfer" version)) (sha256 (base32 - "08fhj73b1ai52hrs2q3nggshq3pswn1gq8ch3m009cb2v2vmqggj")))) + "1nzp5kwmy9669334shcz9ipg89jgpdqhrmbkgdg18r7wmvi3f6lj")))) (build-system python-build-system) (arguments `(#:phases @@ -3522,16 +3915,15 @@ addon modules.") (define-public python-bottle (package (name "python-bottle") - (version "0.12.18") + (version "0.12.19") (source (origin (method url-fetch) (uri (pypi-uri "bottle" version)) (sha256 - (base32 - "17pn43kzr7m6czjbm4nda7kzs4ap9mmb30qfbhifyzas2i5vf688")))) + (base32 "0b6s50vc4iad97b6bb3xnyrgajb3nj6n6jbr5p54a4vapky3zmx9")))) (build-system python-build-system) - (home-page "http://bottlepy.org/") + (home-page "https://bottlepy.org/") (synopsis "WSGI framework for small web-applications.") (description "@code{python-bottle} is a WSGI framework for small web-applications.") (license license:expat))) @@ -5142,14 +5534,13 @@ Encoding for HTTP.") (define-public python-cloudscraper (package (name "python-cloudscraper") - (version "1.2.46") + (version "1.2.48") (source (origin (method url-fetch) (uri (pypi-uri "cloudscraper" version)) (sha256 - (base32 - "1br4p648yassywsd7whz1c7s10rwdysnd7wdqfjq9bksqfxrac3r")) + (base32 "0qjxzb0z5bprvmdhx42ayqhlhi2h49d9dwc0vvycj817s71f2sxv")) (modules '((guix build utils))) (snippet '(with-directory-excursion "cloudscraper" @@ -5160,6 +5551,10 @@ Encoding for HTTP.") "captcha/deathbycaptcha.py" "interpreters/js2py.py" "interpreters/v8.py")) + (substitute* "__init__.py" + ;; Perhaps it's a joke, but don't promote proprietary software. + (("([Th]is feature is not available) in the .*'" _ prefix) + (string-append prefix ".'"))) #t)))) (build-system python-build-system) (propagated-inputs diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ee1f9acda0..05cdbc23cc 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -56,6 +56,7 @@ ;;; Copyright © 2018, 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Luther Thompson <lutheroto@gmail.com> ;;; Copyright © 2018 Vagrant Cascadian <vagrant@debian.org> +;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2019 Sam <smbaines8@gmail.com> ;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us> @@ -89,6 +90,9 @@ ;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com> ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech> +;;; Copyright © 2020 Diego N. Barbato <dnbarbato@posteo.de> +;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> +;;; Copyright © 2019 Kristian Trandem <kristian@devup.no> ;;; ;;; This file is part of GNU Guix. ;;; @@ -120,6 +124,8 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages databases) #:use-module (gnu packages dbm) + #:use-module (gnu packages djvu) + #:use-module (gnu packages docker) #:use-module (gnu packages enchant) #:use-module (gnu packages file) #:use-module (gnu packages fontutils) @@ -138,7 +144,6 @@ #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) #:use-module (gnu packages kerberos) #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) @@ -163,6 +168,7 @@ #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages qt) + #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) #:use-module (gnu packages search) @@ -3457,8 +3463,11 @@ structure for Python.") (synopsis "Python Documentation Utilities") (description "Docutils is a modular system for processing documentation into useful -formats, such as HTML, XML, and LaTeX. For input Docutils supports -reStructuredText.") +formats, such as HTML, XML, and LaTeX. It uses @dfn{reStructuredText}, an +easy to use markup language, for input. + +This package provides tools for converting @file{.rst} files to other formats +via commands such as @command{rst2man}, as well as supporting Python code.") ;; Most of the source code is public domain, but some source files are ;; licensed under the PFSL, BSD 2-clause, and GPLv3+ licenses. (license (list license:public-domain license:psfl license:bsd-2 license:gpl3+)))) @@ -3870,14 +3879,13 @@ outside the standard library.") (define-public python-scp (package (name "python-scp") - (version "0.13.2") + (version "0.13.3") (source (origin (method url-fetch) (uri (pypi-uri "scp" version)) (sha256 - (base32 - "1crlpw9lnn58fs1c1rmh7s7s9y5gkgpgjsqlvg9qa51kq1knx7gg")))) + (base32 "1m2v09m407p097cy3xy5rxicqfzrqjwf8v5rd4qhfqkk7lllimwb")))) (build-system python-build-system) (arguments '(#:tests? #f)) ;tests require an SSH server @@ -3919,6 +3927,30 @@ augment the changelog, but it can be used for other documents, too.") (define-public python2-rst.linker (package-with-python2 python-rst.linker)) +(define-public python-sshpubkeys + (package + (name "python-sshpubkeys") + (version "3.1.0") + (home-page "https://github.com/ojarva/python-sshpubkeys") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1h4gwmcfn84kkqh83km1vfz8sc5kr2g4gzgzmr8gz704jmqiv7nq")))) + (build-system python-build-system) + (propagated-inputs + `(("python-cryptography" ,python-cryptography) + ("python-ecdsa" ,python-ecdsa))) + (synopsis "OpenSSH public key parser") + (description + "This package provides a library for parsing and validating OpenSSH +public key files.") + (license license:bsd-3))) + (define-public python-feedgenerator (package (name "python-feedgenerator") @@ -4986,7 +5018,6 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. ("python-cairocffi" ,python-cairocffi))) (inputs `(("libpng" ,libpng) - ("imagemagick" ,imagemagick) ("freetype" ,freetype) ("cairo" ,cairo) ("glib" ,glib) @@ -5061,6 +5092,9 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc. ;; has not effect. (setenv "LD_LIBRARY_PATH" (string-append cairo "/lib")) (setenv "HOME" (getcwd)) + ;; Fix rounding errors when using the x87 FPU. + (when (string-prefix? "i686" ,(%current-system)) + (setenv "CFLAGS" "-ffloat-store")) (call-with-output-file "setup.cfg" (lambda (port) (format port "[directories]~% @@ -5620,14 +5654,14 @@ the OleFileIO module from PIL, the Python Image Library.") (define-public python-pillow (package (name "python-pillow") - (version "6.2.1") + (version "8.0.1") (source (origin (method url-fetch) (uri (pypi-uri "Pillow" version)) (sha256 (base32 - "1c8wkzc58f5wdh006jvmwdk3wxld1xgagcbdvj7iv17qi0m9fkmz")))) + "17pv0flaqqfld9m4lz8ayxyqb11gbbmr7w04mw4ar79cn3lwdi8i")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) @@ -5667,12 +5701,24 @@ efficient internal representation, and fairly powerful image processing capabilities. The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool.") + (properties `((python2-variant . ,(delay python2-pillow)))) (license (license:x11-style "http://www.pythonware.com/products/pil/license.htm" "The PIL Software License")))) (define-public python2-pillow - (package-with-python2 python-pillow)) + (package-with-python2 + (package + (inherit (strip-python2-variant python-pillow)) + ;; Version 6 is the last series with Python 2 support. + (version "6.2.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pillow" version)) + (sha256 + (base32 + "0l5rv8jkdrb5q846v60v03mcq64yrhklidjkgwv6s1pda71g17yv"))))))) (define-public python-pillow-2.9 (package @@ -8132,27 +8178,6 @@ PEP 8.") (define-public python2-pyflakes (package-with-python2 python-pyflakes)) -;; Flake8 2.6 requires an older version of pyflakes. -;; This should be removed ASAP. -(define-public python-pyflakes-1.2 - (package (inherit python-pyflakes) - (version "1.2.3") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pyflakes" version)) - (sha256 - (base32 - "17hkw8yd44cr8fz13phy4aih3r5j2p7ild4zlvqdh2c8dmiinjif")))) - (arguments - '(#:phases - (modify-phases %standard-phases - ;; This one test fails. - (replace 'check - (lambda _ (invoke "pytest" "-vv" "-k" "not test_f_string")))))) - (native-inputs - `(("python-pytest" ,python-pytest))))) - (define-public python-mccabe (package (name "python-mccabe") @@ -8178,39 +8203,6 @@ complexity of Python source code.") (define-public python2-mccabe (package-with-python2 python-mccabe)) -(define-public python-mccabe-0.2.1 - (package (inherit python-mccabe) - (version "0.2.1") - (source - (origin - (method url-fetch) - (uri (pypi-uri "mccabe" version)) - (sha256 - (base32 - "0fi4a81kr5bcv5p4xgibqr595hyj5dafkqgsmfk96mfy8w71fajs")))))) - -(define-public python2-mccabe-0.2.1 - (package-with-python2 python-mccabe-0.2.1)) - -;; Flake8 2.4.1 requires an older version of pep8. -;; This should be removed ASAP. -(define-public python-pep8-1.5.7 - (package (inherit python-pep8) - (version "1.5.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "pep8" version)) - (sha256 - (base32 - "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))) - (arguments - ;; XXX Tests not compatible with Python 3.5. - '(#:tests? #f)))) - -(define-public python2-pep8-1.5.7 - (package-with-python2 python-pep8-1.5.7)) - (define-public python-flake8 (package (name "python-flake8") @@ -8257,40 +8249,6 @@ complexity of Python source code.") ("python2-typing" ,python2-typing) ,@(package-propagated-inputs base)))))) -;; python-hacking requires flake8 <2.7.0. -(define-public python-flake8-2.6 - (package - (inherit python-flake8) - (version "2.6.2") - (source (origin - (method url-fetch) - (uri (pypi-uri "flake8" version)) - (sha256 - (base32 - "0y57hzal0j84dh9i1g1g6dc4aywvrnhy2fjmmbglpv5ajihxh713")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'use-later-pycodestyles - (lambda __ - (substitute* '("flake8.egg-info/requires.txt" - "setup.py") - (("pycodestyle >= 2.0, < 2.1") - "pycodestyle >= 2.0")) - #t)) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - (add-installed-pythonpath inputs outputs) - (invoke "pytest" "-v") - #t))))) - (propagated-inputs - `(("python-pep8" ,python-pep8) - ("python-pycodestyle" ,python-pycodestyle) - ("python-entrypoints" ,python-entrypoints) - ("python-pyflakes" ,python-pyflakes-1.2) - ("python-mccabe" ,python-mccabe))))) - (define-public python-flake8-bugbear (package (name "python-flake8-bugbear") @@ -8718,6 +8676,26 @@ should be stored on various operating systems.") (define-public python2-appdirs (package-with-python2 python-appdirs)) +(define-public python-gorilla + (package + (name "python-gorilla") + (version "0.3.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "gorilla" version)) + (sha256 + (base32 + "0b40blcp6fih4nvqbilra4qw1dfccv1ahjmr41ac4d9rjadqkcpy")))) + (build-system python-build-system) + (home-page "https://github.com/christophercrouzet/gorilla") + (synopsis "Convenient monkey patching with Python") + (description + "Gorilla is a Python library that provides a convenient approach to +monkey patching. Monkey patching is the process of modifying module and +class attributes at runtime with the purpose of replacing or extending +third-party code.") + (license license:expat))) + (define-public python-llfuse (package (name "python-llfuse") @@ -10889,14 +10867,13 @@ for the module to work under Python 3.3.") (define-public python-colorama (package (name "python-colorama") - (version "0.4.3") + (version "0.4.4") (source (origin (method url-fetch) (uri (pypi-uri "colorama" version)) (sha256 - (base32 - "189n8hpijy14jfan4ha9f5n06mnl33cxz7ay92wjqgkr639s0vg9")))) + (base32 "16w62sm95hmh55rqxn4zwdz0bkh3fqm1qnz9cwi3s510iasb4har")))) (build-system python-build-system) (synopsis "Colored terminal text rendering for Python") (description "Colorama is a Python library for rendering colored terminal @@ -10907,6 +10884,73 @@ text.") (define-public python2-colorama (package-with-python2 python-colorama)) +(define-public python-moto + (package + (name "python-moto") + ;; XXX: Use a pre-release for compatibility with latest botocore & friends. + (version "1.3.16.dev134") + (source (origin + (method url-fetch) + (uri (pypi-uri "moto" version)) + (sha256 + (base32 + "1pix0c7zszjwzfy88n1rpih9vkdm25nqcvz93z850xvgwb4v81bd")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-hardcoded-executable-names + (lambda _ + (substitute* "moto/batch/models.py" + (("/bin/sh") + (which "sh"))) + (substitute* (find-files "tests" "\\.py$") + (("#!/bin/bash") + (string-append "#!" (which "bash")))) + #t)) + (replace 'check + (lambda _ + (setenv "PYTHONPATH" (string-append "./build/lib:" + (getenv "PYTHONPATH"))) + (invoke "pytest" "-vv" "-m" "not network" + ;; These tests require Docker. + "-k" "not test_terminate_job \ +and not test_invoke_function_from_sqs_exception")))))) + (native-inputs + `(("python-flask" ,python-flask) + ("python-flask-cors" ,python-flask-cors) + ("python-freezegun" ,python-freezegun) + ("python-parameterized" ,python-parameterized) + ("python-pytest" ,python-pytest) + ("python-sure" ,python-sure))) + (propagated-inputs + `(("python-aws-xray-sdk" ,python-aws-xray-sdk) + ("python-boto" ,python-boto) + ("python-boto3" ,python-boto3) + ("python-botocore" ,python-botocore) + ("python-cfn-lint" ,python-cfn-lint) + ("python-cryptography" ,python-cryptography) + ("python-dateutil" ,python-dateutil) + ("python-docker" ,python-docker) + ("python-idna" ,python-idna) + ("python-jinja2" ,python-jinja2) + ("python-jose" ,python-jose) + ("python-jsondiff" ,python-jsondiff) + ("python-mock" ,python-mock) + ("python-pytz" ,python-pytz) + ("python-pyyaml" ,python-pyyaml) + ("python-requests" ,python-requests) + ("python-responses" ,python-responses) + ("python-six" ,python-six) + ("python-sshpubkeys" ,python-sshpubkeys) + ("python-werkzeug" ,python-werkzeug) + ("python-xmltodict" ,python-xmltodict))) + (home-page "https://github.com/spulec/moto") + (synopsis "Mock out the boto library") + (description + "@code{moto} is a library designed to easily mock out the +@code{boto} library.") + (license license:asl2.0))) + (define-public python-rsa (package (name "python-rsa") @@ -11062,32 +11106,55 @@ document.") manipulation library.") (license license:expat))) +(define-public python-boto + (package + (name "python-boto") + (version "2.49.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "boto" version)) + (sha256 + (base32 + "0njy09c4wjx7ipxhwi6vv404nflyiasl78vwwxxpclnql903n3ga")))) + (build-system python-build-system) + (arguments + ;; XXX: This package is unmaintained and has problems with newer versions + ;; of Python 3 as well as test libraries. 'python-moto' still uses a + ;; subset of this library, so keep it around for now, but disable tests. + '(#:tests? #f)) + (propagated-inputs + `(("python-paramiko" ,python-paramiko) + ("python-requests" ,python-requests))) + (home-page "https://github.com/boto/boto") + (synopsis "Python interfaces for Amazon Web Services") + (description + "This package provides various facilities for interacting with Amazon +Web Services through Python. + +This software is unmaintained, and new projects should use @code{boto3} instead.") + (license license:expat))) + (define-public python-botocore + ;; Note: When updating botocore, also make sure that boto3 and awscli + ;; are compatible. (package (name "python-botocore") - (version "1.15.26") + (version "1.19.22") (source (origin (method url-fetch) (uri (pypi-uri "botocore" version)) (sha256 (base32 - "1a87pbwkk5vlwz92hy1wizfnpiwn11bhaicr6bmji1i5ybwdhnr8")))) + "0iim86x7c6hqmvd61ygz6x6x9glnsfbnyzv2y67qjdcdx8jpkmw7")))) (build-system python-build-system) (arguments ;; FIXME: Many tests are failing. '(#:tests? #f)) (propagated-inputs `(("python-dateutil" ,python-dateutil) - ("python-docutils" ,python-docutils) - ("python-jmespath" ,python-jmespath))) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("behave" ,behave) - ("python-tox" ,python-tox) - ("python-urllib3" ,python-urllib3) - ("python-wheel" ,python-wheel))) + ("python-jmespath" ,python-jmespath) + ("python-urllib3" ,python-urllib3))) (home-page "https://github.com/boto/botocore") (synopsis "Low-level interface to AWS") (description "Botocore is a Python library that provides a low-level @@ -11097,6 +11164,40 @@ interface to the Amazon Web Services (AWS) API.") (define-public python2-botocore (package-with-python2 python-botocore)) +(define-public python-boto3 + (package + (name "python-boto3") + (version "1.16.22") + (home-page "https://github.com/boto/boto3") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0h20hgl4yfl58g75qhb6ibrdmzn47md3srgar7hask14cjmfhfy3")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-network-tests + ;; Deleting integration tests because they are trying to connect to AWS. + (lambda _ + (delete-file-recursively "tests/integration") + #t))))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose) + ("python-mock" ,python-mock))) + (propagated-inputs + `(("python-botocore" ,python-botocore) + ("python-jmespath" ,python-jmespath) + ("python-s3transfer" ,python-s3transfer))) + (synopsis "AWS SDK for Python") + (description + "Boto3 is a Python library for writing programs that interact with +@acronym{AWS,Amazon Web Services}.") + (license license:asl2.0))) + (define-public python-pyfiglet (package (name "python-pyfiglet") @@ -14704,22 +14805,20 @@ converting text with ANSI color codes to HTML or LaTeX.") (define-public python-ddt (package (name "python-ddt") - (version "1.1.3") + (version "1.4.1") (source (origin (method url-fetch) (uri (pypi-uri "ddt" version)) (sha256 (base32 - "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk")))) + "1niqpzc26sxdbyi46r07n4pma5fjx6crww2539vpfmsf0w6yg585")))) (build-system python-build-system) (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose))) + `(("python-pytest" ,python-pytest))) (propagated-inputs - `(("python-six" ,python-six) - ("python-pyyaml" ,python-pyyaml))) - (home-page "https://github.com/txels/ddt") + `(("python-pyyaml" ,python-pyyaml))) + (home-page "https://github.com/datadriventests/ddt") (synopsis "Data-Driven Tests") (description "Data-Driven Tests (@dfn{DDT}) allow you to multiply one test case by @@ -14727,9 +14826,6 @@ running it with different test data, and make it appear as multiple test cases.") (license license:expat))) -(define-public python2-ddt - (package-with-python2 python-ddt)) - (define-public python-pycountry (package (name "python-pycountry") @@ -16023,7 +16119,7 @@ by path in a JSON document (see RFC 6901).") (base32 "0k9pff06lxama3nhsc7cdxbp83422bdy8ifs52i6xkas8hpyzfzr")))) (build-system python-build-system) - (native-inputs + (propagated-inputs `(("python-jsonpointer" ,python-jsonpointer))) (home-page "https://github.com/stefankoegl/python-json-patch") (synopsis "Applying JSON Patches in Python 2.6+ and 3.x") @@ -16160,6 +16256,125 @@ and integration into other projects.") (propagated-inputs `(("python2-selectors2" ,python2-selectors2)))))) +(define-public python-bagit + (package + (name "python-bagit") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bagit" version)) + (sha256 + (base32 + "1m6y04qmig0b5hzb35lnaw3d2yfydb7alyr1579yblvgs3da6j7j")))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools-scm" ,python-setuptools-scm) + ("python-coverage" ,python-coverage) + ("python-mock" ,python-mock))) + (home-page "https://libraryofcongress.github.io/bagit-python/") + (synopsis "Create and validate BagIt packages") + (description "Bagit is a Python library and command line utility for working +with BagIt style packages. BagIt is a minimalist packaging format for digital +preservation.") + (license license:cc0))) + +(define-public python-prov + (package + (name "python-prov") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "prov" version)) + (sha256 + (base32 + "1vi2fj31vygfcqrkimdmk52q2ldw08g9fn4v4zlgdfgcjlhqyhxn")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-lxml" ,python-lxml) + ("python-networkx" ,python-networkx) + ("python-rdflib" ,python-rdflib))) + (native-inputs + `(("graphviz" ,graphviz) + ("python-pydot" ,python-pydot))) + (home-page "https://github.com/trungdong/prov") + (synopsis + "W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)") + (description + "This package provides a library for W3C Provenance Data Model supporting +PROV-O (RDF), PROV-XML, PROV-JSON import/export.") + (license license:expat))) + +(define-public python-arcp + (package + (name "python-arcp") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "arcp" version)) + (sha256 + (base32 + "1p8mfyjssa6pbn5dp6pyzv9yy6kwm2rz5jn2kjbq5vy9f9wsq5sw")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "http://arcp.readthedocs.io/") + (synopsis + "Archive and Package URI parser and generator") + (description + "@acronym{arcp, Archive and Package} provides functions for creating +@code{arcp_} URIs, which can be used for identifying or parsing hypermedia files +packaged in an archive or package, like a ZIP file. arcp URIs can be used to +consume or reference hypermedia resources bundled inside a file archive or an +application package, as well as to resolve URIs for archive resources within a +programmatic framework. This URI scheme provides mechanisms to generate a +unique base URI to represent the root of the archive, so that relative URI +references in a bundled resource can be resolved within the archive without +having to extract the archive content on the local file system. An arcp URI can +be used for purposes of isolation (e.g. when consuming multiple archives), +security constraints (avoiding \"climb out\" from the archive), or for +externally identiyfing sub-resources referenced by hypermedia formats.") + (license license:asl2.0))) + +(define-public python-shellescape + (package + (name "python-shellescape") + (version "3.8.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chrissimpkins/shellescape") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wzccxk139qx1lb2g70f5b2yh9zq15nr2mgvqdbfabg5zm0vf1qw")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? inputs outputs #:allow-other-keys) + (when tests? + (add-installed-pythonpath inputs outputs) + (invoke "python" "tests/test_shellescape.py")) + #t))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/chrissimpkins/shellescape") + (synopsis + "Shell escape a string to safely use it as a token in a shell command") + (description + "The shellescape Python module defines the @code{shellescape.quote()} +function that returns a shell-escaped version of a Python string. This is a +backport of the @code{shlex.quote()} function from Python 3.8 that makes it +accessible to users of Python 3 versions < 3.3 and all Python 2.x versions.") + (license license:expat))) + (define-public python-validators (package (name "python-validators") @@ -16248,14 +16463,14 @@ address is valid and really exists.") (define-public python-marshmallow (package (name "python-marshmallow") - (version "3.0.0b14") + (version "3.9.1") (source (origin (method url-fetch) (uri (pypi-uri "marshmallow" version)) (sha256 (base32 - "1digk3f5cfk7wmlka65mc7bzsd96pbsgcsvp6pimd5b4ff9zb5p3")))) + "0kizhh3mnhpa08wfnsv1gagy22bpxzxszgbiylkhpz1d8qvwrykk")))) (build-system python-build-system) (propagated-inputs `(("python-dateutil" ,python-dateutil) @@ -17186,14 +17401,14 @@ such as figshare or Zenodo.") (base32 "183kg1rhzz3hqizvphkd8hlbf1zxfx8737zhfkmqzxi71jmdw7pd")))) (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (replace 'check + (lambda _ + (delete-file "setup.cfg") + (invoke "py.test")))))) (native-inputs - `(("python-appdirs" ,python-appdirs) - ("python-distlib" ,python-distlib) - ("python-importlib-metadata" ,python-importlib-metadata) - ("python-filelock" ,python-filelock) - ("python-six" ,python-six) - ("python-tox" ,python-tox) - ("python-virtualenv" ,python-virtualenv))) + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/k-bx/python-semver") (synopsis "Python helper for Semantic Versioning") (description "This package provides a Python library for @@ -18232,6 +18447,109 @@ gevent-powered application.") (define-public python2-gipc (package-with-python2 python-gipc)) +(define-public python-beautifultable + (package + (name "python-beautifultable") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "beautifultable" version)) + (sha256 + (base32 + "0wwlbifcbpzy3wfv6yzsxncarsngzizmmxbn6cy5gazlcq7h4k5x")))) + (build-system python-build-system) + (propagated-inputs + `(("python-wcwidth" ,python-wcwidth))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-setup.py + (lambda _ + (substitute* "setup.py" + (("setup\\(") + "setup(\n test_suite=\"test\","))))))) + (home-page "https://github.com/pri22296/beautifultable") + (synopsis "Print ASCII tables for terminals") + (description "@code{python-beautifultable} provides a class for easily +printing tabular data in a visually appealing ASCII format to a terminal. + +Features include, but are not limited to: +@itemize +@item Full customization of the look and feel of the table +@item Row and column accessors. +@item Full support for colors using ANSI sequences or any library. +@item Plenty of predefined styles and option to create custom ones. +@item Support for Unicode characters. +@item Supports streaming table when data is slow to retrieve. +@end itemize") + (license license:expat))) + +(define-public python-globber + (package + (name "python-globber") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/asharov/globber") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "055xf7ja7zjhxis0ab5fnfsx16fsvr5fvc6mixqybanwxh8sgfjk")))) + (build-system python-build-system) + (home-page "https://github.com/asharov/globber") + (synopsis "Library for string matching with glob patterns") + (description + "Globber is a Python library for matching file names against glob patterns. +In contrast to other glob-matching libraries, it matches arbitrary strings and +doesn't require the matched names to be existing files. In addition, it +supports the globstar @code{**} operator to match an arbitrary number of +path components.") + (license license:asl2.0))) + +(define-public python-git-hammer + (package + (name "python-git-hammer") + (version "0.3.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/asharov/git-hammer") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0f9xlk86ijzpdj25hr1q4wcy8k72v3w470ngwm9mpdkfj8ng84wr")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-setup.py + (lambda _ + (substitute* "setup.py" + (("setup\\(") + "setup(\n test_suite=\"test\","))))))) + (propagated-inputs + `(("python-beautifultable" ,python-beautifultable) + ("python-dateutil" ,python-dateutil) + ("python-gitpython" ,python-gitpython) + ("python-globber" ,python-globber) + ("python-matplotlib" ,python-matplotlib) + ("python-sqlalchemy" ,python-sqlalchemy) + ("python-sqlalchemy-utils" + ,python-sqlalchemy-utils))) + (home-page "https://github.com/asharov/git-hammer") + (synopsis "Provide statistics for git repositories") + (description + "Git Hammer is a statistics tool for projects in git repositories. +Its major feature is tracking the number of lines authored by each person for every +commit, but it also includes some other useful statistics.") + (license license:asl2.0))) + (define-public python-fusepy (package (name "python-fusepy") @@ -18691,79 +19009,37 @@ validation testing and application logic.") (define-public python-numba (package (name "python-numba") - (version "0.46.0") + (version "0.51.2") (source (origin (method url-fetch) (uri (pypi-uri "numba" version)) (sha256 (base32 - "1vnfzcq6fcnkmdms6114d49awvvj5181fl7z1wlha27qc2paxjy2")))) + "0s0777m8kq4l96i88zj78np7283v1n4878qfc1gvzb8l45bmkg8n")))) (build-system python-build-system) (arguments - `(#:modules ((guix build utils) - (guix build python-build-system) - (ice-9 ftw) - (srfi srfi-1) - (srfi srfi-26)) - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'disable-proprietary-features (lambda _ (setenv "NUMBA_DISABLE_HSA" "1") (setenv "NUMBA_DISABLE_CUDA" "1") #t)) - (add-after 'unpack 'remove-failing-tests - (lambda _ - ;; FIXME: These tests fail for unknown reasons: - ;; test_non_writable_pycache, test_non_creatable_pycache, and - ;; test_frozen (all in numba.tests.test_dispatcher.TestCache). - (substitute* "numba/tests/test_dispatcher.py" - (("def test(_non_writable_pycache)" _ m) - (string-append "def guix_skip" m)) - (("def test(_non_creatable_pycache)" _ m) - (string-append "def guix_skip" m)) - (("def test(_frozen)" _ m) - (string-append "def guix_skip" m))) - - ;; These tests fail because we don't run the tests from the build - ;; directory: test_setup_py_distutils, test_setup_py_setuptools - ;; They are in numba.tests.test_pycc.TestDistutilsSupport. - (substitute* "numba/tests/test_pycc.py" - (("def test(_setup_py_distutils|_setup_py_setuptools)" _ m) - (string-append "def guix_skip" m))) - - ;; These tests fail because our version of Python does not have - ;; a recognizable front-end for the Numba distribution to use - ;; to check against. - (substitute* "numba/tests/test_entrypoints.py" - (("def test(_init_entrypoint)" _ m) - (string-append "def guix_skip" m))) - (substitute* "numba/tests/test_jitclasses.py" - (("def test(_jitclass_longlabel_not_truncated)" _ m) - (string-append "def guix_skip" m))) - #t)) (replace 'check - (lambda _ - (let ((cwd (getcwd))) - (setenv "PYTHONPATH" - (string-append cwd "/build/" - (find (cut string-prefix? "lib" <>) - (scandir (string-append cwd "/build"))) - ":" - (getenv "PYTHONPATH"))) - ;; Something is wrong with the PYTHONPATH when running the - ;; tests from the build directory, as it complains about not being - ;; able to import certain modules. - (with-directory-excursion "/tmp" - (invoke "python3" "-m" "numba.runtests" "-v" "-m"))) - #t))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + ;; Something is wrong with the PYTHONPATH when running the + ;; tests from the build directory, as it complains about not being + ;; able to import certain modules. + (with-directory-excursion "/tmp" + (setenv "HOME" (getcwd)) + (invoke "python3" "-m" "numba.runtests" "-v" "-m"))))))) (propagated-inputs `(("python-llvmlite" ,python-llvmlite) ("python-numpy" ,python-numpy) ("python-singledispatch" ,python-singledispatch))) - ;; Needed for tests. - (inputs + (native-inputs ;for tests `(("python-jinja2" ,python-jinja2) ("python-pygments" ,python-pygments))) (home-page "https://numba.pydata.org") @@ -21437,13 +21713,13 @@ information for your operating system.") (define-public python-canonicaljson (package (name "python-canonicaljson") - (version "1.1.4") + (version "1.4.0") (source (origin (method url-fetch) (uri (pypi-uri "canonicaljson" version)) (sha256 - (base32 "09cpacc8yvcc74i63pdmlfaahh77dnvbyw9zf29wml2zzwqfbg25")))) + (base32 "0c86g0vvzdcg3nrcsqnbzlfhpprc2i894p8i14hska56yl27d6w9")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six) @@ -21865,13 +22141,13 @@ dictionaries.") (define-public pyzo (package (name "pyzo") - (version "4.10.2") + (version "4.11.0") (source (origin (method url-fetch) (uri (pypi-uri "pyzo" version)) (sha256 - (base32 "1zplxcb78qy8qibifmnsx5i9gnlfmw9n6nr4yflsabpxw57mx4m1")))) + (base32 "0vzsk6rchavlvy7ciq1z9qh3qrj9q213v2nn491fgjq3g19glj53")))) (build-system python-build-system) (arguments `(#:phases @@ -21881,8 +22157,8 @@ dictionaries.") ;; Tests fail with "Permission denied: '/homeless-shelter'". (setenv "HOME" "/tmp") #t))) - ;; Tests fail with "Uncaught Python exception: invalid literal for - ;; int() with base 10: 'test'". + ;; Tests fail with "Uncaught Python exception: python: undefined + ;; symbol: objc_getClass". #:tests? #f)) (propagated-inputs `(("python-pyqt" ,python-pyqt))) @@ -22561,6 +22837,41 @@ a Python library to convert RELAX NG schemata in Compact syntax (rnc) to equivalent schemata in the XML-based default RELAX NG syntax.") (license license:expat))) +(define-public python-telethon + (package + (name "python-telethon") + (version "1.17.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LonamiWebs/Telethon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0l9fhdrq576vllgi9aam45xzw5xi6jhgdv5zz8i4ygssdp7cm8jl")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "py.test" "-v")) + #t))))) + (propagated-inputs + `(("python-rsa" ,python-rsa) + ("python-pyaes" ,python-pyaes))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-asyncio" ,python-pytest-asyncio) + ("python-pytest-trio" ,python-pytest-trio))) + (home-page "https://docs.telethon.dev") + (synopsis "Full-featured Telegram client library for Python 3") + (description "This library is designed to make it easy to write Python +programs that can interact with Telegram.") + (license license:expat))) + (define-public python-citeproc-py (package (name "python-citeproc-py") @@ -22672,3 +22983,38 @@ applications with variable CPU loads).") (define-public python2-parallel (package-with-python2 python-parallel)) + +(define-public python-djvulibre + (package + (name "python-djvulibre") + (version "0.8.5") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-djvulibre" version)) + (sha256 + (base32 "1c0lvpg7j2525cv52s3q5sg7hfnakkb8rmghg0jc02gshsxmrj4f")))) + (build-system python-build-system) + (native-inputs + `(("ghostscript" ,ghostscript) + ("pkg-config" ,pkg-config) + ("python-nose" ,python-nose))) + (inputs + `(("djvulibre" ,djvulibre) + ("python-cython" ,python-cython))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + ;; Unit tests try to load the 'dllpath.py' and fail, because it + ;; doesn't make sense on GNU/Linux. + (delete-file "djvu/dllpath.py") + #t))))) + (synopsis "Python bindings for DjVuLibre") + (description "This is a set of Python bindings for the DjVuLibre library.") + (home-page "https://jwilk.net/software/python-djvulibre") + (license license:gpl2))) + +(define-public python2-djvulibre + (package-with-python2 python-djvulibre)) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 25f811ac70..eaa80dcf41 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -1584,7 +1584,7 @@ message."))) (origin (method git-fetch) (uri (git-reference - (url "https://github.com/manisandro/qtspell.git") + (url "https://github.com/manisandro/qtspell") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 95924743f8..0be7359985 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -538,7 +538,7 @@ to the fix block above. (define-public gqrx (package (name "gqrx") - (version "2.12.1") + (version "2.13.5") (source (origin (method git-fetch) @@ -547,7 +547,7 @@ to the fix block above. (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "00alf3q6y313xpx6p7v43vqsphd2x4am4q362lw21bcy9wc4jidw")))) + (base32 "168wjad5g0ka555hwsciwbj7fqx1c89q59hq1yxj8aiyp5kfcahx")))) (build-system qt-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -567,7 +567,7 @@ to the fix block above. ("qtsvg" ,qtsvg) ("volk" ,volk))) (arguments - `(#:tests? #f)) ; No tests + `(#:tests? #f)) ; no tests (synopsis "Software defined radio receiver") (description "Gqrx is a software defined radio (SDR) receiver implemented using GNU Radio and the Qt GUI toolkit.") @@ -577,14 +577,14 @@ using GNU Radio and the Qt GUI toolkit.") (define-public fldigi (package (name "fldigi") - (version "4.1.15") + (version "4.1.16") (source (origin (method url-fetch) (uri (string-append "http://www.w1hkj.com/files/fldigi/fldigi-" version ".tar.gz")) (sha256 - (base32 "1fzbcv2dgg6byb2l8m2d6i69yn0a44pq52mpmms756jdf6z622i6")))) + (base32 "1dfkvhs0ri5kbyskk730ik8ix5z138qys26b31p6kixd8jjkw3k4")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -613,14 +613,14 @@ hardware.") (define-public flrig (package (name "flrig") - (version "1.3.51") + (version "1.3.52") (source (origin (method url-fetch) (uri (string-append "http://www.w1hkj.com/files/flrig/flrig-" version ".tar.gz")) (sha256 - (base32 "0aq4x0ai9q08ypfhzfj2inc4z3q39zq1l6h9as1kil9yn4zbay61")))) + (base32 "18c154080vl25cy4l5amh96abm6kzm7mzld9h58pabc28yqq8zl8")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index 7700c26d06..cdea392fc7 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -76,7 +76,7 @@ used in the Raspberry Pi") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/RPi-Distro/raspi-gpio.git") + (url "https://github.com/RPi-Distro/raspi-gpio") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -98,7 +98,7 @@ used in the Raspberry Pi") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/librerpi/rpi-open-firmware.git") + (url "https://github.com/librerpi/rpi-open-firmware") (commit "6be45466e0be437a1b0b3512a86f3d9627217006"))) (file-name "rpi-open-firmware-checkout") (sha256 diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 0fc63e8675..30523deefe 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -87,7 +87,7 @@ to remotely control a user's Windows desktop.") (origin (method git-fetch) (uri (git-reference - (url "git://github.com/FreeRDP/FreeRDP.git") + (url "git://github.com/FreeRDP/FreeRDP") (commit version))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 73bf85241c..2753403834 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1349,7 +1349,7 @@ Prawn module.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/prawn-templates.git") + (url "https://github.com/prawnpdf/prawn-templates") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1411,7 +1411,7 @@ loader for the file type associated with a filename extension, and it augments (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/cjheath/treetop.git") + (url "https://github.com/cjheath/treetop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1474,7 +1474,7 @@ for performance optimizations in Ruby code.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/searls/gimme.git") + (url "https://github.com/searls/gimme") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -1535,7 +1535,7 @@ only what they care about.") (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/testdouble/standard.git") + (url "https://github.com/testdouble/standard") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -1582,17 +1582,16 @@ to save time in the following ways: (define-public ruby-chunky-png (package (name "ruby-chunky-png") - (version "1.3.12") + (version "1.3.14") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/wvanbergen/chunky_png.git") + (url "https://github.com/wvanbergen/chunky_png") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "0hn8ap7iib47qkqdp0awmxgma11z0lmk1ca3lp7c97ykhv7ij1zs")))) + (base32 "1m7y11ix38h5a2pj5v81qdmvqh980ql9hp62hk2dxwkwsa4nh22h")))) (build-system ruby-build-system) (arguments `(#:test-target "spec" @@ -1639,7 +1638,12 @@ pixel, depending on the hardware). Performance: ChunkyPNG is reasonably fast for Ruby standards, by only using integer math and a highly optimized saving routine. @item Interoperability with RMagick. -@end itemize") +@end itemize + +ChunkyPNG is vulnerable to decompression bombs and can run out of memory when +loading a specifically crafted PNG file. This is hard to fix in pure Ruby. +Deal with untrusted images in a separate process, e.g., by using @code{fork} +or a background processing library.") (home-page "https://github.com/wvanbergen/chunky_png/wiki") (license license:expat))) @@ -1701,7 +1705,7 @@ web pages.") (origin (method git-fetch) ;no test suite in the distributed gem (uri (git-reference - (url "https://github.com/asciidoctor/asciidoctor-pdf.git") + (url "https://github.com/asciidoctor/asciidoctor-pdf") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -6821,7 +6825,7 @@ inspired by the Sinatra microframework style of specifying actions: (origin (method git-fetch) ;no test suite in distributed gem (uri (git-reference - (url "https://github.com/rubocop-hq/rubocop-ast.git") + (url "https://github.com/rubocop-hq/rubocop-ast") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6865,7 +6869,7 @@ by RuboCop to deal with Ruby's Abstract Syntax Tree (AST), in particular: (origin (method git-fetch) ;no tests in distributed gem (uri (git-reference - (url "https://github.com/ruby/rexml.git") + (url "https://github.com/ruby/rexml") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6916,7 +6920,7 @@ better performance than @code{Regexp} and @code{String} methods from the (origin (method git-fetch) (uri (git-reference - (url "https://github.com/janosch-x/range_compressor.git") + (url "https://github.com/janosch-x/range_compressor") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6949,7 +6953,7 @@ following: @code{[1, 2, 3, 4, 6, 8, 9, 10]} into @code{[1..4, 6..6, 8..10]}.") (origin (method git-fetch) (uri (git-reference ;no test suite in distributed gem - (url "https://github.com/jaynetics/regexp_property_values.git") + (url "https://github.com/jaynetics/regexp_property_values") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -6980,7 +6984,7 @@ they match.") (origin (method git-fetch) ;bin/test missing from gem (uri (git-reference - (url "https://github.com/ammar/regexp_parser.git") + (url "https://github.com/ammar/regexp_parser") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -7053,7 +7057,7 @@ run.") (origin (method git-fetch) ;no tests in distributed gem (uri (git-reference - (url "https://github.com/rubocop-hq/rubocop.git") + (url "https://github.com/rubocop-hq/rubocop") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -10533,7 +10537,7 @@ custom checks. This gem provides a set of additional checks.") (source (origin (method git-fetch) ;no test in distributed gem archive (uri (git-reference - (url "https://github.com/yob/pdf-reader.git") + (url "https://github.com/yob/pdf-reader") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -10573,7 +10577,7 @@ access to the contents of a PDF file with a high degree of flexibility.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/pdf-inspector.git") + (url "https://github.com/prawnpdf/pdf-inspector") (commit commit))) (file-name (git-file-name name version)) (sha256 @@ -10636,7 +10640,7 @@ functionality from Prawn.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/prawnpdf/prawn.git") + (url "https://github.com/prawnpdf/prawn") (commit commit))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index fabb4e0380..4b66429335 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -75,11 +75,6 @@ (("rust-datetime" ,rust-datetime-0.4)) #:phases (modify-phases %standard-phases - (add-after 'configure 'dont-vendor-sources - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t)) ;; Ignoring failing tests. ;; Reported in https://github.com/ogham/exa/issues/318 (add-before 'check 'disable-failing-tests @@ -393,18 +388,12 @@ gitignore rules.") ("rust-lazy-static" ,rust-lazy-static-1) ("rust-regex" ,rust-regex-1) ("rust-serde-json" ,rust-serde-json-1) - ("rust-tempfile" ,rust-tempfile-3)) - #:phases - (modify-phases %standard-phases - (add-after 'configure 'unvendor-libraries-from-crates - (lambda* (#:key inputs #:allow-other-keys) - (let ((openssl (assoc-ref inputs "openssl"))) - (setenv "OPENSSL_DIR" openssl)) - #t))))) + ("rust-tempfile" ,rust-tempfile-3)))) (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs `(("libgit2" ,libgit2) ("openssl" ,openssl) - ("pkg-config" ,pkg-config) ("zlib" ,zlib))) (home-page "https://tokei.rs") (synopsis "Count code, quickly") diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index a6610bbf91..55981da463 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -178,14 +178,14 @@ external dependencies.") (define-public samba (package (name "samba") - (version "4.13.1") + (version "4.13.2") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 - (base32 "0pr805jmdl8gkm6g7gd78jrkmfwgybkvn2c949h51gcsbqxj2n14")) + (base32 "1d7j79c8aggwiv90y2q1yz63d9p5n4paq0fsbdvqpn05d8wn8r17")) (patches (search-patches "samba-fix-fcntl-hint-detection.patch")) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 1327d8b539..bd77b3e808 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -398,7 +398,7 @@ implementation techniques and as an expository tool.") (define-public racket (package (name "racket") - (version "7.8") ;; Note: Remember to also update racket-minimal! + (version "7.9") ; note: remember to also update racket-minimal! (source (origin (method url-fetch) (uri (list (string-append "http://mirror.racket-lang.org/installers/" @@ -408,7 +408,7 @@ implementation techniques and as an expository tool.") version "/racket-" version "-src.tgz"))) (sha256 (base32 - "19z3dayybcra277s4gk2mppalwawd93f2b16xyrb6d7rbbfz7j9j")) + "0gmp2ahmfd97nn9bwpfx9lznjmjkd042slnrrbdmyh59cqh98y2m")) (patches (search-patches "racket-store-checksum-override.patch")))) (build-system gnu-build-system) @@ -540,7 +540,7 @@ of libraries.") version "/racket-minimal-" version "-src.tgz"))) (sha256 (base32 - "0bbglf9vfacpm2hn3lskhvc8cpg6z088fbnzpqsn17z8qdk8yvb3")) + "0xvnd7afx058sg7j51bmbikqgn4sl0246nkhr8zlqcrbr3nqi6p4")) (patches (search-patches "racket-store-checksum-override.patch")))) (synopsis "Racket without bundled packages such as Dr. Racket") diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index 6519ce7a7f..f699824a05 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,16 +49,14 @@ (define-public scribus (package (name "scribus") - (version "1.5.5") + (version "1.5.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/scribus/scribus-devel/" version "/scribus-" version ".tar.xz")) - (patches (search-patches "scribus-1.5.5-poppler-0.86-build-fix.patch")) (sha256 - (base32 - "0w9zzsiaq3f7vpxybk01c9z2b4qqg67mzpyfb2gjchz8dhdb423r")))) + (base32 "1axp8ffnx3nh6k4s5mfa9gbx8d0yql2azgcampg41ylwafapc9fl")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target @@ -99,7 +98,7 @@ ("openssl" ,openssl) ("podofo" ,podofo) ("poppler" ,poppler) - ("python" ,python-2) ;need Python library + ("python" ,python) ; need Python library ("qtbase" ,qtbase) ("qtdeclarative" ,qtdeclarative) ("zlib" ,zlib))) diff --git a/gnu/packages/sdcc.scm b/gnu/packages/sdcc.scm index 6d05470101..aad2cf9e62 100644 --- a/gnu/packages/sdcc.scm +++ b/gnu/packages/sdcc.scm @@ -18,6 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages sdcc) + #:use-module (gnu packages) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages flex) @@ -39,7 +40,14 @@ "/" version "/sdcc-src-" version ".tar.bz2")) (sha256 (base32 - "13llvx0j3v5qa7qd4fh7nix4j3alpd3ccprxvx163c4q8q4lfkc5")))) + "13llvx0j3v5qa7qd4fh7nix4j3alpd3ccprxvx163c4q8q4lfkc5")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove non-free source files + (delete-file-recursively "device/non-free") + #t)) + (patches (search-patches "sdcc-disable-non-free-code.patch")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm index cf6bf18373..45610c4801 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Raphaël Mélotte <raphael.melotte@mind.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (gnu packages dns) #:use-module (gnu packages gettext) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) @@ -102,7 +104,7 @@ readers and is needed to communicate with such devices through the (define-public eid-mw (package (name "eid-mw") - (version "4.4.27") + (version "5.0.8") (source (origin (method git-fetch) @@ -111,13 +113,15 @@ readers and is needed to communicate with such devices through the (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17lw8iwp7h5cs3db80sysr84ffi333cf2vrhncs9l6hy6glfl2v1")))) + (base32 "1ckini00iz9w96n9hpkx6w2ivpfkd4yyxyhnmsl9n0k8x4j6jg5a")))) (build-system glib-or-gtk-build-system) (native-inputs `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) ("automake" ,automake) ("gettext" ,gettext-minimal) ("libtool" ,libtool) + ("libassuan" ,libassuan) ("pkg-config" ,pkg-config) ("perl" ,perl))) (inputs @@ -132,14 +136,29 @@ readers and is needed to communicate with such devices through the (arguments `(#:phases (modify-phases %standard-phases - (add-after 'unpack 'bootstrap + (replace 'bootstrap (lambda _ ;; configure.ac relies on ‘git --describe’ to get the version. ;; Patch it to just return the real version number directly. (substitute* "scripts/build-aux/genver.sh" (("/bin/sh") (which "sh")) (("^(GITDESC=).*" _ match) (string-append match ,version "\n"))) - (invoke "sh" "./bootstrap.sh")))))) + (invoke "sh" "./bootstrap.sh"))) + (add-after 'unpack 'make-reproducible + (lambda _ + (substitute* "scripts/mac/create-vers.sh" + (("NOW=.*") + "NOW=1970-01-01\n")) + #t)) + ;; Remove failing test that was removed upstream after version 5.0.8. + ;; See: https://github.com/Fedict/eid-mw/commit/3d1187b1b61118b9ae97607903d3d2fc0bad7518 + (add-before 'check 'remove-failing-test + (lambda _ + (substitute* "tests/unit/Makefile.am" + (("sign_state ordering cardcom_common") + "sign_state ordering #cardcom_common")) + #t)) + ))) (synopsis "Belgian eID Middleware") (description "The Belgian eID Middleware is required to authenticate with online services using the Belgian electronic identity card.") diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index cd10dd3872..a5f934854b 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -814,14 +814,14 @@ Shell (pdksh).") (define-public oil (package (name "oil") - (version "0.8.3") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "https://www.oilshell.org/download/oil-" version ".tar.gz")) (sha256 - (base32 "14j0qjh92b16xxaj0f0k71y8wkbz6nmgx0yin2q7xrzqk8hzqgj6")))) + (base32 "1gcpf5l6bdjw150ds3j2iws739khxylmz67fx7k1rjfpfij2004l")))) (build-system gnu-build-system) (arguments `(#:strip-binaries? #f ; strip breaks the binary diff --git a/gnu/packages/shellutils.scm b/gnu/packages/shellutils.scm index b1db32a3dc..181a640475 100644 --- a/gnu/packages/shellutils.scm +++ b/gnu/packages/shellutils.scm @@ -278,7 +278,7 @@ below the current cursor position, scrolling the screen if necessary.") (define-public hstr (package (name "hstr") - (version "2.2") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -287,7 +287,7 @@ below the current cursor position, scrolling the screen if necessary.") (file-name (git-file-name name version)) (sha256 (base32 - "07fkilqlkpygvf9kvxyvl58g3lfq0bwwdp3wczy4hk8qlbhmgihn")))) + "1chmfdi1dwg3sarzd01nqa82g65q7wdr6hrnj96l75vikwsg986y")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm index a95160c1c1..45efd5c472 100644 --- a/gnu/packages/simulation.scm +++ b/gnu/packages/simulation.scm @@ -684,17 +684,13 @@ user interface to the FEniCS core components and external libraries.") (with-directory-excursion "test" ;; Note: The test test_snes_set_from_options() in the file ;; unit/nls/test_PETScSNES_solver.py fails and is ignored. - (and (invoke "py.test" "unit" "--ignore" - "unit/nls/test_PETScSNES_solver.py") - (invoke "mpirun" "-np" "3" "python" "-B" "-m" - "pytest" "unit" "--ignore" - "unit/nls/test_PETScSNES_solver.py"))) - (with-directory-excursion "demo" - ;; Check demos. - (invoke "python" "generate-demo-files.py") - (and (invoke "python" "-m" "pytest" "-v" "test.py") - (invoke "python" "-m" "pytest" "-v" "test.py" - "--mpiexec=mpiexec" "--num-proc=3"))) + ;; Limit the number of jobs to 3 as 500 MiB of memory is used + ;; per process. + (invoke "mpirun" "-np" (number->string + (min 3 (parallel-job-count))) + "python" "-B" "-m" + "pytest" "unit" "--ignore" + "unit/nls/test_PETScSNES_solver.py")) #t)) (add-after 'install 'install-demo-files (lambda* (#:key outputs #:allow-other-keys) diff --git a/gnu/packages/stb.scm b/gnu/packages/stb.scm index 9cb2ae10b6..094ece536d 100644 --- a/gnu/packages/stb.scm +++ b/gnu/packages/stb.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,8 +27,8 @@ (define stb ;; stb is a collection of libraries developed within the same repository. ;; When updating this, remember to change versions below as appropriate. - (let ((commit "2c2908f50515dcd939f24be261c3ccbcd277bb49") - (revision "1")) + (let ((commit "b42009b3b9d4ca35bc703f5310eedc74f584be58") + (revision "2")) (package (name "stb") (home-page "https://github.com/nothings/stb") @@ -39,7 +40,7 @@ (commit commit))) (sha256 (base32 - "1z753rscqc4clp0rd57bw68i60kz694y1z52bwv6slzmkgds1cki")) + "1gmcjhmj62mfdscrsg2hv4j4j9v447y8zj3rbrm7mqn94cx73z1i")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -92,23 +93,29 @@ the C programming language.") ;; converted to macros as outlined in <https://bugs.gnu.org/32155>. (define-public stb-image (make-stb-header-package - "stb-image" "2.22" + "stb-image" "2.26" "stb-image is a small and self-contained library for image loading or decoding from file or memory. A variety of formats are supported.")) (define-public stb-image-write (make-stb-header-package - "stb-image-write" "1.13" + "stb-image-write" "1.15" "stb-image-write is a small library for writing image files to the C@tie{}@code{stdio} interface.")) +(define-public stb-rect-pack + (make-stb-header-package + "stb-rect-pack" "1.00" + "stb-rect-pack is a small rectangle packing library useful for, e.g., packing +rectangular textures into an atlas. It does not do rotation.")) + (define-public stb-sprintf (make-stb-header-package - "stb-sprintf" "1.06" + "stb-sprintf" "1.09" "stb-sprintf implements fast @code{sprintf}, @code{snprintf} for C/C++.")) (define-public stb-truetype (make-stb-header-package - "stb-truetype" "1.22" + "stb-truetype" "1.24" "stb-truetype is a library for parsing, decoding, and rasterizing characters from TrueType fonts.")) diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm index 9b41bb240b..48944d3b72 100644 --- a/gnu/packages/storage.scm +++ b/gnu/packages/storage.scm @@ -55,14 +55,14 @@ (define-public ceph (package (name "ceph") - (version "14.2.11") + (version "14.2.14") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "02mbinm8rk16cwm0x4winmd4488xznkzkyzycxkwlib26yd2xsnz")) + "10ma8qimgspz1q3lqb4yl990l9xa87iwd0r4dxl5xg89w6j7qwix")) (patches (search-patches "ceph-disable-cpu-optimizations.patch")) (modules '((guix build utils))) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 434e236054..7e479a0d39 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -195,7 +195,7 @@ Protocol.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/syncthing/syncthing-gtk.git") + (url "https://github.com/syncthing/syncthing-gtk") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 0860189d48..f0bfaad12d 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -756,14 +756,14 @@ editors.") (define-public texmacs (package (name "texmacs") - (version "1.99.13") + (version "1.99.15") (source (origin (method url-fetch) (uri (string-append "https://www.texmacs.org/Download/ftp/tmftp/" "source/TeXmacs-" version "-src.tar.gz")) (sha256 - (base32 "1d590yyanh2ar88pd0ns4mf616bq1lq4cwg93m863anhir5irb82")))) + (base32 "09r88yi2k1vi9pmszw97zblw8bs79h2d5ivb6xk652zyrls2lkvd")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -773,7 +773,8 @@ editors.") ("guile" ,guile-1.8) ("perl" ,perl) ("python" ,python-wrapper) - ("qt" ,qtbase))) + ("qt" ,qtbase) + ("qtsvg" ,qtsvg))) (arguments `(#:tests? #f ; no check target #:phases diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 11613cb703..34da04d0d8 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -1126,14 +1126,13 @@ such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.") (define-public python-pandocfilters (package (name "python-pandocfilters") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) (uri (pypi-uri "pandocfilters" version)) (sha256 - (base32 - "1a8d9b7s48gmq9zj0pmbyv2sivn5i7m6mybgpkk4jm5vd7hp1pdk")))) + (base32 "1sq675dg4barb5949xxz4d5gk2ly524hi1p1xgwb3d1l0nsznqxw")))) (build-system python-build-system) (home-page "https://github.com/jgm/pandocfilters") (synopsis "Python module for writing Pandoc filters") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index d6b43d8d8f..00b0bf6ddb 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -334,25 +334,33 @@ required structures.") #:disallowed-references ,(list (canonical-package perl)) #:phases (modify-phases %standard-phases - ,@(if (%current-target-system) - '((add-before - 'configure 'set-cross-compile - (lambda* (#:key target outputs #:allow-other-keys) - (setenv "CROSS_COMPILE" (string-append target "-")) - (setenv "CONFIGURE_TARGET_ARCH" - (cond - ((string-prefix? "i586" target) - "hurd-x86") - ((string-prefix? "i686" target) - "linux-x86") - ((string-prefix? "x86_64" target) - "linux-x86_64") - ((string-prefix? "arm" target) - "linux-armv4") - ((string-prefix? "aarch64" target) - "linux-aarch64"))) - #t))) - '()) + ,@(if (%current-target-system) + '((add-before + 'configure 'set-cross-compile + (lambda* (#:key target outputs #:allow-other-keys) + (setenv "CROSS_COMPILE" (string-append target "-")) + (setenv "CONFIGURE_TARGET_ARCH" + (cond + ((string-prefix? "i586" target) + "hurd-x86") + ((string-prefix? "i686" target) + "linux-x86") + ((string-prefix? "x86_64" target) + "linux-x86_64") + ((string-prefix? "mips64el" target) + "linux-mips64") + ((string-prefix? "arm" target) + "linux-armv4") + ((string-prefix? "aarch64" target) + "linux-aarch64") + ((string-prefix? "powerpc64le" target) + "linux-ppc64le") + ((string-prefix? "powerpc64" target) + "linux-ppc64") + ((string-prefix? "powerpc" target) + "linux-ppc"))) + #t))) + '()) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -363,8 +371,8 @@ required structures.") (string-append (assoc-ref %build-inputs "coreutils") "/bin/env"))) (invoke ,@(if (%current-target-system) - '("./Configure") - '("./config")) + '("./Configure") + '("./config")) "shared" ;build shared libraries "--libdir=lib" @@ -376,9 +384,9 @@ required structures.") (string-append "--prefix=" out) (string-append "-Wl,-rpath," lib) - ,@(if (%current-target-system) - '((getenv "CONFIGURE_TARGET_ARCH")) - '()))))) + ,@(if (%current-target-system) + '((getenv "CONFIGURE_TARGET_ARCH")) + '()))))) (add-after 'install 'move-static-libraries (lambda* (#:key outputs #:allow-other-keys) ;; Move static libraries to the "static" output. diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index de55c0b188..95a31f80fd 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -145,7 +145,7 @@ windows.") (define-public python-libtmux (package (name "python-libtmux") - (version "0.8.3") + (version "0.8.5") (source (origin (method git-fetch) @@ -155,7 +155,7 @@ windows.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "18dqqd3jmgq3jb1l3xpgywlh4x82mzjxch61gwnlhfaqx5mzvjph")))) + (base32 "1vrd99kl2gsk49mvbp6k7l1k7r96vf1fczsqclb62yd4hdpp7zaa")))) (build-system python-build-system) (propagated-inputs `(("procps" ,procps))) ;tests need top @@ -171,6 +171,8 @@ windows.") (setenv "PYTHONPATH" (string-append (getcwd) "/build/lib:" (getenv "PYTHONPATH"))) + ;; Fix <https://github.com/tmux-python/libtmux/issues/265>. + (setenv "LANG" "en_US.utf8") ;; Skip tests that I suspect fail because of a change ;; in behavior in tmux 3 from tmux 2 ;; https://github.com/tmux-python/libtmux/issues/281 diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 9bde4a4c23..f5f5fe7374 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -54,14 +54,14 @@ (define-public tor (package (name "tor") - (version "0.4.4.5") + (version "0.4.4.6") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "09lr6l98qmc69pzsi8r02z86v969dbfwjrwphfm3npknzq5a0p54")))) + "1p0zpqmbskygx0wmiijhprg8r45n2wqbbjl7kv4gbb83b0alq5az")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9060bdc06a..1842528ff6 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -93,6 +93,7 @@ #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages readline) @@ -390,6 +391,16 @@ as well as the classic centralized workflow.") (install-file "contrib/subtree/git-subtree.1" (string-append subtree "/share/man/man1")) #t))) + (add-after 'install 'restore-sample-hooks-shebang + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/git-core/templates/hooks"))) + (for-each (lambda (file) + (format #t "restoring shebang on `~a'~%" file) + (substitute* file + (("^#!.*/bin/sh") "#!/bin/sh"))) + (find-files dir ".*")) + #t))) (add-after 'install 'split (lambda* (#:key inputs outputs #:allow-other-keys) ;; Split the binaries to the various outputs. @@ -1441,7 +1452,7 @@ control to Git repositories.") (define-public pre-commit (package (name "pre-commit") - (version "2.7.1") + (version "2.8.1") (source (origin ;; No tests in the PyPI tarball. @@ -1451,7 +1462,7 @@ control to Git repositories.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0n7qby5a4yz3s02nqcp5js6jg9wrd0x7msblxwb1883ds4b2b71a")))) + (base32 "0b3ks6viccq3n4p8i8zgfd40vp1k5nkhmmlz7p4nxcdizw8zxgn8")))) (build-system python-build-system) (arguments `(#:phases @@ -1492,6 +1503,12 @@ control to Git repositories.") " and not test_additional_rust_lib_dependencies_installed" " and not test_local_rust_additional_dependencies" " and not test_rust_hook" + ;; Disable dotnet tests. + " and not test_dotnet_hook" + ;; Disable nodejs tests. + " and not test_unhealthy_if_system_node_goes_missing" + " and not test_installs_without_links_outside_env" + " and not test_healthy_system_node" ;; Disable python2 test. " and not test_switch_language_versions_doesnt_clobber" ;; These tests try to open a network socket. @@ -1534,8 +1551,10 @@ control to Git repositories.") #t)))))) (native-inputs `(("git" ,git-minimal) - ("python-pytest" ,python-pytest))) - (inputs + ("python-pytest" ,python-pytest) + ("python-re-assert" ,python-re-assert))) + ;; Propagate because pre-commit is also used as a module. + (propagated-inputs `(("python-cfgv" ,python-cfgv) ("python-identify" ,python-identify) ("python-nodeenv" ,python-nodeenv) @@ -2292,6 +2311,49 @@ collections efficiently. Mirrors decide to clone and update repositories based on a manifest file published by servers.") (license license:gpl3+))) +(define-public b4 + (package + (name "b4") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.kernel.org/pub/scm/utils/b4/b4.git") + (commit (string-append "v" version)))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1w11fiyspyncz2m7njrjfylgzch4azi7560ngd8i733wvjjhg3mj")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; No tests. + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-manpages + (lambda* (#:key outputs #:allow-other-keys) + (let ((man (string-append (assoc-ref outputs "out") + "/man/man5/"))) + (mkdir-p man) + (for-each (lambda (file) (install-file file man)) + (find-files "man" "\\.[1-8]$"))) + #t))))) + (inputs + `(("python-requests" ,python-requests))) + (home-page "https://git.kernel.org/pub/scm/utils/b4/b4.git") + (synopsis "Tool for working with patches in public-inbox archives") + (description + "The @code{b4} command is designed to make it easier to participate in +patch-based workflows for projects that have public-inbox archives. + +Features include: +@itemize +@item downloading a thread's mbox given a message ID +@item processing an mbox so that is ready to be fed to @code{git-am} +@item creating templated replies for processed patches and pull requests +@item submitting cryptographic attestation for patches. +@end itemize") + (license license:gpl2+))) + (define-public git-annex-remote-rclone (package (name "git-annex-remote-rclone") diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 472a5eb38c..94451a3427 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> +;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; ;;; This file is part of GNU Guix. ;;; @@ -285,7 +286,7 @@ video and audio streams from a DVD.") (method git-fetch) (uri (git-reference - (url "https://github.com/OpenVisualCloud/SVT-HEVC.git") + (url "https://github.com/OpenVisualCloud/SVT-HEVC") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -313,7 +314,7 @@ efficiency.") (method git-fetch) (uri (git-reference - (url "https://github.com/Intel-Media-SDK/MediaSDK.git") + (url "https://github.com/Intel-Media-SDK/MediaSDK") (commit (string-append "intel-" name "-" version)))) (file-name (git-file-name name version)) (sha256 @@ -489,7 +490,7 @@ and mmsh protocols.") (method git-fetch) (uri (git-reference - (url "https://github.com/farindk/libvideogfx.git") + (url "https://github.com/farindk/libvideogfx") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -533,7 +534,7 @@ applications by providing high-level classes for commonly required tasks.") (method git-fetch) (uri (git-reference - (url "https://github.com/strukturag/libde265.git") + (url "https://github.com/strukturag/libde265") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 @@ -574,7 +575,7 @@ other software.") (method git-fetch) (uri (git-reference - (url "https://github.com/libts/tslib.git") + (url "https://github.com/libts/tslib") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1006,7 +1007,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public straw-viewer (package (name "straw-viewer") - (version "0.1.0") + (version "0.1.1") (source (origin (method git-fetch) @@ -1015,7 +1016,7 @@ H.264 (MPEG-4 AVC) video streams.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0786bppk8dhp5p2284qp7pm3b9vwh1cm4n03hiqwd2vvgv41aypy")))) + (base32 "0idp1ayqghi5bg83v9qmvzz9wj05flwrp1fxb4kqa6vwxmprvhyk")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -1227,6 +1228,8 @@ ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.") (base32 "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj")))) (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--disable-static"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("freeglut" ,freeglut) @@ -2185,14 +2188,14 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.11.01.1") + (version "2020.11.21.1") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "06lhba4b9bm6f5yqrb5xvdr0l5shwd95djf9nlpg86prr5xihqks")))) + "0a9livib328z5j3kfndxys2193dvfs4hh38krx0idg0k26xp7cfl")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2344,7 +2347,7 @@ other site that youtube-dl supports.") (define-public you-get (package (name "you-get") - (version "0.4.1456") + (version "0.4.1475") (source (origin (method git-fetch) (uri (git-reference @@ -2353,7 +2356,7 @@ other site that youtube-dl supports.") (file-name (git-file-name name version)) (sha256 (base32 - "0n6h5qkhjwsxy8rf6n4i8hd8dah38hbvchh9272c53gydgp9lp29")))) + "1hsa99fgx1zhzkf3n0hlbinckvipd54vhs6y4jkq0rd9r6yc1h7f")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos @@ -2478,7 +2481,8 @@ Both command-line and GTK2 interface are available.") "1zxfnw1xbghcj7b3zz5djndv6gwssxda19cz1lrlqrkg8577r7kd")))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--disable-bdjava-jar") + `(#:configure-flags '("--disable-bdjava-jar" + "--disable-static") #:phases (modify-phases %standard-phases (add-after 'unpack 'refer-to-libxml2-in-.pc-file @@ -2649,7 +2653,7 @@ for use with HTML5 video.") (define-public avidemux (package (name "avidemux") - (version "2.7.4") + (version "2.7.6") (source (origin (method url-fetch) (uri (string-append @@ -2657,7 +2661,7 @@ for use with HTML5 video.") "avidemux_" version ".tar.gz")) (sha256 (base32 - "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x")) + "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s")) (patches (search-patches "avidemux-install-to-lib.patch")))) (build-system cmake-build-system) (native-inputs @@ -2675,6 +2679,7 @@ for use with HTML5 video.") ("glu" ,glu) ("jack" ,jack-1) ("lame" ,lame) + ("libaom" ,libaom) ("libva" ,libva) ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) @@ -2689,7 +2694,7 @@ for use with HTML5 video.") #:phases ;; Make sure files inside the included ffmpeg tarball are ;; patch-shebanged. - (let ((ffmpeg "ffmpeg-4.1.4")) + (let ((ffmpeg "ffmpeg-4.2.3")) (modify-phases %standard-phases (add-before 'patch-source-shebangs 'unpack-ffmpeg (lambda _ @@ -2987,11 +2992,40 @@ tools, XML authoring components, and an extensible plug-in based API.") (base32 "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr")))) (build-system gnu-build-system) + ;; Separate graphical tools in order to save almost 1 GiB on the closure + ;; for the common case. + (outputs '("out" "gui")) (arguments '(#:configure-flags - (list (string-append "--with-udevdir=" + (list "--disable-static" + (string-append "--with-udevdir=" (assoc-ref %outputs "out") - "/lib/udev")))) + "/lib/udev")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'split + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui"))) + (mkdir-p (string-append gui "/bin")) + (mkdir-p (string-append gui "/share/man/man1")) + (mkdir-p (string-append gui "/share/applications")) + (for-each + (lambda (prog) + (for-each + (lambda (file) + (rename-file (string-append out file) + (string-append gui file))) + (list + (string-append "/bin/" prog) + (string-append "/share/man/man1/" prog ".1") + (string-append "/share/applications/" prog ".desktop")))) + '("qv4l2" "qvidcap")) + (copy-recursively (string-append out "/share/icons") + (string-append gui "/share/icons")) + (delete-file-recursively (string-append out "/share/icons")) + (rmdir (string-append out "/share/applications")) + #t)))))) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config))) @@ -3765,7 +3799,7 @@ iTunes-style metadata.") (define-public livemedia-utils (package (name "livemedia-utils") - (version "2019.05.29") + (version "2020.11.19") (source (origin (method url-fetch) (uri (string-append @@ -3773,11 +3807,12 @@ iTunes-style metadata.") version ".tar.gz")) (sha256 (base32 - "08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my")))) + "16w6yxdbmjdhvffnrb752dn4llf3l0wb00dgdkyia0vqsv2qqyn7")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; no tests - #:make-flags (list "CC=gcc" + `(#:tests? #f ; no tests + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "CXX=" ,(cxx-for-target)) (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib") (string-append "PREFIX=" @@ -3792,6 +3827,8 @@ iTunes-style metadata.") (lambda _ (invoke "./genMakefiles" "linux-with-shared-libraries")))))) + (inputs + `(("openssl" ,openssl))) (home-page "http://www.live555.com/liveMedia/") (synopsis "Set of C++ libraries for multimedia streaming") (description "This code forms a set of C++ libraries for multimedia diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index c574b26f4e..cda1e144ec 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -70,7 +70,7 @@ (define-public vim (package (name "vim") - (version "8.2.1947") + (version "8.2.2017") (source (origin (method git-fetch) (uri (git-reference @@ -79,7 +79,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1cl83phzsy1mqsgbqyds10644jcfkwk2pn6vx6s6l7vw52hh5nkc")))) + "0ad0c4wv8zf28wns06k82c19rs63ilsphnglajhgw5j2a1aqplyn")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -110,7 +110,7 @@ ;; Make sure the TERM environment variable is set for the tests (setenv "TERM" "xterm") #t)) - (add-before 'check 'skip-failing-tests + (add-before 'check 'skip-or-fix-failing-tests (lambda _ ;; This test assumes that PID 1 is run as root and that the user ;; running the test suite does not have permission to kill(1, 0) @@ -121,16 +121,36 @@ (substitute* "src/testdir/test_swap.vim" (("if !IsRoot\\(\\)") "if 0")) - ;; These tests check how the terminal looks after executing some - ;; actions. The path of the bash binary is shown, which results in - ;; a difference being detected. Patching the expected result is - ;; non-trivial due to the special format used, so skip the test. - (substitute* "src/testdir/test_terminal.vim" - ((".*Test_terminal_postponed_scrollback.*" line) - (string-append line "return\n"))) + ;; These tests compares output against a golden ‘…/|b|i|n|/|s|h…’ + ;; literal. We need to match that and substitute a similarly + ;; ‘spliced’ path to ‘sh’ in the store, truncated to the last + ;; 44 (spliced: 88) or so characters. + ;; Two of the tests we simply skip instead of patching the screen dump. (substitute* "src/testdir/test_popupwin.vim" - ((".*Test_popup_drag_termwin.*" line) - (string-append line "return\n"))) + ((".*Test_popupwin_term_0[1|2].*") "")) + ;; We replace the external program call (!) with a scroll-back (<) + ;; symbol and blindly fix some other differences based on error output. + (let ((splice (lambda (s separator) + (string-join (map string (string->list s)) + separator)))) + (substitute* "src/testdir/dumps/Test_terminal_from_cmd.dump" + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 44) "|")) + (("^\\|!") "|<") + (("@37") "")) + (substitute* '("src/testdir/dumps/Test_terminal_scrollback_1.dump" + "src/testdir/dumps/Test_terminal_scrollback_2.dump") + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 61) "|")) + (("^\\|!") "|<") + ((" @55") " @1")) + (substitute* '("src/testdir/dumps/Test_terminal_scrollback_3.dump" + "src/testdir/dumps/Test_popupwin_term_03.dump" + "src/testdir/dumps/Test_popupwin_term_04.dump") + (((splice "/bin/sh" "\\|")) + (splice (string-take-right (which "sh") 62) "|")) + (("^\\|!") "|<") + (("\\]\\| @56") "]| @1"))) #t))))) (inputs `(("gawk" ,gawk) @@ -800,7 +820,7 @@ through its msgpack-rpc API.") (define-public vim-guix-vim (package (name "vim-guix-vim") - (version "0.1") + (version "0.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -809,7 +829,7 @@ through its msgpack-rpc API.") (file-name (git-file-name name version)) (sha256 (base32 - "1f8h8m96fqh3f9hy87spgh9kdqzyxl11n9s3rywvyq5xhn489bnk")))) + "10bfy0dgwizxr56b4272b7sqajpr6lnz332pzx055dis2zzjap8z")))) (build-system copy-build-system) (arguments '(#:install-plan diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index b20fb70ecb..ed09f3dcd2 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -86,6 +87,7 @@ #:use-module (gnu packages polkit) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-check) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) @@ -177,6 +179,13 @@ '("include") input-directories) #t))) + (add-after 'unpack 'extend-test-time-outs + (lambda _ + ;; These tests can time out on heavily-loaded and/or slow storage. + (substitute* (cons* "tests/qemu-iotests/common.qemu" + (find-files "tests/qemu-iotests" "^[0-9]+$")) + (("QEMU_COMM_TIMEOUT=[0-9]+" match) + (string-append match "9"))))) (add-after 'unpack 'disable-unusable-tests (lambda _ (substitute* "tests/Makefile.include" @@ -1286,14 +1295,14 @@ domains, their live performance and resource utilization statistics.") (define-public criu (package (name "criu") - (version "3.14") + (version "3.15") (source (origin (method url-fetch) (uri (string-append "https://download.openvz.org/criu/criu-" version ".tar.bz2")) (sha256 (base32 - "1jrr3v99g18gc0hriz0avq6ccdvyya0j6wwz888sdsc4icc30gzn")))) + "09d0j24x0cyc7wkgi7cnxqgfjk7kbdlm79zxpj8d356sa3rw2z24")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -1374,7 +1383,8 @@ domains, their live performance and resource utilization statistics.") ("libcap" ,libcap) ("libnet" ,libnet) ("libnl" ,libnl) - ("libbsd" ,libbsd))) + ("libbsd" ,libbsd) + ("nftables" ,nftables))) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl) @@ -1770,7 +1780,7 @@ DOS or Microsoft Windows.") (define-public xen (package (name "xen") - (version "4.13.0") + (version "4.14.0") (source (origin (method git-fetch) (uri (git-reference @@ -1779,7 +1789,7 @@ DOS or Microsoft Windows.") (file-name (git-file-name name version)) (sha256 (base32 - "0py50n995gv909i0d1lfdcj9wcp5g1d5z6m2291jqqlfyany138g")))) + "1s06zhzmkm7wylrxhas5v0sg2ackmmyw01gvv67r9idml55i0dh5")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -1893,13 +1903,14 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc")) new-search-path ":"))) (setenv env-name new-env-value))) environment-variable-names)) - (setenv "CROSS_CPATH" (getenv "CPATH")) + (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) + (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH")) (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH")) (filter-environment! cross? - '("CROSS_CPATH" + '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH" "CROSS_LIBRARY_PATH")) (filter-environment! (lambda (e) (not (cross? e))) - '("CPATH" + '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH")) ;; Guix tries to be helpful and automatically adds ;; mini-os-git-checkout/include to the include path, @@ -1908,7 +1919,7 @@ override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc")) (not (string-contains e "mini-os-git-checkout"))) - '("CPATH" + '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" "LIBRARY_PATH")) (setenv "EFI_VENDOR" "guix") #t)) @@ -2038,3 +2049,48 @@ administrators and developers in managing the database.") libosinfo library. It provides information about guest operating systems for use with virtualization provisioning tools") (license license:lgpl2.0+))) + +(define-public python-transient + (package + (name "python-transient") + (version "0.10") + (source + (origin + (method url-fetch) + (uri (pypi-uri "transient" version)) + (sha256 + (base32 + "1740l50483fcq9748g69nkk28s2x69n4hh1l7n8f4s7p6lq1kqjy")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ; Requires behave + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-dependencies + (lambda _ + (substitute* "setup.py" + (("==") + ">=")) + #t))))) + (propagated-inputs + `(("python-beautifultable" ,python-beautifultable) + ("python-click" ,python-click) + ("python-importlib-resources" + ,python-importlib-resources) + ("python-lark-parser" ,python-lark-parser) + ("python-marshmallow" ,python-marshmallow) + ("python-progressbar2" ,python-progressbar2) + ("python-requests" ,python-requests) + ("python-toml" ,python-toml))) + (native-inputs + `(("python-black" ,python-black) + ("python-mypy" ,python-mypy) + ("python-pyhamcrest" ,python-pyhamcrest) + ("python-twine" ,python-twine))) + (home-page + "https://github.com/ALSchwalm/transient") + (synopsis + "QEMU Wrapper written in Python") + (description + "@code{transient} is a wrapper for QEMU allowing the creation of virtual +machines with shared folder, ssh, and disk creation support.") + (license license:expat))) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index e43f467eca..39a9825893 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> -;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com> +;;; Copyright © 2018, 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> ;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com> @@ -131,10 +131,10 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.") (home-page "https://www.unix-ag.uni-kl.de/~massar/vpnc/"))) (define-public vpnc-scripts - (let ((commit "1000e0f6dd7d6bff163169a46359211c1fc3a6d2")) + (let ((commit "3885f8bbc4ae03fd6da0ada6de12f7223a59595c")) (package (name "vpnc-scripts") - (version (string-append "20190116." (string-take commit 7))) + (version (string-append "20200925." (string-take commit 7))) (source (origin (method git-fetch) (uri @@ -144,7 +144,7 @@ Only \"Universal TUN/TAP device driver support\" is needed in the kernel.") (file-name (git-file-name name version)) (sha256 (base32 - "1g41yarz2bl0f73kbjqnywr485ghanbp7nmspklfb0n07yp0z6ak")))) + "1pmi4n58q81pmn9arvfixhvv6vkkf3rpwac3hwnwyl882q5q0ccx")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-3.0) ; for the wrapper scripts ("coreutils" ,coreutils) @@ -505,7 +505,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers (define-public wireguard-linux-compat (package (name "wireguard-linux-compat") - (version "1.0.20200623") + (version "1.0.20201112") (source (origin (method url-fetch) (uri (string-append "https://git.zx2c4.com/wireguard-linux-compat/" @@ -513,12 +513,13 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers ".tar.xz")) (sha256 (base32 - "0iclixsqfckaz6kz6a4lhzdary3xhfy1d0pz0pgrwy8m8mr3f28k")))) + "1qcpg1rcmy4h529a0spjm50qgxjgjy20j29fpbrqsv5xq3qfgsl9")))) (build-system linux-module-build-system) (outputs '("out" "kernel-patch")) (arguments - `(#:tests? #f ; No test suite + `(#:linux ,linux-libre-5.4 ; mustn't have WG built-in + #:tests? #f ; no test suite #:modules ((guix build linux-module-build-system) (guix build utils) (ice-9 popen) @@ -538,7 +539,7 @@ The peer-to-peer VPN implements a Layer 2 (Ethernet) network between the peers (call-with-output-file "wireguard.patch" (lambda (port) (format port "~a" str)))) - #t)) + #t)) (add-after 'install 'install-patch (lambda* (#:key outputs #:allow-other-keys) (install-file "wireguard.patch" diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index eb49a8fdea..51af66ef54 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -46,6 +47,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages fltk) #:use-module (gnu packages fontutils) + #:use-module (gnu packages fonts) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) @@ -60,6 +62,7 @@ #:use-module (gnu packages lisp) #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lua) + #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -341,6 +344,129 @@ access.") (properties `((lint-hidden-cve . ("CVE-2016-9179")))) (license license:gpl2))) +(define-public kristall + ;; Fixes to the build system applied after the latest tag + ;; Use tagged release when updating + (let ((commit "204b08a9303e75cd8d4c252b0554935062766f86") + (revision "1")) + (package + (name "kristall") + (version (string-append "0.3-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MasterQ32/kristall") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mymq0dh6r0829x74j0jkw8hw46amqwbznlf1b4ra6w77h9yz3lj")) + (modules '((srfi srfi-1) + (ice-9 ftw) + (guix build utils))) + (snippet + '(let ((preserved-lib-files '("luis-l-gist"))) + (with-directory-excursion "lib" + (for-each + (lambda (directory) + (simple-format #t "deleting: ~A\n" directory) + (delete-file-recursively directory)) + (lset-difference string=? + (scandir ".") + (cons* "." ".." preserved-lib-files)))) + ;; Contains executable of 7z and pscp + (delete-file-recursively "ci/tools") + ;; Remove bundled fonts + (delete-file-recursively "src/fonts") + #t)))) + (build-system gnu-build-system) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build qt-utils) + (guix build utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build qt-utils)) + #:make-flags + (list (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no ./configure script + (delete 'check) ; no check target + (add-before 'build 'set-program-version + (lambda _ + ;; configure.ac relies on ‘git --describe’ to get the version. + ;; Patch it to just return the real version number directly. + (substitute* "src/kristall.pro" + (("(KRISTALL_VERSION=).*" _ match) + (string-append match ,version "\n"))) + #t)) + (add-before 'build 'dont-use-bundled-cmark + (lambda _ + (substitute* "src/kristall.pro" + (("(^include\\(.*cmark.*)" _ match) + (string-append + "LIBS += -I" (assoc-ref %build-inputs "cmark") " -lcmark"))) + #t)) + (add-before 'build 'dont-use-bundled-breeze-stylesheet + (lambda _ + (substitute* "src/kristall.pro" + (("../lib/BreezeStyleSheets/breeze.qrc") + (string-append + (assoc-ref %build-inputs "breeze-stylesheet") "/breeze.qrc"))) + #t)) + (add-before 'build 'dont-use-bundled-fonts + (lambda _ + (substitute* "src/kristall.pro" + ((".*fonts.qrc.*") "")) + (substitute* "src/main.cpp" + (("/fonts/OpenMoji-Color") + (string-append + (assoc-ref %build-inputs "font-openmoji") + "/share/fonts/truetype/OpenMoji-Color")) + (("/fonts/NotoColorEmoji") + (string-append + (assoc-ref %build-inputs "font-google-noto") + "/share/fonts/truetype/NotoColorEmoji"))) + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program out "kristall")) + #t))))) + (native-inputs + `(("breeze-stylesheet" + ,(let ((commit "2d595a956f8a5f493aa51139a470b768a6d82cce") + (revision "0")) + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Alexhuszagh/BreezeStyleSheets") + (commit "2d595a956f8a5f493aa51139a470b768a6d82cce"))) + (file-name (git-file-name "breeze-stylesheet" + (git-version "0" revision commit))) + (sha256 + (base32 + "1kvkxkisi3czldnb43ig60l55pi4a3m2a4ixp7krhpf9fc5wp294"))))))) + (inputs + `(("cmark" ,cmark) + ("font-google-noto" ,font-google-noto) + ("font-openmoji" ,font-openmoji) + ("openssl" ,openssl) + ("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ("qtsvg" ,qtsvg))) + (home-page "https://kristall.random-projects.net") + (synopsis "Small-internet graphical client") + (description "Graphical small-internet client with with many features +including multi-protocol support (gemini, HTTP, HTTPS, gopher, finger), +bookmarks, TSL certificates management, outline generation and a tabbed +interface.") + (license (list license:gpl3+ + ;; for breeze-stylesheet + license:expat))))) + (define-public qutebrowser (package (name "qutebrowser") @@ -461,7 +587,7 @@ driven and does not detract you from your daily work.") (name "nyxt") ;; Package the pre-release because latest stable 1.5.0 does not build ;; anymore. - (version "2-pre-release-3") + (version "2-pre-release-4") (source (origin (method git-fetch) @@ -472,7 +598,7 @@ driven and does not detract you from your daily work.") (commit version))) (sha256 (base32 - "16crhc89hpvzkms5fypq9vdrf7glidqwh7yvy5cdmjdq4v7fkmy4")) + "00865plmvgl1nj009a4w9bcb5mf0zgqjx7w6slacyqgidjzad6qm")) (file-name (git-file-name "nyxt" version)))) (build-system gnu-build-system) (arguments @@ -482,28 +608,20 @@ driven and does not detract you from your daily work.") #:strip-binaries? #f ; Stripping breaks SBCL binaries. #:phases (modify-phases %standard-phases - ;; Version is guessed from .git which Guix does not have. - (add-after 'unpack 'patch-version - (lambda* (#:key inputs #:allow-other-keys) - (let ((version (format #f "~a" ,version)) - (file "source/global.lisp")) - (chmod file #o666) - (let ((port (open-file file "a"))) - (format port "(setf +version+ ~s)" version) - (close-port port))) - #t)) - (add-before 'build 'make-desktop-version-number - (lambda _ - (with-output-to-file "version" - (lambda _ - (format #t "~a" ,version) - #t)))) - (delete 'configure) (add-before 'build 'fix-common-lisp-cache-folder (lambda _ (setenv "HOME" "/tmp") #t)) + (add-before 'build 'set-version + (lambda _ + (setenv "NYXT_VERSION" ,version) + #t)) + (add-before 'check 'configure-tests + (lambda _ + (setenv "NYXT_TESTS_NO_NETWORK" "1") + (setenv "NYXT_TESTS_ERROR_ON_FAIL" "1") + #t)) (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin/nyxt")) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 93399b3459..47dd0fea9a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -129,6 +129,7 @@ #:use-module (gnu packages lisp-xyz) #:use-module (gnu packages lsof) #:use-module (gnu packages lua) + #:use-module (gnu packages mail) #:use-module (gnu packages man) #:use-module (gnu packages markup) #:use-module (gnu packages ncurses) @@ -567,7 +568,7 @@ documentation.") (package (inherit nginx) (name "nginx-lua-module") - (version "0.10.15") + (version "0.10.16") (source (origin (method git-fetch) @@ -576,8 +577,7 @@ documentation.") (commit (string-append "v" version)))) (file-name (git-file-name "lua-nginx-module" version)) (sha256 - (base32 - "1j216isp0546hycklbr5wi8mlga5hq170hk7f2sm16sfavlkh5gz")))) + (base32 "0nwcbqm1visg1dkxav7qa16w0d0n8cgqn4881xiqn88xfkxj0dyg")))) (build-system gnu-build-system) (inputs `(("nginx-sources" ,(package-source nginx-socket-cloexec)) @@ -1424,7 +1424,7 @@ used to validate and fix HTML data.") (define-public esbuild (package (name "esbuild") - (version "0.8.0") + (version "0.8.11") (source (origin (method git-fetch) @@ -1434,7 +1434,7 @@ used to validate and fix HTML data.") (file-name (git-file-name name version)) (sha256 (base32 - "17qzmadjixjivwbxbj20683j3n6igk7bx7v4k5bs2rqfvigdx2ps")) + "18cp68jds8cq58hpcwh85cgvh5vlkjfdcpwqp5h754065j896rr3")) (modules '((guix build utils))) (snippet '(begin @@ -3789,15 +3789,14 @@ exists it is used instead.") (define-public perl-lwp-protocol-https (package (name "perl-lwp-protocol-https") - (version "6.07") + (version "6.09") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/O/OA/OALDERS/" "LWP-Protocol-https-" version ".tar.gz")) (sha256 - (base32 - "1rxrpwylfw1afah0nk96kgkwjbl2p1a7lwx50iipg8c4rx3cjb2j")))) + (base32 "14pm785cgyrnppks6ccasb2vkqifh0a8fz36nmnhc2v926jy3kqn")))) (build-system perl-build-system) (native-inputs ;; For tests. @@ -4423,14 +4422,14 @@ RFC 6570.") (uri (string-append "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-" version".tar.gz")) - (patches (search-patches "perl-www-curl-remove-symbol.patch")) + (patches (search-patches "perl-www-curl-fix-struct-void.patch" + "perl-www-curl-remove-symbol.patch")) (sha256 (base32 "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj")))) (build-system perl-build-system) (arguments '(#:tests? #f ;XXX: tests require network access - #:phases (modify-phases %standard-phases (add-before 'configure 'set-search-path (lambda _ @@ -5630,14 +5629,14 @@ on the fly.") (define-public hitch (package (name "hitch") - (version "1.6.0") + (version "1.7.0") (home-page "https://hitch-tls.org/") (source (origin (method url-fetch) (uri (string-append home-page "source/hitch-" version ".tar.gz")) (sha256 (base32 - "01n70yf8hx42jb801jv5q1xhrpqxyjnqhd98hjf81lvxpd5fnisf")))) + "1i75giwyr66ip8xsvk3gg5xdbxnmcabgxz8dqi06c58mw7qzhzn9")))) (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -5770,13 +5769,13 @@ deployments.") (package (name "varnish") (home-page "https://varnish-cache.org/") - (version "6.4.0") + (version "6.5.1") (source (origin (method url-fetch) (uri (string-append home-page "_downloads/varnish-" version ".tgz")) (sha256 (base32 - "1hkn98vbxk7rc1sd08367qn6rcv8wkxgwbmm1x46y50vi0nvldpn")))) + "1dfdswri6lkfk6kml3szvffm91y49pajgqy1k5y26llqixl4r5hi")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib") @@ -5844,18 +5843,25 @@ configuration language.") (package (name "varnish-modules") (home-page "https://github.com/varnish/varnish-modules") - (version "0.16.0") + (version "0.17.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/varnish/varnish-modules" - "/releases/download/varnish-modules-" version - "/varnish-modules-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1ph5bplsip4rycql1c2hgbvmrwbgcrgv2ldgfp7saxxbsv5cpcds")))) + "0zg8y2sgkygdani70zp9rbx278431fmssj26d47c5qsiw939i519")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + + ;; For bootstrapping. + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + + ;; For generating manuals. + ("rst2man" ,python-docutils))) (inputs `(("python" ,python) ("varnish" ,varnish))) @@ -7706,10 +7712,11 @@ solution for any project's interface needs: (license license:expat))) (define-public gmnisrv - (let ((commit "a22bec51494a50c044416d469cc33e043480e7fd")) + (let ((commit "d484ba0ab0020866535a44be5948c9482b8f2b8d") + (revision "1")) (package (name "gmnisrv") - (version (git-version "0" "0" commit)) + (version (git-version "0" revision commit)) (home-page "https://git.sr.ht/~sircmpwn/gmnisrv") (source (origin (method git-fetch) @@ -7718,7 +7725,7 @@ solution for any project's interface needs: (commit commit))) (sha256 (base32 - "1k1n7cqd37jgbhxyh231bagdxdxqwpr6n5pk3gax2516w6xbzlb9")) + "11phipixsxx1jgm42agp76p5s68l0zj65kgb41vzaymgwcq79ivn")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -7728,19 +7735,14 @@ solution for any project's interface needs: (lambda _ (setenv "CC" "gcc") #t)) - (delete 'check) - (add-after 'install 'install-config - (lambda* (#:key outputs #:allow-other-keys) - (let ((etc (string-append (assoc-ref outputs "out") - "/etc"))) - (mkdir-p etc) - (copy-file "config.ini" (string-append etc "/gmnisrv.ini")) - #t)))))) + (delete 'check)))) (inputs `(("openssl" ,openssl))) (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc))) + (propagated-inputs + `(("mailcap" ,mailcap))) (synopsis "Simple Gemini protocol server") (description "gmnisrv is a simple Gemini protocol server written in C.") (license (list license:gpl3+ diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index d72cbfeda3..89a3b4c18b 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com> ;;; @@ -224,14 +224,14 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.") (define-public webkitgtk (package (name "webkitgtk") - (version "2.30.2") + (version "2.30.3") (source (origin (method url-fetch) (uri (string-append "https://www.webkitgtk.org/releases/" "webkitgtk-" version ".tar.xz")) (sha256 (base32 - "0ak8slddg7gpk6m096xzkiqw9bfsrrizvqr815bw44665fyf0ry4")) + "0zsy3say94d9bhaan0l6mfr59z03a5x4kngyy8b2i20n77q19skd")) (patches (search-patches "webkitgtk-share-store.patch" "webkitgtk-bind-all-fonts.patch")))) (build-system cmake-build-system) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 3bb7f7e8e8..361cecf26f 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -611,7 +611,7 @@ Features include: "/bin/gawk"))) (substitute* "lock" - (("$(which wmctrl)") wmctrl) + (("\\$\\(command -V wmctrl\\)") wmctrl) (("convert") mconvert) (("shot=\\(import") (string-append "shot=\(" mimport)) (("awk -F") (string-append awk " -F")) @@ -630,7 +630,7 @@ Features include: (string-append bin "/i3lock-fancy")) (copy-recursively "icons" icons) #t)))))) - (native-inputs + (inputs `(("imagemagick" ,imagemagick) ("wmctrl" ,wmctrl) ("gawk" ,gawk))) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index ccfab58777..430b5ac770 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -843,7 +843,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") (define-public xlockmore (package (name "xlockmore") - (version "5.62") + (version "5.66") (source (origin (method url-fetch) (uri (list (string-append "http://sillycycle.com/xlock/" @@ -854,7 +854,7 @@ shows it again when the mouse cursor moves or a mouse button is pressed.") "xlockmore-" version ".tar.xz"))) (sha256 (base32 - "0b05wgj4mpssy4hd7km5c48i454dfg45p11mfmsr7xjd2gnz5gqi")))) + "0wdb7gpyjw3sigmhiplgg1bqxz6wipr0c3n9492x2a18cv1saxjr")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list (string-append "--enable-appdefaultdir=" @@ -1089,7 +1089,7 @@ Escape key when Left Control is pressed and released on its own.") (define-public libwacom (package (name "libwacom") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) (uri (string-append @@ -1097,7 +1097,7 @@ Escape key when Left Control is pressed and released on its own.") "libwacom-" version "/libwacom-" version ".tar.bz2")) (sha256 (base32 - "0yyl6vzpfd7dq8a8k9dn8r494542ci4r1i0pillg1p4f7jvryd3b")))) + "1a5ffxyhl6crspybcfsx5ribgrgkzwfl5w9y32slxbgjwczb473h")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-static"))) @@ -2550,3 +2550,35 @@ such as sway, similar to @command{rofi}.") "@command{dex}, @dfn{DesktopEntry Execution}, is a program to generate and execute @file{.desktop} files of the Application type.") (license license:gpl3+))) + +(define-public sx + (package + (name "sx") + (version "2.1.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Earnestly/sx") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p24ghp1ygvyc2hv81byhxax7491yhcc5priq5ldv07nzl7akagc")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "PREFIX=" out))) + #:phases + (modify-phases %standard-phases + ;; no configure script + (delete 'configure)))) + (propagated-inputs + `(("xauth" ,xauth))) + (home-page "https://github.com/Earnestly/sx") + (synopsis "Start an xorg server") + (description + "@command{sx} is a simple alternative to both @command{xinit} and +@command{startx} for starting an Xorg server.") + (license license:x11))) diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 17b29c3c23..02e8093ddf 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -121,7 +121,7 @@ Xfce Desktop Environment.") (define-public xfconf (package (name "xfconf") - (version "4.14.3") + (version "4.14.4") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -129,7 +129,7 @@ Xfce Desktop Environment.") "xfconf-" version ".tar.bz2")) (sha256 (base32 - "00hcb96bw5ylfs9ppblchj8zv9026m3dlf7lnmgiq5f6xyh5542q")))) + "0wszp93z64112jq5wm4133s64in2ndvnzbgsbn8dh7p5xhp64dyc")))) (build-system gnu-build-system) (arguments '(#:phases @@ -755,7 +755,7 @@ on the screen.") (define-public xfdesktop (package (name "xfdesktop") - (version "4.14.2") + (version "4.14.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -763,7 +763,7 @@ on the screen.") "xfdesktop-" version ".tar.bz2")) (sha256 (base32 - "0x1yx9sd5aanrlr1qnbwd2nsmcg09g4132k0kyb7z47a3x3381d3")) + "14sp5a4n21prwmh2l5mjq5fjaq7r2pbjxddfx4wzaix8867x1mq6")) (modules '((guix build utils))) (snippet #~(begin @@ -899,7 +899,7 @@ system resources, while still being visually appealing and user friendly.") (define-public xfce4-power-manager (package (name "xfce4-power-manager") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -907,7 +907,7 @@ system resources, while still being visually appealing and user friendly.") "xfce4-power-manager-" version ".tar.bz2")) (sha256 (base32 - "0jqjwy341dxyijjm9k77a12iih6b5r3f4cmpr2lppa7mf37qqdj5")))) + "1ki088iyr266cfyq9bmmhhd27wrsrmbhsblyf4yqby03hlvqif3k")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1177,7 +1177,7 @@ A plugin for the Xfce panel is also available.") (define-public xfce4-screensaver (package (name "xfce4-screensaver") - (version "0.1.10") + (version "0.1.11") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/" @@ -1187,7 +1187,7 @@ A plugin for the Xfce panel is also available.") version ".tar.bz2")) (sha256 (base32 - "0mqxbyq9np6jzky8y35dlxxmk78q2w0jvwg9kh7a4ib7vmw1qvsq")))) + "0xxcvvcch8bqd35ksq8l88a46xnidp59iq4ssyygki0a2vd20h41")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1987,7 +1987,7 @@ lan interface (signal state, signal quality, network name (SSID)).") (define-public xfce4-weather-plugin (package (name "xfce4-weather-plugin") - (version "0.10.1") + (version "0.10.2") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -1996,7 +1996,7 @@ lan interface (signal state, signal quality, network name (SSID)).") "/xfce4-weather-plugin-" version ".tar.bz2")) (sha256 (base32 - "12bs2rfmmy021087i10vxibdbbvd5vld0vk3h5hymhpz7rgszcmg")))) + "1ik2qvmwylsz5vyz4np2y0mmd37s89xkayxi97490c4mj85pj5wh")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 97d42b2ae2..1db3c2ead1 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> +;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -84,7 +85,7 @@ (method git-fetch) (uri (git-reference - (url "https://github.com/hughsie/libxmlb.git") + (url "https://github.com/hughsie/libxmlb") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -218,7 +219,7 @@ project (but it is usable outside of the Gnome platform).") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/libxmlplusplus/libxmlplusplus.git") + (url "https://github.com/libxmlplusplus/libxmlplusplus") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -278,7 +279,7 @@ It uses libxml2 to access the XML files.") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/libxmlplusplus/libxmlplusplus.git") + (url "https://github.com/libxmlplusplus/libxmlplusplus") (commit version))) (file-name (git-file-name name version)) (sha256 @@ -1080,14 +1081,14 @@ XSL-T processor. It also performs any necessary post-processing.") (define-public xmlsec (package (name "xmlsec") - (version "1.2.30") + (version "1.2.31") (source (origin (method url-fetch) (uri (string-append "https://www.aleksey.com/xmlsec/download/" "xmlsec1-" version ".tar.gz")) (sha256 (base32 - "1j5bf7ni45jghyrbf7a14wx2pvfara557zyry7g7h8840c5kd11d")))) + "09hbbaz2d9hw645q27apkjs1mdr6vd85x5z3c9hzgr1iri9bq44v")))) (build-system gnu-build-system) (propagated-inputs ; according to xmlsec1.pc `(("libxml2" ,libxml2) @@ -1260,7 +1261,15 @@ C++ programming language.") (substitute* "Makefile" (("^examples/schema1\\\\") "\\") (("^examples/valid1\\\\") "\\")) - #t))))) + #t)) + (add-after 'install 'symlink-xmlstarlet + (lambda* (#:key outputs #:allow-other-keys) + ;; Other distros usually either rename or symlink the `xml' binary + ;; as `xmlstarlet', let's do it as well for compatibility. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (symlink "xml" (string-append bin "/xmlstarlet")) + #t)))))) (inputs `(("libxslt" ,libxslt) ("libxml2" ,libxml2))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index e912eb1be9..23fe8a987f 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -6110,17 +6110,17 @@ to answer a question. Xmessage can also exit after a specified time.") (define-public xterm (package (name "xterm") - (version "361") - (source (origin - (method url-fetch) - (uri (list - (string-append "http://invisible-mirror.net/archives/xterm/" - "xterm-" version ".tgz") - (string-append "ftp://ftp.invisible-island.net/xterm/" - "xterm-" version ".tgz"))) - (sha256 - (base32 - "0gv27akkfb796aww1snq3c2sxmi8vajgfxk83g60awp4slh0yqc5")))) + (version "362") + (source + (origin + (method url-fetch) + (uri (list + (string-append "https://invisible-mirror.net/archives/xterm/" + "xterm-" version ".tgz") + (string-append "ftp://ftp.invisible-island.net/xterm/" + "xterm-" version ".tgz"))) + (sha256 + (base32 "18mch57f5sypgfdbvna22ailcfpnixw0fc5wkf2j3w58dwigwkqx")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts" @@ -6304,16 +6304,15 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "4.0.4") + (version "4.0.5") (source (origin (method url-fetch) (uri (string-append "https://www.xpra.org/src/xpra-" version ".tar.xz")) (sha256 - (base32 "10alqdfmgml9ixdi1nyd9xlw8a5q0j8m2sv4g9p83pd6z1a0rpv2")) - (patches (search-patches "xpra-4.0.1-systemd-run.patch" - "xpra-4.0.4-norequests.patch")))) + (base32 "11ml66z8vbc0fa567kkmp2j20l5l60aflnkrz5ay8arw3w92nmnz")) + (patches (search-patches "xpra-4.0.1-systemd-run.patch")))) (build-system python-build-system) ;; see also http://xpra.org/trac/wiki/Dependencies (inputs `( diff --git a/gnu/packages/zile.scm b/gnu/packages/zile.scm index 2718232e27..6169815520 100644 --- a/gnu/packages/zile.scm +++ b/gnu/packages/zile.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. @@ -42,14 +42,14 @@ (define-public zile (package (name "zile") - (version "2.4.14") + (version "2.4.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/zile/zile-" version ".tar.gz")) (sha256 (base32 - "0x3byaddms8l3g7igx6njycqsq98wgapysdb5c7lhcnajlkp8y3s")))) + "0ph3wd0cz3ysdyka6ds2w5l5b89mb5l79kwkfyk7phvq9yih1hrr")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 05c7bec01b..029df5ac16 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> -;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015, 2016, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 David Craven <david@craven.ch> @@ -1031,20 +1031,22 @@ the tty to run, among other things." (define-record-type* <mingetty-configuration> mingetty-configuration make-mingetty-configuration mingetty-configuration? - (mingetty mingetty-configuration-mingetty ;<package> - (default mingetty)) - (tty mingetty-configuration-tty) ;string - (auto-login mingetty-auto-login ;string | #f - (default #f)) - (login-program mingetty-login-program ;gexp - (default #f)) - (login-pause? mingetty-login-pause? ;Boolean - (default #f))) + (mingetty mingetty-configuration-mingetty ;<package> + (default mingetty)) + (tty mingetty-configuration-tty) ;string + (auto-login mingetty-auto-login ;string | #f + (default #f)) + (login-program mingetty-login-program ;gexp + (default #f)) + (login-pause? mingetty-login-pause? ;Boolean + (default #f)) + (clear-on-logout? mingetty-clear-on-logout? ;Boolean + (default #t))) (define mingetty-shepherd-service (match-lambda (($ <mingetty-configuration> mingetty tty auto-login login-program - login-pause?) + login-pause? clear-on-logout?) (list (shepherd-service (documentation "Run mingetty on an tty.") @@ -1057,7 +1059,6 @@ the tty to run, among other things." (start #~(make-forkexec-constructor (list #$(file-append mingetty "/sbin/mingetty") - "--noclear" ;; Avoiding 'vhangup' allows us to avoid 'setfont' ;; errors down the path where various ioctls get @@ -1065,6 +1066,9 @@ the tty to run, among other things." ;; in Linux. "--nohangup" #$tty + #$@(if clear-on-logout? + #~() + #~("--noclear")) #$@(if auto-login #~("--autologin" #$auto-login) #~()) diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm index 16d6f76c1a..e8957c6859 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -482,7 +482,8 @@ programs.") (package cups) "The CUPS package.") (extensions - (package-list (list cups-filters)) + (package-list (list cups-filters epson-inkjet-printer-escpr + foomatic-filters hplip-minimal splix)) "Drivers and other extensions to the CUPS package.") (files-configuration (files-configuration (files-configuration)) diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index b909c651cc..88d23f746a 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -354,16 +354,17 @@ #$@(if non-derivation-substitute-urls #~(#$(string-append "--non-derivation-substitute-urls=" - (string-join derivation-substitute-urls " "))) + (string-join non-derivation-substitute-urls " "))) #~()) #$@(map (lambda (system) (string-append "--system=" system)) (or systems '()))) #:user #$user - #:pid-file "/var/run/guix-build-coordinator-agent/pid" #:environment-variables `(,(string-append "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale") + ;; XDG_CACHE_HOME is used by Guix when caching narinfo files + "XDG_CACHE_HOME=/var/cache/guix-build-coordinator-agent" "LC_ALL=en_US.utf8") #:log-file "/var/log/guix-build-coordinator/agent.log")) (stop #~(make-kill-destructor)))))) @@ -376,9 +377,9 @@ (mkdir-p "/var/log/guix-build-coordinator") - ;; Allow writing the PID file - (mkdir-p "/var/run/guix-build-coordinator-agent") - (chown "/var/run/guix-build-coordinator-agent" + ;; Create a cache directory for storing narinfo files if downloaded + (mkdir-p "/var/cache/guix-build-coordinator-agent") + (chown "/var/cache/guix-build-coordinator-agent" (passwd:uid %user) (passwd:gid %user)))) diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index 64f54e787f..9ec0f6a9ca 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -61,7 +61,9 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-43) #:use-module (ice-9 match) + #:use-module (json) #:re-export (static-networking-service static-networking-service-type) #:export (%facebook-host-aliases @@ -180,7 +182,17 @@ pagekite-configuration-kitesecret pagekite-configuration-frontend pagekite-configuration-kites - pagekite-configuration-extra-file)) + pagekite-configuration-extra-file + + yggdrasil-service-type + yggdrasil-configuration + yggdrasil-configuration? + yggdrasil-configuration-autoconf? + yggdrasil-configuration-config-file + yggdrasil-configuration-log-level + yggdrasil-configuration-log-to + yggdrasil-configuration-json-config + yggdrasil-configuration-package)) ;;; Commentary: ;;; @@ -1750,4 +1762,107 @@ table inet filter { "Run @url{https://pagekite.net/,PageKite}, a tunneling solution to make local servers publicly accessible on the web, even behind NATs and firewalls."))) + +;;; +;;; Yggdrasil +;;; + +(define-record-type* <yggdrasil-configuration> + yggdrasil-configuration + make-yggdrasil-configuration + yggdrasil-configuration? + (package yggdrasil-configuration-package + (default yggdrasil)) + (json-config yggdrasil-configuration-json-config + (default '())) + (config-file yggdrasil-config-file + (default "/etc/yggdrasil-private.conf")) + (autoconf? yggdrasil-configuration-autoconf? + (default #f)) + (log-level yggdrasil-configuration-log-level + (default 'info)) + (log-to yggdrasil-configuration-log-to + (default 'stdout))) + +(define (yggdrasil-configuration-file config) + (define (scm->yggdrasil-json x) + (define key-value? + dotted-list?) + (define (param->camel str) + (string-concatenate + (map + string-capitalize + (string-split str (cut eqv? <> #\-))))) + (cond + ((key-value? x) + (let ((k (car x)) + (v (cdr x))) + (cons + (if (symbol? k) + (param->camel (symbol->string k)) + k) + v))) + ((list? x) (map scm->yggdrasil-json x)) + ((vector? x) (vector-map scm->yggdrasil-json x)) + (else x))) + (computed-file + "yggdrasil.conf" + #~(call-with-output-file #$output + (lambda (port) + ;; it's HJSON, so comments are a-okay + (display "# Generated by yggdrasil-service\n" port) + (display #$(scm->json-string + (scm->yggdrasil-json + (yggdrasil-configuration-json-config config))) + port))))) + +(define (yggdrasil-shepherd-service config) + "Return a <shepherd-service> for yggdrasil with CONFIG." + (define yggdrasil-command + #~(append + (list (string-append + #$(yggdrasil-configuration-package config) + "/bin/yggdrasil") + "-useconffile" + #$(yggdrasil-configuration-file config)) + (if #$(yggdrasil-configuration-autoconf? config) + '("-autoconf") + '()) + (let ((extraconf #$(yggdrasil-config-file config))) + (if extraconf + (list "-extraconffile" extraconf) + '())) + (list "-loglevel" + #$(symbol->string + (yggdrasil-configuration-log-level config)) + "-logto" + #$(symbol->string + (yggdrasil-configuration-log-to config))))) + (list (shepherd-service + (documentation "Connect to the Yggdrasil mesh network") + (provision '(yggdrasil)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + #$yggdrasil-command + #:log-file "/var/log/yggdrasil.log" + #:group "yggdrasil")) + (stop #~(make-kill-destructor))))) + +(define %yggdrasil-accounts + (list (user-group (name "yggdrasil") (system? #t)))) + +(define yggdrasil-service-type + (service-type + (name 'yggdrasil) + (description + "Connect to the Yggdrasil mesh network. +See yggdrasil -genconf for config options.") + (extensions + (list (service-extension shepherd-root-service-type + yggdrasil-shepherd-service) + (service-extension account-service-type + (const %yggdrasil-accounts)) + (service-extension profile-service-type + (compose list yggdrasil-configuration-package)))))) + ;;; networking.scm ends here diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 658d5c3e88..70f2617c7e 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -273,16 +273,16 @@ servers.") "The device type used to represent the VPN connection.") (ca - (string "/etc/openvpn/ca.crt") + (maybe-string "/etc/openvpn/ca.crt") "The certificate authority to check connections against.") (cert - (string "/etc/openvpn/client.crt") + (maybe-string "/etc/openvpn/client.crt") "The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}.") (key - (string "/etc/openvpn/client.key") + (maybe-string "/etc/openvpn/client.key") "The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}.") diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 53858436fa..855f4e649b 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -256,7 +256,14 @@ mumi-configuration-sender mumi-configuration-smtp - mumi-service-type)) + mumi-service-type + + gmnisrv-configuration + gmnisrv-configuration? + gmnisrv-configuration-package + gmnisrv-configuration-config-file + + gmnisrv-service-type)) ;;; Commentary: ;;; diff --git a/gnu/system/examples/yggdrasil.tmpl b/gnu/system/examples/yggdrasil.tmpl new file mode 100644 index 0000000000..be80bf4de9 --- /dev/null +++ b/gnu/system/examples/yggdrasil.tmpl @@ -0,0 +1,60 @@ +;; This is an operating system configuration template +;; for a "bare bones" setup, with no X11 display server. + +(use-modules (gnu)) +(use-service-modules networking ssh) +(use-package-modules admin curl networking screen) + +(operating-system + (host-name "ruby-guard-5545") + (timezone "Europe/Budapest") + (locale "en_US.utf8") + + ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the + ;; target hard disk, and "my-root" is the label of the target + ;; root file system. + (bootloader (bootloader-configuration + (bootloader grub-bootloader) + (target "/dev/sdX"))) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (users (cons (user-account + (name "alice") + (comment "Bob's sister") + (group "users") + ;; adding her to the yggdrasil group means she can use + ;; yggdrasilctl to modify the configuration + (supplementary-groups '("wheel" "yggdrasil"))) + %base-user-accounts)) + + ;; Globally-installed packages. + (packages (cons* screen curl %base-packages)) + + ;; Add services to the baseline: a DHCP client and + ;; an SSH server. + ;; If you add an /etc/yggdrasil-private.conf, you can log in to ssh + ;; using your Yggdrasil IPv6 address from another machine running Yggdrasil. + ;; Alternatively, the client can sit behind a router that has Yggdrasil. + ;; That file is specifically _not_ handled by Guix, because we don't want its + ;; contents to sit in the world-readable /gnu/store. + (services + (append + (list + (service dhcp-client-service-type) + (service yggdrasil-service-type + (yggdrasil-configuration + (log-to 'stdout) + (log-level 'debug) + (autoconf? #f) + (json-config + ;; choose a few from + ;; https://github.com/yggdrasil-network/public-peers + '((peers . #("tcp://1.2.3.4:1337")))) + (config-file #f))) + (service openssh-service-type + (openssh-configuration + (port-number 2222)))) + %base-services))) diff --git a/gnu/system/image.scm b/gnu/system/image.scm index 81152f0fc4..4972d9067b 100644 --- a/gnu/system/image.scm +++ b/gnu/system/image.scm @@ -576,7 +576,9 @@ it can be used for bootloading." (file-systems-to-keep (srfi-1:remove (lambda (fs) - (string=? (file-system-mount-point fs) "/")) + (let ((mount-point (file-system-mount-point fs))) + (or (string=? mount-point "/") + (string=? mount-point "/boot/efi")))) (operating-system-file-systems base-os))) (format (image-format image)) (os diff --git a/gnu/system/images/pinebook-pro.scm b/gnu/system/images/pinebook-pro.scm new file mode 100644 index 0000000000..b038e262cb --- /dev/null +++ b/gnu/system/images/pinebook-pro.scm @@ -0,0 +1,66 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu system images pinebook-pro) + #:use-module (gnu bootloader) + #:use-module (gnu bootloader u-boot) + #:use-module (gnu image) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services base) + #:use-module (gnu system) + #:use-module (gnu system file-systems) + #:use-module (gnu system image) + #:use-module (srfi srfi-26) + #:export (pinebook-pro-barebones-os + pinebook-pro-image-type + pinebook-pro-barebones-raw-image)) + +(define pinebook-pro-barebones-os + (operating-system + (host-name "viso") + (timezone "Europe/Paris") + (locale "en_US.utf8") + (bootloader (bootloader-configuration + (bootloader u-boot-pinebook-pro-rk3399-bootloader) + (target "/dev/vda"))) + (initrd-modules '()) + (kernel linux-libre-arm64-generic) + (file-systems (cons (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4")) + %base-file-systems)) + (services (cons (service agetty-service-type + (agetty-configuration + (extra-options '("-L")) ; no carrier detect + (baud-rate "115200") + (term "vt100") + (tty "ttyS0"))) + %base-services)))) + +(define pinebook-pro-image-type + (image-type + (name 'pinebook-pro-raw) + (constructor (cut image-with-os arm64-disk-image <>)))) + +(define pinebook-pro-barebones-raw-image + (image + (inherit + (os->image pinebook-pro-barebones-os #:type pinebook-pro-image-type)) + (name 'pinebook-pro-barebones-raw-image))) diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm index c8352f4933..f4c4be6e2b 100644 --- a/gnu/system/uuid.scm +++ b/gnu/system/uuid.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Danny Milosavljevic <dannym@scratchpost.org> -;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -42,6 +42,7 @@ string->ext2-uuid string->ext3-uuid string->ext4-uuid + string->bcachefs-uuid string->btrfs-uuid string->fat-uuid string->jfs-uuid @@ -236,6 +237,7 @@ ISO9660 UUID representation." (define string->ext2-uuid string->dce-uuid) (define string->ext3-uuid string->dce-uuid) (define string->ext4-uuid string->dce-uuid) +(define string->bcachefs-uuid string->dce-uuid) (define string->btrfs-uuid string->dce-uuid) (define string->jfs-uuid string->dce-uuid) @@ -251,14 +253,14 @@ ISO9660 UUID representation." (define %uuid-parsers (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'jfs 'luks => string->dce-uuid) + ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => string->dce-uuid) ('fat32 'fat16 'fat => string->fat-uuid) ('ntfs => string->ntfs-uuid) ('iso9660 => string->iso9660-uuid))) (define %uuid-printers (vhashq - ('dce 'ext2 'ext3 'ext4 'btrfs 'jfs 'luks => dce-uuid->string) + ('dce 'ext2 'ext3 'ext4 'bcachefs 'btrfs 'jfs 'luks => dce-uuid->string) ('iso9660 => iso9660-uuid->string) ('fat32 'fat16 'fat => fat-uuid->string) ('ntfs => ntfs-uuid->string))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 07a59a3cd2..1afae6b4ed 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -77,7 +77,6 @@ system-qemu-image/shared-store system-qemu-image/shared-store-script - system-disk-image-in-vm system-docker-image virtual-machine @@ -563,77 +562,6 @@ the operating system." ;;; VM and disk images. ;;; -(define* (system-disk-image-in-vm os - #:key - (name "disk-image") - (file-system-type "ext4") - (disk-image-size (* 900 (expt 2 20))) - (volatile? #t) - (substitutable? #t)) - "Return the derivation of a disk image of DISK-IMAGE-SIZE bytes of the -system described by OS. Said image can be copied on a USB stick as is. When -VOLATILE? is true, the root file system is made volatile; this is useful -to USB sticks meant to be read-only. - -SUBSTITUTABLE? determines whether the returned derivation should be marked as -substitutable." - (define root-label - "Guix_image") - - (define (root-uuid os) - ;; UUID of the root file system, computed in a deterministic fashion. - ;; This is what we use to locate the root file system so it has to be - ;; different from the user's own file system UUIDs. - (operating-system-uuid os 'dce)) - - (define file-systems-to-keep - (remove (lambda (fs) - (string=? (file-system-mount-point fs) "/")) - (operating-system-file-systems os))) - - (let* ((os (operating-system (inherit os) - ;; Since this is meant to be used on real hardware, don't - ;; install QEMU networking or anything like that. Assume USB - ;; mass storage devices (usb-storage.ko) are available. - (initrd (lambda (file-systems . rest) - (apply (operating-system-initrd os) - file-systems - #:volatile-root? volatile? - rest))) - - (bootloader (operating-system-bootloader os)) - - ;; Force our own root file system. (We need a "/" file system - ;; to call 'root-uuid'.) - (file-systems (cons (file-system - (mount-point "/") - (device "/dev/placeholder") - (type file-system-type)) - file-systems-to-keep)))) - (uuid (root-uuid os)) - (os (operating-system - (inherit os) - (file-systems (cons (file-system - (mount-point "/") - (device uuid) - (type file-system-type)) - file-systems-to-keep)))) - (bootcfg (operating-system-bootcfg os))) - (qemu-image #:name name - #:os os - #:bootcfg-drv bootcfg - #:bootloader (bootloader-configuration-bootloader - (operating-system-bootloader os)) - #:disk-image-size disk-image-size - #:disk-image-format "raw" - #:file-system-type file-system-type - #:file-system-label root-label - #:file-system-uuid uuid - #:copy-inputs? #t - #:inputs `(("system" ,os) - ("bootcfg" ,bootcfg)) - #:substitutable? substitutable?))) - (define* (system-qemu-image os #:key (file-system-type "ext4") diff --git a/guix/build-system/ocaml.scm b/guix/build-system/ocaml.scm index c5996bf0cf..5513216c25 100644 --- a/guix/build-system/ocaml.scm +++ b/guix/build-system/ocaml.scm @@ -29,6 +29,8 @@ #:export (%ocaml-build-system-modules package-with-ocaml4.07 strip-ocaml4.07-variant + package-with-ocaml4.09 + strip-ocaml4.09-variant default-findlib default-ocaml lower @@ -96,6 +98,18 @@ (let ((module (resolve-interface '(gnu packages ocaml)))) (module-ref module 'ocaml4.07-dune))) +(define (default-ocaml4.09) + (let ((ocaml (resolve-interface '(gnu packages ocaml)))) + (module-ref ocaml 'ocaml-4.09))) + +(define (default-ocaml4.09-findlib) + (let ((module (resolve-interface '(gnu packages ocaml)))) + (module-ref module 'ocaml4.09-findlib))) + +(define (default-ocaml4.09-dune) + (let ((module (resolve-interface '(gnu packages ocaml)))) + (module-ref module 'ocaml4.09-dune))) + (define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix #:key variant-property) "Return a procedure of one argument, P. The procedure creates a package @@ -171,6 +185,19 @@ pre-defined variants." (inherit p) (properties (alist-delete 'ocaml4.07-variant (package-properties p))))) +(define package-with-ocaml4.09 + (package-with-explicit-ocaml (delay (default-ocaml4.09)) + (delay (default-ocaml4.09-findlib)) + (delay (default-ocaml4.09-dune)) + "ocaml-" "ocaml4.09-" + #:variant-property 'ocaml4.09-variant)) + +(define (strip-ocaml4.09-variant p) + "Remove the 'ocaml4.09-variant' property from P." + (package + (inherit p) + (properties (alist-delete 'ocaml4.09-variant (package-properties p))))) + (define* (lower name #:key source inputs native-inputs outputs system target (ocaml (default-ocaml)) diff --git a/guix/build/cargo-build-system.scm b/guix/build/cargo-build-system.scm index 117c8da66c..a638d0eded 100644 --- a/guix/build/cargo-build-system.scm +++ b/guix/build/cargo-build-system.scm @@ -122,6 +122,13 @@ directory = '" port) (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1") (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") + (when (assoc-ref inputs "openssl") + (setenv "OPENSSL_DIR" (assoc-ref inputs "openssl"))) + (when (assoc-ref inputs "gettext") + (setenv "GETTEXT_SYSTEM" (assoc-ref inputs "gettext"))) + (when (assoc-ref inputs "clang") + (setenv "LIBCLANG_PATH" + (string-append (assoc-ref inputs "clang") "/lib"))) ;; We don't use the Cargo.lock file to determine the package versions we use ;; during building, and in any case if one is not present it is created diff --git a/guix/cpio.scm b/guix/cpio.scm index e4692e2e9c..c9932f5bf9 100644 --- a/guix/cpio.scm +++ b/guix/cpio.scm @@ -27,6 +27,7 @@ make-cpio-header file->cpio-header file->cpio-header* + special-file->cpio-header* write-cpio-header read-cpio-header @@ -132,9 +133,10 @@ (%make-cpio-header MAGIC inode mode uid gid nlink mtime - (if (= C_ISDIR (logand mode C_FMT)) - 0 - size) + (if (or (= C_ISLNK (logand mode C_FMT)) + (= C_ISREG (logand mode C_FMT))) + size + 0) major minor rmajor rminor (+ name-size 1) ;include trailing zero 0))) ;checksum @@ -146,6 +148,8 @@ denotes, similar to 'stat:type'." (cond ((= C_ISREG fmt) 'regular) ((= C_ISDIR fmt) 'directory) ((= C_ISLNK fmt) 'symlink) + ((= C_ISBLK fmt) 'block-special) + ((= C_ISCHR fmt) 'char-special) (else (error "unsupported file type" mode))))) @@ -187,6 +191,25 @@ produced in a deterministic fashion." #:size (stat:size st) #:name-size (string-length file-name)))) +(define* (special-file->cpio-header* file + device-type + device-major + device-minor + permission-bits + #:optional (file-name file)) + "Create a character or block device header. + +DEVICE-TYPE is either 'char-special or 'block-special. + +The number of hard links is assumed to be 1." + (make-cpio-header #:mode (logior (match device-type + ('block-special C_ISBLK) + ('char-special C_ISCHR)) + permission-bits) + #:nlink 1 + #:rdev (device-number device-major device-minor) + #:name-size (string-length file-name))) + (define %trailer "TRAILER!!!") @@ -233,6 +256,10 @@ produces with the '-H newc' option." (put-string port target))) ((directory) #t) + ((block-special) + #t) + ((char-special) + #t) (else (error "file type not supported"))) diff --git a/guix/hg-download.scm b/guix/hg-download.scm index 694105ceba..bd55946523 100644 --- a/guix/hg-download.scm +++ b/guix/hg-download.scm @@ -26,12 +26,14 @@ #:use-module (guix packages) #:autoload (guix build-system gnu) (standard-packages) #:use-module (ice-9 match) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim) #:export (hg-reference hg-reference? hg-reference-url hg-reference-changeset hg-reference-recursive? - + hg-predicate hg-fetch)) ;;; Commentary: @@ -93,4 +95,38 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." #:recursive? #t #:guile-for-build guile))) +(define (hg-file-list directory) + "Evaluates to a list of files contained in the repository at path + @var{directory}" + (let* ((port (open-input-pipe (format #f "hg files --repository ~s" directory))) + (files (let loop ((files '())) + (let ((line (read-line port))) + (cond + ((eof-object? line) files) + (else + (loop (cons line files)))))))) + (close-pipe port) + (map canonicalize-path files))) + +(define (should-select? path-list candidate) + "Returns #t in case that @var{candidate} is a file that is part of the given +@var{path-list}." + (let ((canon-candidate (canonicalize-path candidate))) + (let loop ((xs path-list)) + (cond + ((null? xs) + ;; Directories are not part of `hg files', but `local-file' will not + ;; recurse if we don't return #t for directories. + (equal? (array-ref (lstat candidate) 13) 'directory)) + ((string-contains candidate (car xs)) #t) + (else (loop (cdr xs))))))) + +(define (hg-predicate directory) + "This procedure evaluates to a predicate that reports back whether a given +@var{file} - @var{stat} combination is part of the files tracked by +Mercurial." + (let ((files (hg-file-list directory))) + (lambda (file stat) + (should-select? files file)))) + ;;; hg-download.scm ends here diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index 35c67cad8d..6ca4f65cb0 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -40,7 +40,8 @@ #:use-module (guix upstream) #:use-module (guix packages) #:use-module ((guix utils) #:select (call-with-temporary-output-file)) - #:export (hackage->guix-package + #:export (%hackage-url + hackage->guix-package hackage-recursive-import %hackage-updater @@ -92,20 +93,23 @@ (define package-name-prefix "ghc-") +(define %hackage-url + (make-parameter "https://hackage.haskell.org")) + (define (hackage-source-url name version) "Given a Hackage package NAME and VERSION, return a url to the source tarball." - (string-append "https://hackage.haskell.org/package/" name - "/" name "-" version ".tar.gz")) + (string-append (%hackage-url) "/package/" + name "/" name "-" version ".tar.gz")) (define* (hackage-cabal-url name #:optional version) "Given a Hackage package NAME and VERSION, return a url to the corresponding .cabal file on Hackage. If VERSION is #f or missing, the url for the latest version is returned." (if version - (string-append "https://hackage.haskell.org/package/" + (string-append (%hackage-url) "/package/" name "-" version "/" name ".cabal") - (string-append "https://hackage.haskell.org/package/" + (string-append (%hackage-url) "/package/" name "/" name ".cabal"))) (define (hackage-name->package-name name) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 93cf214127..77cc6350cb 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -30,7 +30,8 @@ #:use-module (guix memoization) #:use-module (guix packages) #:use-module (guix upstream) - #:export (stackage->guix-package + #:export (%stackage-url + stackage->guix-package stackage-recursive-import %stackage-updater)) @@ -39,7 +40,8 @@ ;;; Stackage info fetcher and access functions ;;; -(define %stackage-url "https://www.stackage.org") +(define %stackage-url + (make-parameter "https://www.stackage.org")) ;; Latest LTS version compatible with GHC 8.6.5. (define %default-lts-version "14.27") @@ -55,7 +57,7 @@ ;; "Retrieve the information about the LTS Stackage release VERSION." (memoize (lambda* (#:optional (version "")) - (let* ((url (string-append %stackage-url + (let* ((url (string-append (%stackage-url) "/lts-" (if (string-null? version) %default-lts-version version))) diff --git a/guix/lint.scm b/guix/lint.scm index 91dbc806dc..be6bb4eb01 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com> +;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,8 @@ #:use-module (guix http-client) #:use-module (guix packages) #:use-module (guix i18n) + #:use-module ((guix gexp) + #:select (local-file? local-file-absolute-file-name)) #:use-module (guix licenses) #:use-module (guix records) #:use-module (guix grafts) @@ -50,6 +53,7 @@ #:use-module ((guix swh) #:hide (origin?)) #:autoload (guix git-download) (git-reference? git-reference-url git-reference-commit) + #:use-module (guix import stackage) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 format) @@ -73,6 +77,7 @@ check-inputs-should-be-native check-inputs-should-not-be-an-input-at-all check-patch-file-names + check-patch-headers check-synopsis-style check-derivation check-home-page @@ -87,6 +92,7 @@ check-formatting check-archival check-profile-collisions + check-haskell-stackage lint-warning lint-warning? @@ -712,6 +718,54 @@ patch could not be found." (_ #f)) patches))))) +(define (check-patch-headers package) + "Check that PACKAGE's patches start with a comment. Return a list of +warnings." + (define (blank? str) + (string-every char-set:blank str)) + + (define (patch-header-warnings patch) + (call-with-input-file patch + (lambda (port) + ;; Read from PORT until a non-blank line is found or EOF is reached. + (let loop () + (let ((line (read-line port))) + (cond ((eof-object? line) + (list (make-warning package + (G_ "~a: empty patch") + (list (basename patch)) + #:field 'source))) + ((blank? line) + (loop)) + ((or (string-prefix? "--- " line) + (string-prefix? "+++ " line)) + (list (make-warning package + (G_ "~a: patch lacks comment and \ +upstream status") + (list (basename patch)) + #:field 'source))) + (else + '()))))))) + + (guard (c ((formatted-message? c) ;raised by 'search-patch' + (list (%make-warning package + (formatted-message-string c) + (formatted-message-arguments c) + #:field 'source)))) + (let ((patches (if (origin? (package-source package)) + (origin-patches (package-source package)) + '()))) + (append-map (lambda (patch) + ;; Dismiss PATCH if it's an origin or similar. + (cond ((string? patch) + (patch-header-warnings patch)) + ((local-file? patch) + (patch-header-warnings + (local-file-absolute-file-name patch))) + (else + '()))) + patches)))) + (define (escape-quotes str) "Replace any quote character in STR by an escaped quote character." (list->string @@ -1234,6 +1288,25 @@ Heritage") '() (apply throw key args)))))))) +(define (check-haskell-stackage package) + "Check whether PACKAGE is a Haskell package ahead of the current +Stackage LTS version." + (match (with-networking-fail-safe + (format #f (G_ "while retrieving upstream info for '~a'") + (package-name package)) + #f + (package-latest-release package (list %stackage-updater))) + ((? upstream-source? source) + (if (version>? (package-version package) + (upstream-source-version source)) + (list + (make-warning package + (G_ "ahead of Stackage LTS version ~a") + (list (upstream-source-version source)) + #:field 'version)) + '())) + (#f '()))) + ;;; ;;; Source code formatting. @@ -1418,6 +1491,10 @@ or a list thereof") (description "Validate file names and availability of patches") (check check-patch-file-names)) (lint-checker + (name 'patch-headers) + (description "Validate patch headers") + (check check-patch-headers)) + (lint-checker (name 'formatting) (description "Look for formatting issues in the source") (check check-formatting)))) @@ -1456,7 +1533,11 @@ or a list thereof") (lint-checker (name 'archival) (description "Ensure source code archival on Software Heritage") - (check check-archival)))) + (check check-archival)) + (lint-checker + (name 'haskell-stackage) + (description "Ensure Haskell packages use Stackage LTS versions") + (check check-haskell-stackage)))) (define %all-checkers (append %local-checkers diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 02557ce454..c04baf9784 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -310,6 +311,16 @@ the input port." (leave (G_ "failed to read public key: ~a: ~a~%") (error-source err) (error-string err))))) + ;; Warn about potentially volatile ACLs, but continue: system reconfiguration + ;; might not be possible without (newly-authorized) substitutes. + (let ((stat (false-if-exception (lstat %acl-file)))) + (when (and stat (eq? 'symlink (stat:type (lstat %acl-file)))) + (warning (G_ "replacing symbolic link ~a with a regular file~%") + %acl-file) + (when (string-prefix? (%store-prefix) (readlink %acl-file)) + (display-hint (G_ "On Guix System, add public keys to the +@code{authorized-keys} field of your @code{operating-system} instead."))))) + (let ((key (read-key)) (acl (current-acl))) (unless (eq? 'public-key (canonical-sexp-nth-data key 0)) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 18cd167537..c72dc3caad 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2019, 2020 Simon Tournier <zimon.toutoune@gmail.com> +;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,11 +48,15 @@ ;; provided MESSAGE. (for-each (lambda (lint-warning) - (let ((package (lint-warning-package lint-warning)) - (loc (lint-warning-location lint-warning))) - (info loc (G_ "~a@~a: ~a~%") - (package-name package) (package-version package) - (lint-warning-message lint-warning)))) + (let* ((package (lint-warning-package lint-warning)) + (name (package-name package)) + (version (package-version package)) + (loc (lint-warning-location lint-warning)) + (message (lint-warning-message lint-warning))) + (parameterize + ((guix-warning-port (current-output-port))) + (info loc (G_ "~a@~a: ~a~%") + name version message)))) warnings)) (define* (run-checkers package checkers #:key store) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index f1a9970a7f..2a2185e2b9 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -63,10 +63,14 @@ #:use-module ((guix build utils) #:select (dump-port mkdir-p find-files)) #:use-module ((guix build syscalls) #:select (set-thread-name)) - #:export (%public-key + #:export (%default-gzip-compression + + %public-key %private-key signed-string + open-server-socket + run-publish-server guix-publish)) (define (show-help) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 4a71df28d1..fb6c52a567 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -440,7 +440,7 @@ releases for ~a~%") (full-name x))) (lst (format (current-output-port) - (N_ "Building the following ~*package would ensure ~d \ + (N_ "Building the following ~d package would ensure ~d \ dependent packages are rebuilt: ~{~a~^ ~}~%" "Building the following ~d packages would ensure ~d \ dependent packages are rebuilt: ~{~a~^ ~}~%" diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index ad998156c2..db80e0be8f 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -674,7 +674,8 @@ checking this by themselves in their 'check' procedure." (define* (system-derivation-for-action os action #:key image-size image-type full-boot? container-shared-network? - mappings label) + mappings label + volatile-root?) "Return as a monadic value the derivation for OS according to ACTION." (mlet %store-monad ((target (current-target-system))) (case action @@ -706,7 +707,8 @@ checking this by themselves in their 'check' procedure." base-image)) (target (or base-target target)) (size image-size) - (operating-system os)))))) + (operating-system os) + (volatile-root? volatile-root?)))))) ((docker-image) (system-docker-image os #:shared-network? container-shared-network?))))) @@ -761,6 +763,7 @@ and TARGET arguments." dry-run? derivations-only? use-substitutes? bootloader-target target image-size image-type + volatile-root? full-boot? label container-shared-network? (mappings '()) (gc-root #f)) @@ -768,7 +771,8 @@ and TARGET arguments." bootloader; BOOTLOADER-TAGET is the target for the bootloader; TARGET is the target root directory; IMAGE-SIZE is the size of the image to be built, for the 'vm-image' and 'disk-image' actions. IMAGE-TYPE is the type of image to -be built. +be built. When VOLATILE-ROOT? is #t, the root file system is mounted +volatile. FULL-BOOT? is used for the 'vm' action; it determines whether to boot directly to the kernel or to the bootloader. CONTAINER-SHARED-NETWORK? @@ -816,6 +820,7 @@ static checks." #:label label #:image-type image-type #:image-size image-size + #:volatile-root? volatile-root? #:full-boot? full-boot? #:container-shared-network? container-shared-network? #:mappings mappings)) @@ -975,6 +980,8 @@ Some ACTIONS support additional ARGS.\n")) (display (G_ " --no-bootloader for 'init', do not install a bootloader")) (display (G_ " + --volatile for 'disk-image', make the root file system volatile")) + (display (G_ " --label=LABEL for 'disk-image', label disk image with LABEL")) (display (G_ " --save-provenance save provenance information")) @@ -1048,6 +1055,9 @@ Some ACTIONS support additional ARGS.\n")) (option '("no-bootloader" "no-grub") #f #f (lambda (opt name arg result) (alist-cons 'install-bootloader? #f result))) + (option '("volatile") #f #f + (lambda (opt name arg result) + (alist-cons 'volatile-root? #t result))) (option '("label") #t #f (lambda (opt name arg result) (alist-cons 'label arg result))) @@ -1109,7 +1119,8 @@ Some ACTIONS support additional ARGS.\n")) (image-type . raw) (image-size . guess) (install-bootloader? . #t) - (label . #f))) + (label . #f) + (volatile-root? . #f))) (define (verbosity-level opts) "Return the verbosity level based on OPTS, the alist of parsed options." @@ -1206,6 +1217,8 @@ resulting from command-line parsing." #:image-type (lookup-image-type-by-name (assoc-ref opts 'image-type)) #:image-size (assoc-ref opts 'image-size) + #:volatile-root? + (assoc-ref opts 'volatile-root?) #:full-boot? (assoc-ref opts 'full-boot?) #:container-shared-network? (assoc-ref opts 'container-shared-network?) diff --git a/guix/store.scm b/guix/store.scm index d859ea33ed..4da39971b5 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -113,6 +113,7 @@ build query-failed-paths clear-failed-paths + ensure-path add-temp-root add-indirect-root add-permanent-root @@ -1397,6 +1398,12 @@ When a handler is installed with 'with-build-handler', it is called any time (message "unsupported build mode") (status 1)))))))))))) +(define-operation (ensure-path (store-path path)) + "Ensure that a path is valid. If it is not valid, it may be made valid by +running a substitute. As a GC root is not created by the daemon, you may want +to call ADD-TEMP-ROOT on that store path." + boolean) + (define-operation (add-temp-root (store-path path)) "Make PATH a temporary root for the duration of the current session. Return #t." diff --git a/guix/utils.scm b/guix/utils.scm index b816c355dc..a591b62f30 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -78,6 +78,7 @@ target-arm? target-64bit? cc-for-target + cxx-for-target version-compare version>? @@ -542,6 +543,11 @@ a character other than '@'." (string-append target "-gcc") "gcc")) +(define* (cxx-for-target #:optional (target (%current-target-system))) + (if target + (string-append target "-g++") + "g++")) + (define version-compare (let ((strverscmp (let ((sym (or (dynamic-func "strverscmp" (dynamic-link)) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 5a164b77e3..5afb13ffdb 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -91,4 +91,24 @@ guix/profiles.scm guix/git.scm guix/deprecation.scm guix/derivations.scm +guix/scripts/archive.scm +guix/scripts/build.scm +guix/scripts/environment.scm +guix/scripts/time-machine.scm +guix/scripts/import/cpan.scm +guix/scripts/import/crate.scm +guix/scripts/import/gem.scm +guix/scripts/import/gnu.scm +guix/scripts/import/hackage.scm +guix/scripts/import/json.scm +guix/scripts/import/nix.scm +guix/scripts/import/opam.scm +guix/scripts/import/pypi.scm +guix/scripts/import/stackage.scm +guix/scripts/import/texlive.scm +guix/scripts/offload.scm +guix/scripts/perform-download.scm +guix/scripts/refresh.scm +guix/scripts/repl.scm +guix/scripts/system/reconfigure.scm nix/nix-daemon/guix-daemon.cc diff --git a/tests/lint.scm b/tests/lint.scm index 95abd71378..9b230814a5 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net> +;;; Copyright © 2020 Timothy Sample <samplet@ngyro.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +37,10 @@ #:use-module (guix lint) #:use-module (guix ui) #:use-module (guix swh) + #:use-module ((guix gexp) #:select (local-file)) + #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module ((guix import hackage) #:select (%hackage-url)) + #:use-module ((guix import stackage) #:select (%stackage-url)) #:use-module (gnu packages) #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) @@ -344,6 +349,60 @@ (list (search-patch "this-patch-does-not-exist!")))))))) (check-patch-file-names pkg)))) +(test-assert "patch headers: no warnings" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (lambda (port) + (display "This is a patch.\n\n--- a\n+++ b\n" + port))) + + (parameterize ((%patch-path (list directory))) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches (search-patches "t.patch"))))))) + (null? (check-patch-headers pkg))))))) + +(test-equal "patch headers: missing comment" + "t.patch: patch lacks comment and upstream status" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (lambda (port) + (display "\n--- a\n+++ b\n" + port))) + + (parameterize ((%patch-path (list directory))) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches (search-patches "t.patch"))))))) + (single-lint-warning-message (check-patch-headers pkg))))))) + +(test-equal "patch headers: empty" + "t.patch: empty patch" + (call-with-temporary-directory + (lambda (directory) + (call-with-output-file (string-append directory "/t.patch") + (const #t)) + + (parameterize ((%patch-path '())) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches + (list (local-file + (string-append directory + "/t.patch"))))))))) + (single-lint-warning-message (check-patch-headers pkg))))))) + +(test-equal "patch headers: patch not found" + "does-not-exist.patch: patch not found\n" + (parameterize ((%patch-path '())) + (let ((pkg (dummy-package "x" + (source (dummy-origin + (patches + (search-patches "does-not-exist.patch"))))))) + (single-lint-warning-message (check-patch-headers pkg))))) + (test-equal "derivation: invalid arguments" "failed to create x86_64-linux derivation: (wrong-type-arg \"map\" \"Wrong type argument: ~S\" (invalid-module) ())" (match (let ((pkg (dummy-package "x" @@ -1001,6 +1060,35 @@ (string-contains (single-lint-warning-message warnings) "rate limit reached"))) +(test-skip (if (http-server-can-listen?) 0 1)) +(test-assert "haskell-stackage" + (let* ((stackage (string-append "{ \"packages\": [{" + " \"name\":\"x\"," + " \"version\":\"1.0\" }]}")) + (packages (map (lambda (version) + (dummy-package + (string-append "ghc-x") + (version version) + (source + (dummy-origin + (method url-fetch) + (uri (string-append + "https://hackage.haskell.org/package/" + "x-" version "/x-" version ".tar.gz")))))) + '("0.9" "1.0" "2.0"))) + (warnings (pk (with-http-server `((200 ,stackage) ; memoized + (200 "name: x\nversion: 1.0\n") + (200 "name: x\nversion: 1.0\n") + (200 "name: x\nversion: 1.0\n")) + (parameterize ((%hackage-url (%local-url)) + (%stackage-url (%local-url))) + (append-map check-haskell-stackage packages)))))) + (match warnings + (((? lint-warning? warning)) + (and (string=? (package-version (lint-warning-package warning)) "2.0") + (string-contains (lint-warning-message warning) + "ahead of Stackage LTS version")))))) + (test-end "lint") ;; Local Variables: diff --git a/tests/store-database.scm b/tests/store-database.scm index 4d91884250..3b4ef43f6d 100644 --- a/tests/store-database.scm +++ b/tests/store-database.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,8 @@ #:use-module (guix store) #:use-module (guix store database) #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:use-module ((guix build utils) + #:select (mkdir-p delete-file-recursively)) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64)) @@ -55,6 +57,28 @@ (list (stat:mtime (lstat file)) (stat:mtime (lstat ref))))))) +(test-equal "register-path, directory" + '(1 1 1) + (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f) + "-fake-directory"))) + (when (valid-path? %store file) + (delete-paths %store (list file))) + (false-if-exception (delete-file-recursively file)) + + (let ((drv (string-append file ".drv"))) + (mkdir-p (string-append file "/a")) + (call-with-output-file (string-append file "/a/b") + (const #t)) + (register-path file #:deriver drv) + + (and (valid-path? %store file) + (null? (references %store file)) + (null? (valid-derivers %store file)) + (null? (referrers %store file)) + (list (stat:mtime (lstat file)) + (stat:mtime (lstat (string-append file "/a"))) + (stat:mtime (lstat (string-append file "/a/b")))))))) + (test-equal "new database" (list 1 2) (call-with-temporary-output-file |