diff options
153 files changed, 8513 insertions, 2092 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..d021384b73 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 @@ -17424,7 +17541,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 escpr hplip-minimal foomatic-filters)}) Drivers and other extensions to the CUPS package. @end deftypevr @@ -22072,9 +22189,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 +24909,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 +24928,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 +25064,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 +25083,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 +29252,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 +31035,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 +31069,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/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/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..a1da838aee 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 \ @@ -657,6 +658,7 @@ GNU_SYSTEM_MODULES = \ %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 +846,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 \ @@ -1011,6 +1012,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 \ @@ -1356,7 +1359,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,7 +1389,6 @@ 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-CVE-2015-8869.patch \ %D%/packages/patches/ocaml-Add-a-.file-directive.patch \ @@ -1428,6 +1429,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 +1451,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 \ @@ -1592,7 +1595,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 +1650,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 \ @@ -1727,6 +1728,7 @@ dist_patch_DATA = \ %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..f3bd7ffab2 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -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) diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 2dca86cbec..ed35a6832f 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) @@ -1008,8 +1008,11 @@ Optional thin wrappers allow usage of the library from other languages.") (version "3.3.7") (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")) @@ -1089,7 +1092,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 +1106,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..7fd469e950 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 diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 6733c8d212..3332e5b6d3 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> @@ -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 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..c145a2f756 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> @@ -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..91fcb28451 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12,7 +12,7 @@ ;;; 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> @@ -354,6 +354,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 +459,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 +1916,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 +1926,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 +1956,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 +1977,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 +1985,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 @@ -4256,6 +4272,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 +4505,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 +5721,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 +15437,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 +15446,7 @@ patterns.") (file-name (git-file-name name version)) (sha256 (base32 - "10gh8k0ca92kywnrw5pkacq3g6r8s976s12k8jhp8g3g49q9a97g")))) + "1sfhf2ap75qxpnmy1ifgmxqs18rq8mah9mcgkby73vc6h0sw99ws")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -15391,11 +15459,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..54f955a39d 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> @@ -355,7 +355,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..12bc39322f 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,19 @@ (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 inputs #:allow-other-keys) + (let ((freetype (assoc-ref (or native-inputs 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 +163,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 +209,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 +440,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 +451,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..826767092a --- /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.git") + (commit commit))) + (file-name (git-file-name "uAssets" (string-take commit 9))) + (sha256 + (base32 + "13mjql3rr5f3zilx05i8r7slnp7xyj6zn43dcfl3gdgi8ik483dd"))))) + +(define ublock-origin + (package + (name "ublock-origin") + (version "1.30.6") + (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 + "10arx4r4s8125g9zlh3bcjpcb4qh2wzfmvqc2x8nly5fbxvxvns3")))) + (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..8255154636 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -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 @@ -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/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..c19946f15c 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) @@ -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/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-io.scm b/gnu/packages/crates-io.scm index 3b4e02278a..f485142383 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -653,6 +653,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") @@ -31057,6 +31081,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") 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..cdfb9643c0 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) @@ -797,27 +797,32 @@ language.") (license license:gpl2+))) (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 +833,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..1c71f4116f 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) @@ -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/disk.scm b/gnu/packages/disk.scm index 235df8ce9e..9167ccb41a 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 diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index f5ea9bd332..6b428528b1 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. ;;; @@ -26,9 +27,15 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (gnu packages autotools) + #:use-module (gnu packages check) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages linux) + #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages xorg)) @@ -112,3 +119,44 @@ 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))) 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..c08f6eb3c6 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> @@ -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/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..95898b9cad 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") @@ -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))) @@ -7441,63 +7469,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") @@ -8754,25 +8787,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 +8904,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 +8913,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 +9509,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 +9522,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 +10712,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 +11132,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 +11141,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 +11175,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 +11371,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 +11523,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 @@ -14957,6 +15038,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") @@ -18537,6 +18646,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) @@ -19251,7 +19370,7 @@ correctly.") (define-public emacs-helm-sly (package (name "emacs-helm-sly") - (version "0.4.1") + (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -19260,7 +19379,7 @@ correctly.") (file-name (git-file-name name version)) (sha256 (base32 - "0b2dx9nzh5233lkix3lz81c9cv626lk2hjpcjiikwvyp6y0q92ys")))) + "1690rxwwg69jbcjhi51nyjlx3gziaiaa8ssyal71gmc6schq2592")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-helm" ,emacs-helm) @@ -19270,11 +19389,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 +19457,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 +19469,7 @@ Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1zya8id3y9wzjaj7nplq7br6nhm3lsskv0fkn1xr1y77fzcfgcdb")))) + "1gmpw14q9zkvviqpnmvh5vbyxk42038yilxm6b2zqw7mwxfc1xra")))) (build-system emacs-build-system) (arguments `(#:phases @@ -20465,20 +20585,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 +20613,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 +20652,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 @@ -21593,8 +21720,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 +21730,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 +22151,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 +22161,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") @@ -23441,6 +23567,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 +24439,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 +24448,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") @@ -25281,3 +25430,46 @@ 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))) 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..89d4aaf97e 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))) 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..950cb16505 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -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..974ddc30ee 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -254,8 +254,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 +267,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 +287,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..89d5013a8b 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: 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..534a5ea881 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.2") (source (origin (method git-fetch) (uri (git-reference @@ -453,10 +453,11 @@ support.") (file-name (git-file-name name version)) (sha256 (base32 - "14v2zfka2y3h0r0biw1rl59585lji5074x958s4xnb352jm5h9b9")))) + "0nhmv5rnmlnnmkiz95l3iy62f3754d98dm1wyh1m47xb3nbnl05b")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) ("qtsvg" ,qtsvg) ("zlib" ,zlib))) (native-inputs @@ -1842,7 +1843,7 @@ that parenthetically inclined game developers need to make 2D (and eventually (define-public bennu-game-development (package (name "bennu-game-development") - (version "348") + (version "353") (source (origin (method svn-fetch) (uri (svn-reference @@ -1851,7 +1852,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..12cc64fefa 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) @@ -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/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 7f3ae41d17..77b4aada6f 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -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..331aeba995 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+))) @@ -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") @@ -11843,7 +11901,7 @@ integrated profiler via Sysprof, debugging support, and more.") (define-public komikku (package (name "komikku") - (version "0.21.1") + (version "0.22.1") (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")))) + "0ds4j542zprbyh36qyii1c9mb7kj14cvrfk5miqjvp8y4b5i6mdi")))) (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..bfa04a3c30 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 "20201111000000") ;must be of the form YYYYMMDDhhmmss (define-public icedove (package (name "icedove") - (version "78.4.0") + (version "78.4.3") (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 "6ee1d79f9e77c90f0f165b9315b5b437a220b665")) (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"))))) + "0m6isazpirmviv14kjav8jn3w3gm3mls0qwyf1n87hj00bj6z6jc"))))) ("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..82573bd099 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -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..fc3a78bc7b 100644 --- a/gnu/packages/gpodder.scm +++ b/gnu/packages/gpodder.scm @@ -177,21 +177,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..dbf89e3894 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) @@ -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/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 02281d60d1..01949e2aaa 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -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) @@ -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) 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/javascript.scm b/gnu/packages/javascript.scm index 0e61cf10ff..669951f741 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -451,14 +451,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/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/linux.scm b/gnu/packages/linux.scm index c87c5ffb09..39abf6e2ba 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.8") (define deblob-scripts-5.9 (linux-libre-deblob-scripts linux-libre-5.9-version (base32 "1l0iw2lp6alk0a8nvdafklyks83iiyw4b2r5xif84z47qfbydsis") - (base32 "0is78bvpx6mrhibpspz4iqnsa1xplh11q1cnalkkm4hpsiy0fi4g"))) + (base32 "0wp0mx5d2qhv7brc595qj34phiaxz9z5gf26w5369nh9mll5cbw6"))) (define-public linux-libre-5.9-pristine-source (let ((version linux-libre-5.9-version) - (hash (base32 "0wwa6557i9l4vyswz26ixz8c2ykxnzqrsc9pwkr76nyjx7gjibni"))) + (hash (base32 "19l67gzk97higd2cbggipcb0wi21pv0ag0mc4qh6cqk564xp6mkn"))) (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.77") (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 "1xyvml0mps7bsa11bgpa4l0w8x6pasdz9yab2z4ds394f1lkxq53"))) (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.157") (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 "0mgpgv2ny49bb7kgaygy2ay6ckjgw7mg091viivi66jw4mjs7p3n"))) (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.206") (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 "1b46f0s15xnlam43cmw8w41rrvcwrhm6km0278lq6f86lpx3w8qw"))) (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.243") (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 "111rlzx6z4kf8zwxncib96d9wy6qmkbs0cq3dhnybipwlyf1iank"))) (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.243") (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 "1daqbmj9ka9wdkkym625hqwqaxq5n11y7c4yc9ln3xkjpnv4dplm"))) (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* @@ -4419,7 +4430,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 +4439,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 +4497,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) diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index fb85416e38..dfc5a2ad00 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 @@ -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/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/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/mail.scm b/gnu/packages/mail.scm index 44a156fd99..1e2dd4035b 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 @@ -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/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..624ad72c23 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -931,7 +931,7 @@ Encryption to Gajim.") (define-public dino (package (name "dino") - (version "0.1.0") + (version "0.2.0") (outputs '("out" "debug")) (source (origin @@ -940,7 +940,7 @@ Encryption to Gajim.") version "/dino-" version ".tar.gz")) (sha256 (base32 - "0dcq2jhpywgxrp9x1qqmrl2z50hazspqj547b9zz70apy3y4418h")))) + "0iigh7bkil6prf02dqcl6lmd89jxz685h8lqr3ni4x39zkcransn")))) (build-system cmake-build-system) (arguments `(#:tests? #f @@ -2373,7 +2373,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 +2382,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..0728144b60 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1804,17 +1804,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 diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index fefb9a5bf8..a0f51b701a 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,7 +136,6 @@ #: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) @@ -871,6 +871,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 +1823,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 +1834,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 +2142,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 +3822,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..2121263ab5 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 diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 7e6f98862d..84864ded5c 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) 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/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/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/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/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/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..dcd4bb90d8 100644 --- a/gnu/packages/python-check.scm +++ b/gnu/packages/python-check.scm @@ -436,6 +436,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") diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index b294613a5b..ce183bd6ae 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -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..504d9a112a 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -453,6 +453,8 @@ 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 @@ -956,19 +958,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 @@ -3522,16 +3527,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 +5146,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 +5163,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..629826cd48 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -89,6 +89,8 @@ ;;; 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> ;;; ;;; This file is part of GNU Guix. ;;; @@ -138,7 +140,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) @@ -3457,8 +3458,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 +3874,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 @@ -4986,7 +4989,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 +5063,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]~% @@ -10889,14 +10894,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 @@ -17186,14 +17190,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 +18236,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 +18798,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 +21502,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 +21930,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 +21946,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))) 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/ruby.scm b/gnu/packages/ruby.scm index 73bf85241c..b34a33a528 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -1582,7 +1582,7 @@ 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) @@ -1591,8 +1591,7 @@ to save time in the following ways: (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))) 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..38e4079a09 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")) + "18pz6gjzqy6a62xkcmjanhr7kgxpvpmc0blrk4igz8ldcybz44if")) (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..e380a2ef12 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") (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 "1qj7mzf2gmdyil27a4hl2pr1i3h3zzy2h33x74lnwp48mzp0cyap")))) (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/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..e1549c1728 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.13") (source (origin (method url-fetch) (uri (string-append "https://download.ceph.com/tarballs/ceph-" version ".tar.gz")) (sha256 (base32 - "02mbinm8rk16cwm0x4winmd4488xznkzkyzycxkwlib26yd2xsnz")) + "0gaxjs909wf00nvh4z53cin89dw67v1q47b2jvi3iibynhkahkg1")) (patches (search-patches "ceph-disable-cpu-optimizations.patch")) (modules '((guix build utils))) 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/tls.scm b/gnu/packages/tls.scm index d6b43d8d8f..c4420978b8 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -334,25 +334,27 @@ 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"))) + #t))) + '()) (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -363,8 +365,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 +378,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..5beaf3c186 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. ;;; @@ -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.17") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "06lhba4b9bm6f5yqrb5xvdr0l5shwd95djf9nlpg86prr5xihqks")))) + "0b0vsmvnm2jn1k66jmymzly0nb34nk79z97msns0sw0cqhbld1b2")))) (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.05") (source (origin (method url-fetch) (uri (string-append @@ -3773,11 +3807,12 @@ iTunes-style metadata.") version ".tar.gz")) (sha256 (base32 - "08i63jr8ihn1xiq5z5n3yls3yz6li5sg0s454l56p5bcvbrw81my")))) + "1dx5imjil5yiya5dqlvbqkvzgic5pybsfilx5jz1cpi1znkzpgc9")))) (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..236bb97cbe 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.1980") (source (origin (method git-fetch) (uri (git-reference @@ -79,7 +79,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1cl83phzsy1mqsgbqyds10644jcfkwk2pn6vx6s6l7vw52hh5nkc")))) + "1l1bb4lhlivgvj4jaxkibdkcg6rh1gk80d6ni41kphyrir7xahja")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -800,7 +800,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 +809,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..09ee84e3ad 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -177,6 +177,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 +1293,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 +1381,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 +1778,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 +1787,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 +1901,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 +1917,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)) 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..edb7bd5da1 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.7") (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")) + "14x95dmh4jrfp93p7ln0cv917qxll04sqzlpf9rl6w01fifr2s75")) (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/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 d8050fa90a..a21679a4d1 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 @@ -898,7 +898,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/" @@ -906,7 +906,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) @@ -1176,7 +1176,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/" @@ -1186,7 +1186,7 @@ A plugin for the Xfce panel is also available.") version ".tar.bz2")) (sha256 (base32 - "0mqxbyq9np6jzky8y35dlxxmk78q2w0jvwg9kh7a4ib7vmw1qvsq")))) + "0xxcvvcch8bqd35ksq8l88a46xnidp59iq4ssyygki0a2vd20h41")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1986,7 +1986,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/" @@ -1995,7 +1995,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..ef0ae25e13 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1080,14 +1080,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) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index e912eb1be9..658fe3132d 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" 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 e1892f3e48..065e89d312 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> @@ -1030,20 +1030,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.") @@ -1056,7 +1058,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 @@ -1064,6 +1065,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..7d2defacaa 100644 --- a/gnu/services/cups.scm +++ b/gnu/services/cups.scm @@ -482,7 +482,7 @@ programs.") (package cups) "The CUPS package.") (extensions - (package-list (list cups-filters)) + (package-list (list cups-filters escpr hplip-minimal foomatic-filters)) "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/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/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/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/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/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)) |