Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2019-05-01 23:11:41 +02:00
commit 3b458d5462
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
372 changed files with 206335 additions and 131317 deletions

2
.gitignore vendored
View file

@ -28,6 +28,7 @@
/configure
/doc/*.1
/doc/.dirstamp
/doc/contributing.*.texi
/doc/guix.*.aux
/doc/guix.*.cp
/doc/guix.*.cps
@ -43,6 +44,7 @@
/doc/guix.*.tp
/doc/guix.*.vr
/doc/guix.*.vrs
/doc/guix.*.texi
/doc/guix.aux
/doc/guix.cp
/doc/guix.cps

View file

@ -54,6 +54,7 @@ nodist_noinst_SCRIPTS = \
# Modules that are not compiled but are installed nonetheless, such as
# build-side modules with unusual dependencies.
MODULES_NOT_COMPILED = \
guix/build/po.scm \
guix/man-db.scm
include gnu/local.mk
@ -120,6 +121,7 @@ MODULES = \
guix/build-system/gnu.scm \
guix/build-system/guile.scm \
guix/build-system/haskell.scm \
guix/build-system/linux-module.scm \
guix/build-system/perl.scm \
guix/build-system/python.scm \
guix/build-system/ocaml.scm \
@ -138,6 +140,7 @@ MODULES = \
guix/store.scm \
guix/cvs-download.scm \
guix/svn-download.scm \
guix/colors.scm \
guix/i18n.scm \
guix/ui.scm \
guix/status.scm \
@ -172,6 +175,7 @@ MODULES = \
guix/build/texlive-build-system.scm \
guix/build/waf-build-system.scm \
guix/build/haskell-build-system.scm \
guix/build/linux-module-build-system.scm \
guix/build/store-copy.scm \
guix/build/utils.scm \
guix/build/union.scm \
@ -220,6 +224,10 @@ MODULES = \
guix/scripts/archive.scm \
guix/scripts/import.scm \
guix/scripts/package.scm \
guix/scripts/install.scm \
guix/scripts/remove.scm \
guix/scripts/upgrade.scm \
guix/scripts/search.scm \
guix/scripts/gc.scm \
guix/scripts/hash.scm \
guix/scripts/pack.scm \
@ -276,7 +284,8 @@ endif BUILD_DAEMON_OFFLOAD
# Scheme implementation of the build daemon and related functionality.
STORE_MODULES = \
guix/store/database.scm \
guix/store/deduplication.scm
guix/store/deduplication.scm \
guix/store/roots.scm
MODULES += $(STORE_MODULES)
@ -292,6 +301,7 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/5.0-i686.conf \
gnu/packages/aux-files/linux-libre/5.0-x86_64.conf \
gnu/packages/aux-files/linux-libre/4.19-arm.conf \
gnu/packages/aux-files/linux-libre/5.0-arm-veyron.conf \
gnu/packages/aux-files/linux-libre/4.19-arm64.conf \
gnu/packages/aux-files/linux-libre/4.19-i686.conf \
gnu/packages/aux-files/linux-libre/4.19-x86_64.conf \
@ -306,6 +316,7 @@ AUX_FILES = \
# Templates, examples.
EXAMPLES = \
gnu/system/examples/asus-c201.tmpl \
gnu/system/examples/bare-bones.tmpl \
gnu/system/examples/beaglebone-black.tmpl \
gnu/system/examples/desktop.tmpl \
@ -405,7 +416,8 @@ SCM_TESTS = \
tests/pypi.scm \
tests/import-utils.scm \
tests/store-database.scm \
tests/store-deduplication.scm
tests/store-deduplication.scm \
tests/store-roots.scm
SH_TESTS = \
tests/guix-build.sh \
@ -417,6 +429,7 @@ SH_TESTS = \
tests/guix-pack-localstatedir.sh \
tests/guix-pack-relocatable.sh \
tests/guix-package.sh \
tests/guix-package-aliases.sh \
tests/guix-package-net.sh \
tests/guix-system.sh \
tests/guix-archive.sh \
@ -677,6 +690,13 @@ GUIX_SYSTEM_IMAGE_BASE = guix-system-install-$(PACKAGE_VERSION)
# Prefix of the Guix VM image file name.
GUIX_SYSTEM_VM_IMAGE_BASE = guix-system-vm-image-$(PACKAGE_VERSION)
# Flags for 'guix system vm-image'. By default create a VM image that appears
# to have a 20G hard disk.
GUIX_SYSTEM_VM_IMAGE_FLAGS ?= --image-size=30G
# Return the sequence of '-s' flags for the given systems.
system_flags = $(foreach system,$(1),-s $(system))
# The release process works in several phases:
#
# 0. We assume the developer created a 'vX.Y' tag.
@ -694,6 +714,7 @@ GUIX_SYSTEM_VM_IMAGE_BASE = guix-system-vm-image-$(PACKAGE_VERSION)
# issue described at <https://savannah.gnu.org/bugs/index.php?51027>.
release: dist
cd po; git checkout .
cd doc; git checkout .
@if ! git diff-index --quiet HEAD; then \
echo "There are uncommitted changes; stopping." >&2 ; \
exit 1 ; \
@ -706,6 +727,9 @@ release: dist
"`git rev-parse HEAD`" "$(PACKAGE_VERSION)"
git add $(top_srcdir)/gnu/packages/package-management.scm
git commit -m "gnu: guix: Update to $(PACKAGE_VERSION)."
$(top_builddir)/pre-inst-env guix build guix \
$(call system_flags,$(SUPPORTED_SYSTEMS)) \
-v1 --no-grafts -K
rm -f $(BINARY_TARBALLS)
$(MAKE) $(BINARY_TARBALLS)
for system in $(SUPPORTED_SYSTEMS) ; do \
@ -717,6 +741,9 @@ release: dist
"`git rev-parse HEAD`"
git add $(top_srcdir)/gnu/packages/package-management.scm
git commit -m "gnu: guix: Update to `git rev-parse HEAD | cut -c1-7`."
$(top_builddir)/pre-inst-env guix build guix \
$(call system_flags,$(GUIX_SYSTEM_SUPPORTED_SYSTEMS)) \
-v1 --no-grafts -K
for system in $(GUIX_SYSTEM_SUPPORTED_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \
guix system disk-image \
@ -733,7 +760,7 @@ release: dist
done
for system in $(GUIX_SYSTEM_VM_SYSTEMS) ; do \
image=`$(top_builddir)/pre-inst-env \
guix system vm-image \
guix system vm-image $(GUIX_SYSTEM_VM_IMAGE_FLAGS) \
--system=$$system \
gnu/system/examples/vm-image.tmpl` ; \
if [ ! -f "$$image" ] ; then \

84
NEWS
View file

@ -2,7 +2,7 @@
#+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars
Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Copying and distribution of this file, with or without modification,
@ -11,6 +11,88 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 1.0.0 (since 0.16.0)
** Package management
*** New -v/--verbosity option for all commands
*** Most commands now default to verbosity level 1 (“quiet”)
*** New guix package aliases: install, remove, upgrade, and search
*** guix pack -RR produces PRoot-enabled relocatable binaries
*** New --save-provenance option for guix pack
*** CLI diagnostics use colors; more operations show progress bars
*** New --news option for guix pull
*** New --preserve option for guix environment
*** guix environment -C creates containers with a non-zero UID
*** Channels can now specify dependencies in a .guix-channel file
*** New reverse-bag graph type for guix graph
*** New --with-git-url package transformation option
*** The --with-branch package transformation option fetches Git sub-modules
*** New guix system delete-generations command
*** New --list-roots and --delete-generations options for guix gc
*** New --coverage option for guix weather
*** guix pull computes a package cache to speed up package lookups by name
*** guix pull now embeds glibc-utf8-locales
*** guix refresh -l better estimates dependents
*** guix build can take multiple --system flags
*** guix offload avoids build machines with too little free disk space
*** guix offload now uses (guix inferior) to communicate with remote hosts
*** Guix can no longer be built with Guile 2.0
** Distribution
*** New text-mode graphical installer
*** New virtual machine (VM) image
*** New keyboard-layout field for the OS, bootloader, and Xorg configuration
*** New xorg-configuration record type for Xorg server configuration
*** %desktop-services now includes GDM instead of SLiM for graphical log-in
*** New label and essential-services fields for <operation-system>
*** The manual has been restructured for clarity
*** New remote-inferior procedure in (guix ssh)
*** New (gnu ci) module for continuous integration jobs
*** (gnu services shepherd) now supports one-shot services
*** New services
cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent,
zabbix-server
*** XXX new packages
*** XXX package updates
** Programming interfaces
*** New this-package, this-origin, and this-operating-system macros
*** The self-native-input? field was removed from <package>
*** New package-input-rewriting/spec procedure for graph rewriting
*** New package-closure procedure in (guix packages)
*** New UI helper modules (guix colors) and (guix deprecation)
*** New (gnu build accounts) module to manage /etc/{passwd,shadow,group}
*** nix-* bindings in (guix store) replaced by store-connection-*
*** Records created by define-record-type* report duplicate fields
** Noteworthy bug fixes
*** ISO images produced by guix system are now reproducible bit-for-bit
(<https://bugs.gnu.org/35283>)
*** guix pack -f squashfs produces relative symlinks
(<https://bugs.gnu.org/34913>)
*** guix package -r something-not-installed now raises an error
*** Fix multi-threaded miscompilation issue with syntax parameters
(<https://bugs.gnu.org/27476>)
*** file-systems: Spawn a REPL only when interaction is possible
(<https://bugs.gnu.org/23697>)
*** guix environment supports package transformation options
(<https://bugs.gnu.org/33776>)
*** guix substitute now ignores irrelevant narinfo signatures
(<https://bugs.gnu.org/33733>)
*** On Guix System, guix-daemon now runs in a UTF-8 locale
(<https://bugs.gnu.org/32942>)
*** Fix relative file name canonicalization for '--root'
(<https://bugs.gnu.org/35271>)
*** vm: Do not mount /xchg with "cache=loose"
(<https://bugs.gnu.org/33639>)
*** build-system/go: Build with a filesystem union of Go dependencies
(<https://bugs.gnu.org/33620>)
*** 'containerized-operating-system' removes "useless" services
(<https://bugs.gnu.org/34211>)
** Native language support
*** The manual is now fully translated in French and Spanish
*** The manual is also partly translated in German and in Simplified Chinese
*** Updated translations: da, de, es, fr
*** New translations: sv
* Changes in 0.16.0 (since 0.15.0)
** Package management

View file

@ -2,4 +2,18 @@
# Create the build system.
set -e -x
# Generate stubs for translations.
langs=`find po/doc -type f -name '*.po' \
| sed -e 's,guix-manual\.,,' \
| xargs -n 1 -I{} basename {} .po`
for lang in ${langs}; do
if [ ! -e "doc/guix.${lang}.texi" ]; then
echo "@setfilename guix.${lang}.info" > "doc/guix.${lang}.texi"
echo "@include version-${lang}.texi" >> "doc/guix.${lang}.texi"
# Ensure .po file is newer.
touch "po/doc/guix-manual.${lang}.po"
fi
done
exec autoreconf -vfi

View file

@ -54,10 +54,6 @@ (define-module (build-self)
;;; available at this point.
;;;
(define %dependency-variables
;; (guix config) variables corresponding to dependencies.
'(%libgcrypt %libz %xz %gzip %bzip2))
(define %persona-variables
;; (guix config) variables that define Guix's persona.
'(%guix-package-name
@ -313,7 +309,11 @@ (define fake-git
(cons (string-append #$guile-gcrypt "/lib/guile/"
(effective-version)
"/site-ccache")
%load-compiled-path)))
%load-compiled-path))
;; Disable position recording to save time and space
;; when loading the package modules.
(read-disable 'positions))
(use-modules (guix store)
(guix self)
@ -399,6 +399,9 @@ (define* (build source
(mlet %store-monad ((build (build-program source version guile-version
#:pull-version pull-version))
(system (if system (return system) (current-system)))
;; Note: Use the deprecated names here because the
;; caller might be Guix <= 0.16.0.
(port ((store-lift nix-server-socket)))
(major ((store-lift nix-server-major-version)))
(minor ((store-lift nix-server-minor-version))))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -17,7 +17,8 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(use-modules (ice-9 match)
(use-modules (ice-9 format)
(ice-9 match)
(ice-9 threads)
(srfi srfi-1)
(guix build compile)
@ -78,6 +79,10 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
(current-processor-count))))
(loop tail)))))))))
(define (% completed total)
"Return the completion percentage of COMPLETED over TOTAL as an integer."
(inexact->exact (round (* 100. (/ completed total)))))
;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
;; opportunity to run upon SIGINT and to remove temporary output files.
(sigaction SIGINT
@ -92,10 +97,14 @@ (define* (parallel-job-count #:optional (flags (getenv "MAKEFLAGS")))
#:host host
#:report-load (lambda (file total completed)
(when file
(format #t " LOAD ~a~%" file)
(format #t "[~3d%] LOAD ~a~%"
(% (+ 1 completed) (* 2 total))
file)
(force-output)))
#:report-compilation (lambda (file total completed)
(when file
(format #t " GUILEC ~a~%"
(format #t "[~3d%] GUILEC ~a~%"
(% (+ total completed 1)
(* 2 total))
(scm->go file))
(force-output))))))

View file

@ -202,7 +202,6 @@ else
AC_MSG_RESULT([not found])
fi
LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no"
LIBGCRYPT_PREFIX="no"
@ -212,7 +211,6 @@ AC_ARG_WITH([libgcrypt-prefix],
yes|no)
;;
*)
LIBGCRYPT="$withval/lib/libgcrypt"
LIBGCRYPT_PREFIX="$withval"
LIBGCRYPT_LIBDIR="$withval/lib"
;;
@ -223,11 +221,9 @@ AC_ARG_WITH([libgcrypt-libdir],
[search for GNU libgcrypt's shared library in DIR])],
[case "$withval" in
yes|no)
LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no"
;;
*)
LIBGCRYPT="$withval/libgcrypt"
LIBGCRYPT_LIBDIR="$withval"
;;
esac])
@ -240,10 +236,6 @@ case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in
;;
esac
dnl Library name suitable for `dynamic-link'.
AC_MSG_CHECKING([for libgcrypt shared library name])
AC_MSG_RESULT([$LIBGCRYPT])
AC_SUBST([LIBGCRYPT])
AC_SUBST([LIBGCRYPT_PREFIX])
AC_SUBST([LIBGCRYPT_LIBDIR])

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -827,7 +827,7 @@ your @code{operating-system} configuration:
@example
(service qemu-binfmt-service-type
(qemu-binfmt-configuration
(platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el"))
(platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))
(guix-support? #t)))
@end example
@ -835,12 +835,11 @@ Then reconfigure your system.
You can then build packages for different platforms by specifying the
@code{--system} option. For example, to build the "hello" package for
the armhf, aarch64, powerpc, or mips64 architectures, you would run the
following commands, respectively:
the armhf, aarch64, or mips64 architectures, you would run the following
commands, respectively:
@example
guix build --system=armhf-linux --rounds=2 hello
guix build --system=aarch64-linux --rounds=2 hello
guix build --system=powerpc-linux --rounds=2 hello
guix build --system=mips64el-linux --rounds=2 hello
@end example

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -21,9 +21,11 @@
# You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = %D%/guix.texi \
%D%/guix.fr.texi \
%D%/guix.de.texi
info_TEXINFOS = %D%/guix.texi \
%D%/guix.es.texi \
%D%/guix.fr.texi \
%D%/guix.de.texi \
%D%/guix.zh_CN.texi
%C%_guix_TEXINFOS = \
%D%/contributing.texi \
@ -55,11 +57,15 @@ OS_CONFIG_EXAMPLES_TEXI = \
%D%/os-config-desktop.texi \
%D%/os-config-lightweight-desktop.texi
TRANSLATED_INFO = \
%D%/guix.de.texi \
%D%/guix.fr.texi \
%D%/contributing.de.texi \
%D%/contributing.fr.texi
TRANSLATED_INFO = \
%D%/guix.de.texi \
%D%/guix.es.texi \
%D%/guix.fr.texi \
%D%/guix.zh_CN.texi \
%D%/contributing.de.texi \
%D%/contributing.es.texi \
%D%/contributing.fr.texi \
%D%/contributing.zh_CN.texi
# Bundle this file so that makeinfo finds it in out-of-source-tree builds.
BUILT_SOURCES += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@ -167,6 +167,15 @@ _guix_complete ()
else
_guix_complete_available_package "$word_at_point"
fi
elif _guix_is_command "install"
then
_guix_complete_available_package "$word_at_point"
elif _guix_is_command "remove"
then
_guix_complete_installed_package "$word_at_point"
elif _guix_is_command "upgrade"
then
_guix_complete_installed_package "$word_at_point"
elif _guix_is_command "build"
then
if _guix_is_dash_L

View file

@ -0,0 +1,20 @@
# -*- mode: snippet -*-
# name: guix-commit-message-rename-package
# key: rename
# condition: git-commit-mode
# --
gnu: ${1:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(beginning-of-buffer)
(when (search-forward "-(define-public " nil 'noerror)
(thing-at-point 'sexp 'no-properties)))`}: Rename package to ${2:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(beginning-of-buffer)
(when (search-forward "+(define-public " nil 'noerror)
(thing-at-point 'sexp 'no-properties)))`}.
* `(car (magit-staged-files))` ($1): Define in terms of
'deprecated-package'.
($2): New variable, formerly known as "$1".

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Joshua S. Grant <jgrant@parenthetical.io>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
@ -45,6 +45,7 @@ (define %public-modules
(gnu system file-systems)
(gnu bootloader)
(gnu bootloader grub)
(gnu system keyboard)
(gnu system pam)
(gnu system shadow) ; 'user-account'
(gnu system linux-initrd)

View file

@ -47,6 +47,7 @@ (define-module (gnu bootloader)
bootloader-configuration-menu-entries
bootloader-configuration-default-entry
bootloader-configuration-timeout
bootloader-configuration-keyboard-layout
bootloader-configuration-theme
bootloader-configuration-terminal-outputs
bootloader-configuration-terminal-inputs
@ -104,27 +105,27 @@ (define-record-type* <bootloader>
(define-record-type* <bootloader-configuration>
bootloader-configuration make-bootloader-configuration
bootloader-configuration?
(bootloader bootloader-configuration-bootloader) ; <bootloader>
(target bootloader-configuration-target ; string
(default #f))
(menu-entries bootloader-configuration-menu-entries ; list of <boot-parameters>
(default '()))
(default-entry bootloader-configuration-default-entry ; integer
(default 0))
(timeout bootloader-configuration-timeout ; seconds as integer
(default 5))
(theme bootloader-configuration-theme ; bootloader-specific theme
(default #f))
(terminal-outputs bootloader-configuration-terminal-outputs ; list of symbols
(default '(gfxterm)))
(terminal-inputs bootloader-configuration-terminal-inputs ; list of symbols
(default '()))
(serial-unit bootloader-configuration-serial-unit ; integer | #f
(default #f))
(serial-speed bootloader-configuration-serial-speed ; integer | #f
(default #f))
(additional-configuration bootloader-configuration-additional-configuration ; record
(default #f)))
(bootloader bootloader-configuration-bootloader) ;<bootloader>
(target bootloader-configuration-target ;string
(default #f))
(menu-entries bootloader-configuration-menu-entries ;list of <boot-parameters>
(default '()))
(default-entry bootloader-configuration-default-entry ;integer
(default 0))
(timeout bootloader-configuration-timeout ;seconds as integer
(default 5))
(keyboard-layout bootloader-configuration-keyboard-layout ;<keyboard-layout> | #f
(default #f))
(theme bootloader-configuration-theme ;bootloader-specific theme
(default #f))
(terminal-outputs bootloader-configuration-terminal-outputs ;list of symbols
(default '(gfxterm)))
(terminal-inputs bootloader-configuration-terminal-inputs ;list of symbols
(default '()))
(serial-unit bootloader-configuration-serial-unit ;integer | #f
(default #f))
(serial-speed bootloader-configuration-serial-speed ;integer | #f
(default #f)))
;;;

View file

@ -0,0 +1,107 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu bootloader depthcharge)
#:use-module (gnu bootloader extlinux)
#:use-module (gnu bootloader)
#:use-module (gnu packages bootloaders)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:export (depthcharge-bootloader))
(define (signed-kernel kernel kernel-arguments initrd)
(define builder
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 binary-ports)
(rnrs bytevectors))
(set-path-environment-variable "PATH" '("bin") (list #$dtc))
;; TODO: These files have to be writable, so we copy them.
;; This can probably be fixed by using a ".its" file, just
;; be careful not to break initrd loading.
(copy-file #$kernel "zImage")
(chmod "zImage" #o755)
(copy-file (string-append (dirname #$kernel) "/lib/dtbs/"
"rk3288-veyron-speedy.dtb")
"rk3288-veyron-speedy.dtb")
(chmod "rk3288-veyron-speedy.dtb" #o644)
(copy-file #$initrd "initrd")
(chmod "initrd" #o644)
(invoke (string-append #$u-boot-tools "/bin/mkimage")
"-D" "-I dts -O dtb -p 2048"
"-f" "auto"
"-A" "arm"
"-O" "linux"
"-T" "kernel"
"-C" "None"
"-d" "zImage"
"-a" "0"
"-b" "rk3288-veyron-speedy.dtb"
"-i" "initrd"
"image.itb")
(call-with-output-file "bootloader.bin"
(lambda (port)
(put-bytevector port (make-bytevector 512 0))))
(with-output-to-file "kernel-arguments"
(lambda ()
(display (string-join (list #$@kernel-arguments)))))
(invoke (string-append #$vboot-utils "/bin/vbutil_kernel")
"--pack" #$output
"--version" "1"
"--vmlinuz" "image.itb"
"--arch" "arm"
"--keyblock" (string-append #$vboot-utils
"/share/vboot-utils/devkeys/"
"kernel.keyblock")
"--signprivate" (string-append #$vboot-utils
"/share/vboot-utils/devkeys/"
"kernel_data_key.vbprivk")
"--config" "kernel-arguments"
"--bootloader" "bootloader.bin"))))
(computed-file "vmlinux.kpart" builder))
(define* (depthcharge-configuration-file config entries
#:key
(system (%current-system))
(old-entries '()))
(match entries
((entry)
(let ((kernel (menu-entry-linux entry))
(kernel-arguments (menu-entry-linux-arguments entry))
(initrd (menu-entry-initrd entry)))
;; XXX: Make this a symlink.
(signed-kernel kernel kernel-arguments initrd)))
(_ (error "Too many bootloader menu entries!"))))
(define install-depthcharge
#~(lambda (bootloader device mount-point)
(let ((kpart (string-append mount-point
"/boot/depthcharge/vmlinux.kpart")))
(write-file-on-device kpart (stat:size (stat kpart)) device 0))))
(define depthcharge-bootloader
(bootloader
(name 'depthcharge)
(package #f)
(installer install-depthcharge)
(configuration-file "/boot/depthcharge/vmlinux.kpart")
(configuration-file-generator depthcharge-configuration-file)))

View file

@ -27,8 +27,10 @@ (define-module (gnu bootloader grub)
#:use-module (gnu bootloader)
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
@ -219,6 +221,26 @@ (define image
;;; Configuration file.
;;;
(define* (keyboard-layout-file layout
#:key
(grub grub))
"Process the X keyboard layout description LAYOUT, a <keyboard-layout> record,
and return a file in the format for GRUB keymaps. LAYOUT must be present in
the 'share/X11/xkb/symbols/' directory of 'xkeyboard-config'."
(define builder
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
;; 'grub-kbdcomp' passes all its arguments but '-o' to 'ckbcomp'
;; (from the 'console-setup' package).
(invoke #$(file-append grub "/bin/grub-mklayout")
"-i" #+(keyboard-layout->console-keymap layout)
"-o" #$output))))
(computed-file (string-append "grub-keymap." (keyboard-layout-name layout))
builder))
(define (grub-setup-io config)
"Return GRUB commands to configure the input / output interfaces. The result
is a string that can be inserted in grub.cfg."
@ -330,6 +352,18 @@ (define sugar
#:system system
#:port #~port))
(define keyboard-layout-config
(let ((layout (bootloader-configuration-keyboard-layout config))
(grub (bootloader-package
(bootloader-configuration-bootloader config))))
#~(let ((keymap #$(and layout
(keyboard-layout-file layout #:grub grub))))
(when keymap
(format port "\
terminal_input at_keyboard
insmod keylayouts
keymap ~a~%" keymap)))))
(define builder
#~(call-with-output-file #$output
(lambda (port)
@ -338,6 +372,7 @@ (define builder
# will be lost upon reconfiguration.
")
#$sugar
#$keyboard-layout-config
(format port "
set default=~a
set timeout=~a~%"

View file

@ -106,7 +106,7 @@ (define u-boot-bootloader
(define u-boot-beaglebone-black-bootloader
(bootloader
(inherit u-boot-bootloader)
(package u-boot-beagle-bone-black)
(package u-boot-am335x-boneblack)
(installer install-beaglebone-black-u-boot)))
(define u-boot-allwinner-bootloader

View file

@ -483,9 +483,12 @@ (define (group-id name)
(real-name (if previous
(password-entry-real-name previous)
real-name))
(shell (if previous
(password-entry-shell previous)
shell)))
;; Do not reuse the shell of PREVIOUS since (1)
;; that could lead to confusion, and (2) the
;; shell might have been GC'd. See
;; <https://lists.gnu.org/archive/html/guix-devel/2019-04/msg00478.html>.
(shell shell))
result)
allocation))))
'()

View file

@ -575,6 +575,8 @@ (define (mount-flags->bit-mask flags)
(logior MS_NODEV (loop rest)))
(('no-exec rest ...)
(logior MS_NOEXEC (loop rest)))
(('no-atime rest ...)
(logior MS_NOATIME (loop rest)))
(()
0))))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
@ -437,6 +437,7 @@ (define (switch-root root)
(define* (boot-system #:key
(linux-modules '())
linux-module-directory
keymap-file
qemu-guest-networking?
volatile-root?
pre-mount
@ -444,7 +445,8 @@ (define* (boot-system #:key
(on-error 'debug))
"This procedure is meant to be called from an initrd. Boot a system by
first loading LINUX-MODULES (a list of module names) from
LINUX-MODULE-DIRECTORY, then setting up QEMU guest networking if
LINUX-MODULE-DIRECTORY, then installing KEYMAP-FILE with 'loadkeys' (if
KEYMAP-FILE is true), then setting up QEMU guest networking if
QEMU-GUEST-NETWORKING? is true, calling PRE-MOUNT, mounting the file systems
specified in MOUNTS, and finally booting into the new root if any. The initrd
supports kernel command-line options '--load', '--root', and '--repl'.
@ -491,6 +493,15 @@ (define (lookup-module name)
#:lookup-module lookup-module)
(map lookup-module linux-modules))
(when keymap-file
(let ((status (system* "loadkeys" keymap-file)))
(unless (zero? status)
;; Emit a warning rather than abort when we cannot load
;; KEYMAP-FILE.
(format (current-error-port)
"warning: 'loadkeys' exited with status ~a~%"
status))))
(when qemu-guest-networking?
(unless (configure-qemu-networking)
(display "network interface is DOWN\n")))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -168,9 +168,12 @@ (define* (mount* source target type #:optional (flags 0) options
(umount "real-root" MNT_DETACH)
(rmdir "real-root")))
(define (initialize-user-namespace pid host-uids)
(define* (initialize-user-namespace pid host-uids
#:key (guest-uid 0) (guest-gid 0))
"Configure the user namespace for PID. HOST-UIDS specifies the number of
host user identifiers to map into the user namespace."
host user identifiers to map into the user namespace. GUEST-UID and GUEST-GID
specify the first UID (respectively GID) that host UIDs (respectively GIDs)
map to in the namespace."
(define proc-dir
(string-append "/proc/" (number->string pid)))
@ -191,10 +194,10 @@ (define (scope file)
;; within the container.
(call-with-output-file (scope "/uid_map")
(lambda (port)
(format port "0 ~d ~d" uid host-uids)))
(format port "~d ~d ~d" guest-uid uid host-uids)))
(call-with-output-file (scope "/gid_map")
(lambda (port)
(format port "0 ~d ~d" gid host-uids)))))
(format port "~d ~d ~d" guest-gid gid host-uids)))))
(define (namespaces->bit-mask namespaces)
"Return the number suitable for the 'flags' argument of 'clone' that
@ -210,13 +213,17 @@ (define (namespaces->bit-mask namespaces)
('net CLONE_NEWNET))
namespaces)))
(define (run-container root mounts namespaces host-uids thunk)
(define* (run-container root mounts namespaces host-uids thunk
#:key (guest-uid 0) (guest-gid 0))
"Run THUNK in a new container process and return its PID. ROOT specifies
the root directory for the container. MOUNTS is a list of <file-system>
objects that specify file systems to mount inside the container. NAMESPACES
is a list of symbols that correspond to the possible Linux namespaces: mnt,
ipc, uts, user, and net. HOST-UIDS specifies the number of
host user identifiers to map into the user namespace."
ipc, uts, user, and net.
HOST-UIDS specifies the number of host user identifiers to map into the user
namespace. GUEST-UID and GUEST-GID specify the first UID (respectively GID)
that host UIDs (respectively GIDs) map to in the namespace."
;; The parent process must initialize the user namespace for the child
;; before it can boot. To negotiate this, a pipe is used such that the
;; child process blocks until the parent writes to it.
@ -254,7 +261,9 @@ (define (run-container root mounts namespaces host-uids thunk)
(pid
(close-port child)
(when (memq 'user namespaces)
(initialize-user-namespace pid host-uids))
(initialize-user-namespace pid host-uids
#:guest-uid guest-uid
#:guest-gid guest-gid))
;; TODO: Initialize cgroups.
(write 'ready parent)
(newline parent)
@ -271,23 +280,30 @@ (define (run-container root mounts namespaces host-uids thunk)
#f)))))))))
(define* (call-with-container mounts thunk #:key (namespaces %namespaces)
(host-uids 1))
(host-uids 1) (guest-uid 0) (guest-gid 0))
"Run THUNK in a new container process and return its exit status.
MOUNTS is a list of <file-system> objects that specify file systems to mount
inside the container. NAMESPACES is a list of symbols corresponding to
the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By
default, all namespaces are used. HOST-UIDS is the number of host user
identifiers to map into the container's user namespace, if there is one. By
default, only a single uid/gid, that of the current user, is mapped into the
container. The host user that creates the container is the root user (uid/gid
0) within the container. Only root can map more than a single uid/gid.
default, all namespaces are used.
HOST-UIDS is the number of host user identifiers to map into the container's
user namespace, if there is one. By default, only a single uid/gid, that of
the current user, is mapped into the container. The host user that creates
the container is the root user (uid/gid 0) within the container. Only root
can map more than a single uid/gid.
GUEST-UID and GUEST-GID specify the first UID (respectively GID) that host
UIDs (respectively GIDs) map to in the namespace.
Note that if THUNK needs to load any additional Guile modules, the relevant
module files must be present in one of the mappings in MOUNTS and the Guile
load path must be adjusted as needed."
(call-with-temporary-directory
(lambda (root)
(let ((pid (run-container root mounts namespaces host-uids thunk)))
(let ((pid (run-container root mounts namespaces host-uids thunk
#:guest-uid guest-uid
#:guest-gid guest-gid)))
;; Catch SIGINT and kill the container process.
(sigaction SIGINT
(lambda (signum)

View file

@ -37,6 +37,7 @@ (define-module (gnu build vm)
#:use-module (ice-9 popen)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:export (qemu-command
load-in-linux-vm
@ -144,6 +145,7 @@ (define arch-specific-flags
(_ #f))
(apply invoke qemu "-nographic" "-no-reboot"
"-smp" (number->string (parallel-job-count))
"-m" (number->string memory-size)
"-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
"-device" "virtio-rng-pci,rng=guixsd-vm-rng"
@ -458,6 +460,29 @@ (define items
closures)
(register-bootcfg-root "/tmp/root" config-file))
;; 'grub-mkrescue' calls out to mtools programs to create 'efi.img', a FAT
;; file system image, and mtools honors SOURCE_DATE_EPOCH for the mtime of
;; those files. The epoch for FAT is Jan. 1st 1980, not 1970, so choose
;; that.
(setenv "SOURCE_DATE_EPOCH"
(number->string
(time-second
(date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
;; Our patched 'grub-mkrescue' honors this environment variable and passes
;; it to 'mformat', which makes it the serial number of 'efi.img'. This
;; allows for deterministic builds.
(setenv "GRUB_FAT_SERIAL_NUMBER"
(number->string (if volume-uuid
;; On 32-bit systems the 2nd argument must be
;; lower than 2^32.
(string-hash (iso9660-uuid->string volume-uuid)
(- (expt 2 32) 1))
#x77777777)
16))
(let ((pipe
(apply open-pipe* OPEN_WRITE
grub-mkrescue "-o" target
@ -472,9 +497,8 @@ (define items
"-path-list" "-"
"--"
;; XXX: Add padding to avoid I/O errors on i686:
;; <https://bugs.gnu.org/33639>.
"-padding" "10m"
;; Set all timestamps to 1.
"-volume_date" "all_file_dates" "=1"
"-volid" (string-upcase volume-id)
(if volume-uuid

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -42,13 +43,17 @@ (define-module (gnu installer)
#:use-module (srfi srfi-1)
#:export (installer-program))
(define not-config?
;; Select (guix …) and (gnu …) modules, except (guix config).
(define module-to-import?
;; Return true for modules that should be imported. For (gnu system …) and
;; (gnu packages …) modules, we simply add the whole 'guix' package via
;; 'with-extensions' (to avoid having to rebuild it all), which is why these
;; modules are excluded here.
(match-lambda
(('guix 'config) #f)
(('guix rest ...) #t)
(('gnu rest ...) #t)
(rest #f)))
(('gnu 'installer _ ...) #t)
(('gnu 'build _ ...) #t)
(('guix 'build _ ...) #t)
(_ #f)))
(define* (build-compiled-file name locale-builder)
"Return a file-like object that evalutes the gexp LOCALE-BUILDER and store
@ -86,9 +91,17 @@ (define builder
(define apply-locale
;; Install the specified locale.
#~(lambda (locale-name)
(false-if-exception
(setlocale LC_ALL locale-name))))
(with-imported-modules (source-module-closure '((gnu services herd)))
#~(lambda (locale)
(false-if-exception
(setlocale LC_ALL locale))
;; Restart the documentation viewer so it displays the manual in
;; language that corresponds to LOCALE.
(with-error-to-port (%make-void-port "w")
(lambda ()
(stop-service 'term-tty2)
(start-service 'term-tty2 (list locale)))))))
(define* (compute-locale-step #:key
locales-name
@ -156,7 +169,8 @@ (define* (compute-keymap-step)
(lambda (models layouts)
((installer-keymap-page current-installer)
layouts)))))
(#$apply-keymap result))))
(#$apply-keymap result)
result)))
(define (installer-steps)
(let ((locale-step (compute-locale-step
@ -168,14 +182,6 @@ (define (installer-steps)
"/share/zoneinfo/zone.tab")))
#~(lambda (current-installer)
(list
;; Welcome the user and ask him to choose between manual
;; installation and graphical install.
(installer-step
(id 'welcome)
(compute (lambda _
((installer-welcome-page current-installer)
#$(local-file "installer/aux-files/logo.txt")))))
;; Ask the user to choose a locale among those supported by
;; the glibc. Install the selected locale right away, so that
;; the user may benefit from any available translation for the
@ -187,6 +193,14 @@ (define (installer-steps)
(#$locale-step current-installer)))
(configuration-formatter locale->configuration))
;; Welcome the user and ask them to choose between manual
;; installation and graphical install.
(installer-step
(id 'welcome)
(compute (lambda _
((installer-welcome-page current-installer)
#$(local-file "installer/aux-files/logo.txt")))))
;; Ask the user to select a timezone under glibc format.
(installer-step
(id 'timezone)
@ -208,7 +222,8 @@ (define (installer-steps)
(id 'keymap)
(description (G_ "Keyboard mapping selection"))
(compute (lambda _
(#$keymap-step current-installer))))
(#$keymap-step current-installer)))
(configuration-formatter keyboard-layout->configuration))
;; Run a partitioning tool allowing the user to modify
;; partition tables, partitions and their mount points.
@ -249,8 +264,7 @@ (define (installer-steps)
(description (G_ "Services"))
(compute (lambda _
((installer-services-page current-installer))))
(configuration-formatter
desktop-environments->configuration))
(configuration-formatter system-services->configuration))
(installer-step
(id 'final)
@ -293,13 +307,16 @@ (define modules
"gnu/installer"))
(define installer-builder
;; Note: Include GUIX as an extension to get all the (gnu system …), (gnu
;; packages …), etc. modules.
(with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures
guile-json)
guile-json guile-git guix)
(with-imported-modules `(,@(source-module-closure
`(,@modules
(gnu services herd)
(guix build utils))
#:select? not-config?)
#:select? module-to-import?)
((guix config) => ,(make-config.scm)))
#~(begin
(use-modules (gnu installer record)
@ -313,6 +330,9 @@ (define installer-builder
(gnu installer timezone)
(gnu installer user)
(gnu installer newt)
((gnu installer newt keymap)
#:select (keyboard-layout->configuration))
(gnu services herd)
(guix i18n)
(guix build utils)
(ice-9 match))
@ -324,16 +344,40 @@ (define installer-builder
;; Add some binaries used by the installers to PATH.
#$set-installer-path
;; Arrange for language and territory name translations to be
;; available. We need them at run time, not just compile time,
;; because some territories have several corresponding languages
;; (e.g., "French" is always displayed as "français", but
;; "Belgium" could be translated to Dutch, French, or German.)
(bindtextdomain "iso_639-3" ;languages
#+(file-append iso-codes "/share/locale"))
(bindtextdomain "iso_3166-1" ;territories
#+(file-append iso-codes "/share/locale"))
;; Likewise for XKB keyboard layout names.
(bindtextdomain "xkeyboard-config"
#+(file-append xkeyboard-config "/share/locale"))
(let* ((current-installer newt-installer)
(steps (#$steps current-installer)))
((installer-init current-installer))
(catch #t
(lambda ()
(run-installer-steps
#:rewind-strategy 'menu
#:menu-proc (installer-menu-page current-installer)
#:steps steps))
(define results
(run-installer-steps
#:rewind-strategy 'menu
#:menu-proc (installer-menu-page current-installer)
#:steps steps))
(match (result-step results 'final)
('success
;; We did it! Let's reboot!
(sync)
(stop-service 'root))
(_ ;installation failed
;; TODO: Honor the result of 'run-install-failed-page'.
#f)))
(const #f)
(lambda (key . args)
(let ((error-file "/tmp/last-installer-error"))
@ -356,4 +400,5 @@ (define installer-builder
;; some reason, unicode support is not correctly installed
;; when calling this in 'installer-builder'.
(setenv "LANG" "en_US.UTF-8")
(system #$(program-file "installer-real" installer-builder)))))
(execl #$(program-file "installer-real" installer-builder)
"installer-real"))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,17 +21,98 @@ (define-module (gnu installer final)
#:use-module (gnu installer newt page)
#:use-module (gnu installer steps)
#:use-module (gnu installer utils)
#:use-module (gnu installer user)
#:use-module (gnu services herd)
#:use-module (guix build utils)
#:use-module (gnu build accounts)
#:use-module ((gnu system shadow) #:prefix sys:)
#:use-module (rnrs io ports)
#:export (install-system))
(define (install-system)
"Start COW-STORE service on target directory and launch guix install command
in a subshell."
(define %seed
(seed->random-state
(logxor (getpid) (car (gettimeofday)))))
(define (integer->alphanumeric-char n)
"Map N, an integer in the [0..62] range, to an alphanumeric character."
(cond ((< n 10)
(integer->char (+ (char->integer #\0) n)))
((< n 36)
(integer->char (+ (char->integer #\A) (- n 10))))
((< n 62)
(integer->char (+ (char->integer #\a) (- n 36))))
(else
(error "integer out of bounds" n))))
(define (random-string len)
"Compute a random string of size LEN where each character is alphanumeric."
(let loop ((chars '())
(len len))
(if (zero? len)
(list->string chars)
(let ((n (random 62 %seed)))
(loop (cons (integer->alphanumeric-char n) chars)
(- len 1))))))
(define (create-user-database users root)
"Create /etc/passwd, /etc/shadow, and /etc/group under ROOT for the given
USERS."
(define etc
(string-append root "/etc"))
(define (salt)
;; "$6" gives us a SHA512 password hash; the random string must be taken
;; from the './0-9A-Za-z' alphabet (info "(libc) Passphrase Storage").
(string-append "$6$" (random-string 10)))
(define users*
(map (lambda (user)
(define root?
(string=? "root" (user-name user)))
(sys:user-account (name (user-name user))
(comment (user-real-name user))
(group "users")
(uid (if root? 0 #f))
(home-directory
(user-home-directory user))
(password (crypt (user-password user)
(salt)))
;; We need a string here, not a file-like, hence
;; this choice.
(shell
"/run/current-system/profile/bin/bash")))
users))
(define-values (group password shadow)
(user+group-databases users* sys:%base-groups
#:current-passwd '()
#:current-groups '()
#:current-shadow '()))
(mkdir-p etc)
(write-group group (string-append etc "/group"))
(write-passwd password (string-append etc "/passwd"))
(write-shadow shadow (string-append etc "/shadow")))
(define* (install-system locale #:key (users '()))
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
Start COW-STORE service on target directory and launch guix install command in
a subshell. LOCALE must be the locale name under which that command will run,
or #f. Return #t on success and #f on failure."
(let ((install-command
(format #f "guix system init ~a ~a"
(%installer-configuration-file)
(%installer-target-dir))))
(mkdir-p (%installer-target-dir))
;; We want to initialize user passwords but we don't want to store them in
;; the config file since the password hashes would end up world-readable
;; in the store. Thus, create /etc/shadow & co. here such that, on the
;; first boot, the activation snippet that creates accounts will reuse the
;; passwords that we've put in there.
(create-user-database users (%installer-target-dir))
(start-service 'cow-store (list (%installer-target-dir)))
(false-if-exception (run-shell-command install-command))))
(run-shell-command install-command #:locale locale)))

View file

@ -36,6 +36,7 @@ (define-module (gnu installer keymap)
make-x11-keymap-layout
x11-keymap-layout?
x11-keymap-layout-name
x11-keymap-layout-synopsis
x11-keymap-layout-description
x11-keymap-layout-variants
@ -60,7 +61,8 @@ (define-record-type* <x11-keymap-layout>
x11-keymap-layout make-x11-keymap-layout
x11-keymap-layout?
(name x11-keymap-layout-name) ;string
(description x11-keymap-layout-description) ;string
(synopsis x11-keymap-layout-synopsis) ;string (e.g., "en")
(description x11-keymap-layout-description) ;string (a whole phrase)
(variants x11-keymap-layout-variants)) ;list of <x11-keymap-variant>
(define-record-type* <x11-keymap-variant>
@ -117,6 +119,8 @@ (define (layout l)
(variantList ,[variant -> v] ...))
(x11-keymap-layout
(name name)
(synopsis (car
(assoc-ref rest-layout 'shortDescription)))
(description (car
(assoc-ref rest-layout 'description)))
(variants (list v ...)))]
@ -126,6 +130,8 @@ (define (layout l)
. ,rest-layout))
(x11-keymap-layout
(name name)
(synopsis (car
(assoc-ref rest-layout 'shortDescription)))
(description (car
(assoc-ref rest-layout 'description)))
(variants '()))]))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -69,6 +70,24 @@ (define (locale-string->locale string)
(codeset . ,(match:substring matches 5))
(modifier . ,(match:substring matches 7)))))
(define (normalize-codeset codeset)
"Compute the \"normalized\" variant of CODESET."
;; info "(libc) Using gettextized software", for the algorithm used to
;; compute the normalized codeset.
(letrec-syntax ((-> (syntax-rules ()
((_ proc value)
(proc value))
((_ proc rest ...)
(proc (-> rest ...))))))
(-> (lambda (str)
(if (string-every char-set:digit str)
(string-append "iso" str)
str))
string-downcase
(lambda (str)
(string-filter char-set:letter+digit str))
codeset)))
(define (locale->locale-string locale)
"Reverse operation of locale-string->locale."
(let ((language (locale-language locale))
@ -81,7 +100,7 @@ (define (locale->locale-string locale)
`("_" ,territory)
'())
,@(if codeset
`("." ,codeset)
`("." ,(normalize-codeset codeset))
'())
,@(if modifier
`("@" ,modifier)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,15 +30,24 @@ (define-module (gnu installer newt final)
#:use-module (newt)
#:export (run-final-page))
(define* (strip-prefix file #:optional (prefix (%installer-target-dir)))
"Strip PREFIX from FILE, if PREFIX actually is a prefix of FILE."
(if (string-prefix? prefix file)
(string-drop file (string-length prefix))
file))
(define (run-config-display-page)
(let ((width (%configuration-file-width))
(height (nearest-exact-integer
(/ (screen-rows) 2))))
(run-file-textbox-page
#:info-text (G_ "We're now ready to proceed with the installation! \
#:info-text (format #f (G_ "\
We're now ready to proceed with the installation! \
A system configuration file has been generated, it is displayed below. \
This file will be available as '~a' on the installed system. \
The new system will be created from this file once you've pressed OK. \
This will take a few minutes.")
(strip-prefix (%installer-configuration-file)))
#:title (G_ "Configuration file")
#:file (%installer-configuration-file)
#:info-textbox-width width
@ -55,7 +65,10 @@ (define (run-install-success-page)
(G_ "Reboot")
(G_ "Congratulations! Installation is now complete. \
You may remove the device containing the installation image and \
press the button to reboot.")))
press the button to reboot."))
;; Return success so that the installer happily reboots.
'success)
(define (run-install-failed-page)
(choice-window
@ -65,22 +78,25 @@ (define (run-install-failed-page)
(G_ "The final system installation step failed. You can retry the \
last step, or restart the installer.")))
(define (run-install-shell)
(define* (run-install-shell locale
#:key (users '()))
(clear-screen)
(newt-suspend)
(let ((install-ok? (install-system)))
(let ((install-ok? (install-system locale #:users users)))
(newt-resume)
install-ok?))
(define (run-final-page result prev-steps)
(let* ((configuration (format-configuration prev-steps result))
(let* ((configuration (format-configuration prev-steps result))
(user-partitions (result-step result 'partition))
(locale (result-step result 'locale))
(users (result-step result 'user))
(install-ok?
(with-mounted-partitions
user-partitions
(configuration->file configuration)
(run-config-display-page)
(run-install-shell))))
(run-install-shell locale #:users users))))
(if install-ok?
(run-install-success-page)
(run-install-failed-page))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,7 +28,10 @@ (define-module (gnu installer newt keymap)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:export (run-keymap-page))
#:use-module (ice-9 i18n)
#:use-module (ice-9 match)
#:export (run-keymap-page
keyboard-layout->configuration))
(define (run-layout-page layouts layout->text)
(let ((title (G_ "Layout")))
@ -61,14 +65,29 @@ (define (run-variant-page variants variant->text)
(define (sort-layouts layouts)
"Sort LAYOUTS list by putting the US layout ahead and return it."
(define (layout<? layout1 layout2)
(let ((text1 (x11-keymap-layout-description layout1))
(text2 (x11-keymap-layout-description layout2)))
;; XXX: We're calling 'gettext' more than once per item.
(string-locale<? (gettext text1 "xkeyboard-config")
(gettext text2 "xkeyboard-config"))))
(define preferred
;; Two-letter language tag for the preferred keyboard layout.
(or (getenv "LANGUAGE") "us"))
(call-with-values
(lambda ()
(partition
(lambda (layout)
(let ((name (x11-keymap-layout-name layout)))
(string=? name "us")))
;; The 'synopsis' field is usually a language code (e.g., "en")
;; while the 'name' field is a country code (e.g., "us").
(or (string=? (x11-keymap-layout-name layout) preferred)
(string=? (x11-keymap-layout-synopsis layout) preferred)))
layouts))
(cut append <> <>)))
(lambda (main others)
(append (sort main layout<?)
(sort others layout<?)))))
(define (sort-variants variants)
"Sort VARIANTS list by putting the international variant ahead and return it."
@ -94,7 +113,8 @@ (define keymap-steps
(run-layout-page
(sort-layouts layouts)
(lambda (layout)
(x11-keymap-layout-description layout))))))
(gettext (x11-keymap-layout-description layout)
"xkeyboard-config"))))))
;; Propose the user to select a variant among those supported by the
;; previously selected layout.
(installer-step
@ -108,15 +128,24 @@ (define keymap-steps
(run-variant-page
(sort-variants variants)
(lambda (variant)
(x11-keymap-variant-description
variant))))))))))
(gettext (x11-keymap-variant-description variant)
"xkeyboard-config"))))))))))
(define (format-result result)
(let ((layout (x11-keymap-layout-name
(result-step result 'layout)))
(variant (and=> (result-step result 'variant)
(lambda (variant)
(x11-keymap-variant-name variant)))))
(gettext (x11-keymap-variant-name variant)
"xkeyboard-config")))))
(list layout (or variant ""))))
(format-result
(run-installer-steps #:steps keymap-steps)))
(define (keyboard-layout->configuration keymap)
"Return the operating system configuration snippet to install KEYMAP."
(match keymap
((name "")
`((keyboard-layout (keyboard-layout ,name))))
((name variant)
`((keyboard-layout (keyboard-layout ,name ,variant))))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,17 +31,11 @@ (define-module (gnu installer newt locale)
#:export (run-locale-page))
(define (run-language-page languages language->text)
(let ((title (G_ "Locale language")))
(define result
(run-listbox-selection-page
#:title title
#:info-text (G_ "Choose the locale's language to be used for the \
installation process. A locale is a regional variant of your language \
encompassing number, date and currency format, among other details.
Based on the language you choose, you will possibly be asked to \
select a locale's territory, codeset and modifier in the next \
steps. The locale will also be used as the default one for the \
installed system.")
#:title (G_ "Locale language")
#:info-text (G_ "Choose the language to use for the \
installation process and for the installed system.")
#:info-textbox-width 70
#:listbox-items languages
#:listbox-item->text language->text
@ -50,14 +45,19 @@ (define (run-language-page languages language->text)
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(&installer-step-abort))))))
;; Immediately install the chosen language so that the territory page that
;; comes after (optionally) is displayed in the chosen language.
(setenv "LANGUAGE" result)
result)
(define (run-territory-page territories territory->text)
(let ((title (G_ "Locale location")))
(run-listbox-selection-page
#:title title
#:info-text (G_ "Choose your locale's location. This is a shortlist of \
locations based on the language you selected.")
#:info-text (G_ "Choose a territory for this language.")
#:listbox-items territories
#:listbox-item->text territory->text
#:button-text (G_ "Back")
@ -71,8 +71,7 @@ (define (run-codeset-page codesets)
(let ((title (G_ "Locale codeset")))
(run-listbox-selection-page
#:title title
#:info-text (G_ "Choose your locale's codeset. If UTF-8 is available, \
it should be preferred.")
#:info-text (G_ "Choose the locale encoding.")
#:listbox-items codesets
#:listbox-item->text identity
#:listbox-default-item "UTF-8"
@ -163,7 +162,13 @@ (define locale-steps
(run-language-page
(sort-languages
(delete-duplicates (map locale-language supported-locales)))
(cut language-code->language-name iso639-languages <>)))))
(lambda (language)
(let ((english (language-code->language-name iso639-languages
language)))
(setenv "LANGUAGE" language)
(let ((native (gettext english "iso_639-3")))
(unsetenv "LANGUAGE")
native)))))))
(installer-step
(id 'territory)
(compute
@ -177,10 +182,11 @@ (define locale-steps
;; supported by the previously selected language.
(run-territory-page
(delete-duplicates (map locale-territory locales))
(lambda (territory-code)
(if territory-code
(territory-code->territory-name iso3166-territories
territory-code)
(lambda (territory)
(if territory
(let ((english (territory-code->territory-name
iso3166-territories territory)))
(gettext english "iso_3166-1"))
(G_ "No location"))))))))
(installer-step
(id 'codeset)
@ -191,9 +197,11 @@ (define locale-steps
;; narrow down the search of a locale.
(break-on-locale-found locales)
;; Otherwise, ask for a codeset.
(run-codeset-page
(delete-duplicates (map locale-codeset locales)))))))
;; Otherwise, choose a codeset.
(let ((codesets (delete-duplicates (map locale-codeset locales))))
(if (member "UTF-8" codesets)
"UTF-8" ;don't even ask
(run-codeset-page codesets)))))))
(installer-step
(id 'modifier)
(compute

View file

@ -59,7 +59,7 @@ (define (technology-items)
(G_ "Internet access")
(G_ "Continue")
(G_ "Exit")
(G_ "The install process requires an internet access, but no \
(G_ "The install process requires Internet access but no \
network device were found. Do you want to continue anyway?"))
((1) (raise
(condition
@ -68,7 +68,7 @@ (define (technology-items)
(condition
(&installer-step-abort)))))
(run-listbox-selection-page
#:info-text (G_ "The install process requires an internet access.\
#:info-text (G_ "The install process requires Internet access.\
Please select a network device.")
#:title (G_ "Internet access")
#:listbox-items items
@ -93,7 +93,8 @@ (define (wait-technology-powered technology)
(full-value 5))
(run-scale-page
#:title (G_ "Powering technology")
#:info-text (format #f "Waiting for technology ~a to be powered." name)
#:info-text (format #f (G_ "Waiting for technology ~a to be powered.")
name)
#:scale-full-value full-value
#:scale-update-proc
(lambda (value)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -20,6 +21,7 @@ (define-module (gnu installer newt page)
#:use-module (gnu installer utils)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
#:use-module (ice-9 i18n)
#:use-module (ice-9 match)
#:use-module (ice-9 receive)
#:use-module (srfi srfi-1)
@ -29,6 +31,7 @@ (define-module (gnu installer newt page)
draw-connecting-page
run-input-page
run-error-page
run-confirmation-page
run-listbox-selection-page
run-scale-page
run-checkbox-tree-page
@ -72,17 +75,20 @@ (define* (run-input-page text title
#:key
(allow-empty-input? #f)
(default-text #f)
(input-field-width 40))
(input-field-width 40)
(input-flags 0))
"Run a page to prompt user for an input. The given TEXT will be displayed
above the input field. The page title is set to TITLE. Unless
allow-empty-input? is set to #t, an error page will be displayed if the user
enters an empty input."
enters an empty input. INPUT-FLAGS is a bitwise-or'd set of flags for the
input box, such as FLAG-PASSWORD."
(let* ((text-box
(make-reflowed-textbox -1 -1 text
input-field-width
#:flags FLAG-BORDER))
(grid (make-grid 1 3))
(input-entry (make-entry -1 -1 20))
(input-entry (make-entry -1 -1 20
#:flags input-flags))
(ok-button (make-button -1 -1 (G_ "OK")))
(form (make-form)))
@ -141,6 +147,42 @@ (define (run-error-page text title)
(newt-set-color COLORSET-ROOT "white" "blue")
(destroy-form-and-pop form)))
(define* (run-confirmation-page text title
#:key (exit-button-procedure (const #f)))
"Run a page to inform the user of an error. The page contains the given TEXT
to explain the error and an \"OK\" button to acknowledge the error. The title
of the page is set to TITLE."
(let* ((text-box
(make-reflowed-textbox -1 -1 text 40
#:flags FLAG-BORDER))
(ok-button (make-button -1 -1 (G_ "Continue")))
(exit-button (make-button -1 -1 (G_ "Exit")))
(grid (vertically-stacked-grid
GRID-ELEMENT-COMPONENT text-box
GRID-ELEMENT-SUBGRID
(horizontal-stacked-grid
GRID-ELEMENT-COMPONENT ok-button
GRID-ELEMENT-COMPONENT exit-button)))
(form (make-form)))
(add-form-to-grid grid form #t)
(make-wrapped-grid-window grid title)
(receive (exit-reason argument)
(run-form form)
(dynamic-wind
(const #t)
(lambda ()
(case exit-reason
((exit-component)
(cond
((components=? argument ok-button)
#t)
((components=? argument exit-button)
(exit-button-procedure))))))
(lambda ()
(destroy-form-and-pop form))))))
(define* (run-listbox-selection-page #:key
info-text
title
@ -185,7 +227,7 @@ (define* (run-listbox-selection-page #:key
selected items will be returned.
If SORT-LISTBOX-ITEMS? is set to #t, the listbox items are sorted using
'string<=' procedure (after being converted to text).
'string-locale<?' procedure (after being converted to text).
If ALLOW-DELETE? is #t, the form will return if the <DELETE> key is pressed,
otherwise nothing will happen.
@ -211,7 +253,7 @@ (define (fill-listbox listbox items)
items))
(define (sort-listbox-items listbox-items)
"Return LISTBOX-ITEMS sorted using the 'string<=' procedure on the text
"Return LISTBOX-ITEMS sorted using the 'string-locale<?' procedure on the text
corresponding to each item in the list."
(let* ((items (map (lambda (item)
(cons item (listbox-item->text item)))
@ -220,7 +262,7 @@ (define (sort-listbox-items listbox-items)
(sort items (lambda (a b)
(let ((text-a (cdr a))
(text-b (cdr b)))
(string<= text-a text-b))))))
(string-locale<? text-a text-b))))))
(map car sorted-items)))
;; Store the last selected listbox item's key.
@ -395,10 +437,14 @@ (define* (run-scale-page #:key
(lambda ()
(destroy-form-and-pop form)))))
(define %none-selected
(circular-list #f))
(define* (run-checkbox-tree-page #:key
info-text
title
items
(selection %none-selected)
item->text
(info-textbox-width 50)
(checkbox-tree-height 10)
@ -411,7 +457,8 @@ (define* (run-checkbox-tree-page #:key
bottom, an informative text set to INFO-TEXT, the checkbox list and two
buttons, 'Ok' and 'Exit'. The page title's is set to TITLE. ITEMS are
converted to text using ITEM->TEXT before being displayed in the checkbox
list.
list. SELECTION is a list of Booleans of the same length as ITEMS that
specifies which items are initially checked.
INFO-TEXTBOX-WIDTH is the width of the textbox where INFO-TEXT will be
displayed. CHECKBOX-TREE-HEIGHT is the height of the checkbox list.
@ -423,12 +470,15 @@ (define* (run-checkbox-tree-page #:key
This procedure returns the list of checked items in the checkbox list among
ITEMS when 'Ok' is pressed."
(define (fill-checkbox-tree checkbox-tree items)
(map
(lambda (item)
(let* ((item-text (item->text item))
(key (add-entry-to-checkboxtree checkbox-tree item-text 0)))
(cons key item)))
items))
(map (lambda (item selected?)
(let* ((item-text (item->text item))
(key (add-entry-to-checkboxtree checkbox-tree item-text
(if selected?
FLAG-SELECTED
0))))
(cons key item)))
items
selection))
(let* ((checkbox-tree
(make-checkboxtree -1 -1

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -41,8 +42,8 @@ (define (button-exit-action)
(define (run-scheme-page)
"Run a page asking the user for a partitioning scheme."
(let* ((items
'((root . "Everything is one partition")
(root-home . "Separate /home partition")))
`((root . ,(G_ "Everything is one partition"))
(root-home . ,(G_ "Separate /home partition"))))
(result (run-listbox-selection-page
#:info-text (G_ "Please select a partitioning scheme.")
#:title (G_ "Partition scheme")
@ -53,7 +54,12 @@ (define (run-scheme-page)
(car result)))
(define (draw-formatting-page)
"Draw a page to indicate partitions are being formated."
"Draw a page asking for confirmation, and then indicating that partitions
are being formatted."
(run-confirmation-page (G_ "We are about to format your hard disk. All \
its data will be lost. Do you wish to continue?")
(G_ "Format disk?")
#:exit-button-procedure button-exit-action)
(draw-info-page
(format #f (G_ "Partition formatting is in progress, please wait."))
(G_ "Preparing partitions")))
@ -146,6 +152,10 @@ (define (prompt-luks-passwords user-partitions)
(file-name (user-partition-file-name user-part))
(password-page
(lambda ()
;; Note: Don't use FLAG-PASSWORD here because this is the
;; first bit of text that the user types in, so it's
;; probably safer if they can see that the keyboard layout
;; they chose is in effect.
(run-input-page
(format #f (G_ "Please enter the password for the \
encryption of partition ~a (label: ~a).") file-name crypt-label)
@ -155,7 +165,8 @@ (define (prompt-luks-passwords user-partitions)
(run-input-page
(format #f (G_ "Please confirm the password for the \
encryption of partition ~a (label: ~a).") file-name crypt-label)
(G_ "Password confirmation required")))))
(G_ "Password confirmation required")
#:input-flags FLAG-PASSWORD))))
(if crypt-label
(let loop ()
(let ((password (password-page))
@ -418,10 +429,10 @@ (define (button-action)
(run-listbox-selection-page
#:info-text
(if creation?
(G_ (format #f "Creating ~a partition starting at ~a of ~a."
type-str start file-name))
(G_ (format #f "You are currently editing partition ~a."
number-str)))
(format #f (G_ "Creating ~a partition starting at ~a of ~a.")
type-str start file-name)
(format #f (G_ "You are currently editing partition ~a.")
number-str))
#:title (if creation?
(G_ "Partition creation")
(G_ "Partition edit"))
@ -662,7 +673,8 @@ (define (hotkey-action key listbox-item)
#:title (if guided?
(G_ "Guided partitioning")
(G_ "Manual partitioning"))
#:info-textbox-width 70
#:info-textbox-width 76 ;we need a lot of room for INFO-TEXT
#:listbox-height 12
#:listbox-items (disk-items)
#:listbox-item->text cdr
#:sort-listbox-items? #f
@ -713,9 +725,9 @@ (define (run-partioning-page)
"Run a page asking the user for a partitioning method."
(define (run-page devices)
(let* ((items
'((entire . "Guided - using the entire disk")
(entire-encrypted . "Guided - using the entire disk with encryption")
(manual . "Manual")))
`((entire . ,(G_ "Guided - using the entire disk"))
(entire-encrypted . ,(G_ "Guided - using the entire disk with encryption"))
(manual . ,(G_ "Manual"))))
(result (run-listbox-selection-page
#:info-text (G_ "Please select a partitioning method.")
#:title (G_ "Partitioning method")

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -30,19 +31,70 @@ (define-module (gnu installer newt services)
(define (run-desktop-environments-cbt-page)
"Run a page allowing the user to choose between various desktop
environments."
(run-checkbox-tree-page
#:info-text (G_ "Please select the desktop(s) environment(s) you wish to \
install. If you select multiple desktops environments, we will be able to \
choose the one to use on the log-in screen with F1.")
#:title (G_ "Desktop environment")
#:items %desktop-environments
#:item->text desktop-environment-name
#:checkbox-tree-height 5
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort))))))
(let ((items (filter desktop-system-service? %system-services)))
(run-checkbox-tree-page
#:info-text (G_ "Please select the desktop(s) environment(s) you wish to \
install. If you select multiple desktops environments, you will be able to \
choose the one to use on the log-in screen.")
#:title (G_ "Desktop environment")
#:items items
#:selection (map system-service-recommended? items)
#:item->text system-service-name ;no i18n for DE names
#:checkbox-tree-height 8
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(define (run-networking-cbt-page)
"Run a page allowing the user to select networking services."
(let ((items (filter (lambda (service)
(eq? 'networking (system-service-type service)))
%system-services)))
(run-checkbox-tree-page
#:info-text (G_ "You can now select networking services to run on your \
system.")
#:title (G_ "Network service")
#:items items
#:selection (map system-service-recommended? items)
#:item->text (compose G_ system-service-name)
#:checkbox-tree-height 5
#:exit-button-callback-procedure
(lambda ()
(raise
(condition
(&installer-step-abort)))))))
(define (run-network-management-page)
"Run a page to select among several network management methods."
(let ((title (G_ "Network management")))
(run-listbox-selection-page
#:title title
#:info-text (G_ "Choose the method to manage network connections.
We recommend NetworkManager or Connman for a WiFi-capable laptop; the DHCP \
client may be enough for a server.")
#:info-textbox-width 70
#:listbox-items (filter (lambda (service)
(eq? 'network-management
(system-service-type service)))
%system-services)
#:listbox-item->text (compose G_ system-service-name)
#:sort-listbox-items? #f
#:button-text (G_ "Exit")
#:button-callback-procedure
(lambda _
(raise
(condition
(&installer-step-abort)))))))
(define (run-services-page)
(run-desktop-environments-cbt-page))
(let ((desktop (run-desktop-environments-cbt-page)))
;; When the user did not select any desktop services, and thus didn't get
;; '%desktop-services', offer network management services.
(append desktop
(run-networking-cbt-page)
(if (null? desktop)
(list (run-network-management-page))
'()))))

View file

@ -50,12 +50,15 @@ (define (all-but-last list)
(define (run-page timezone-tree)
(define (loop path)
;; XXX: Translation of time zones isn't perfect here because the
;; "iso_3166-1" domain contains translation for "territories" (like
;; "Antarctic") but not for continents (like "Africa").
(let ((timezones (locate-children timezone-tree path)))
(run-listbox-selection-page
#:title (G_ "Timezone")
#:info-text (G_ "Please select a timezone.")
#:listbox-items timezones
#:listbox-item->text identity
#:listbox-item->text (cut gettext <> "iso_3166-1")
#:button-text (if (null? path)
(G_ "Exit")
(G_ "Back"))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,18 +29,31 @@ (define-module (gnu installer newt user)
#:use-module (srfi srfi-26)
#:export (run-user-page))
(define (run-user-add-page)
(define* (run-user-add-page #:key (name "") (real-name "")
(home-directory ""))
"Run a form to enter the user name, home directory, and password. Use NAME,
REAL-NAME, and HOME-DIRECTORY as the initial values in the form."
(define (pad-label label)
(string-pad-right label 20))
(let* ((label-name
(make-label -1 -1 (pad-label (G_ "Name"))))
(label-real-name
(make-label -1 -1 (pad-label (G_ "Real name"))))
(label-home-directory
(make-label -1 -1 (pad-label (G_ "Home directory"))))
(label-password
(make-label -1 -1 (pad-label (G_ "Password"))))
(entry-width 30)
(entry-name (make-entry -1 -1 entry-width))
(entry-home-directory (make-entry -1 -1 entry-width))
(entry-grid (make-grid 2 2))
(entry-name (make-entry -1 -1 entry-width
#:initial-value name))
(entry-real-name (make-entry -1 -1 entry-width
#:initial-value real-name))
(entry-home-directory (make-entry -1 -1 entry-width
#:initial-value home-directory))
(entry-password (make-entry -1 -1 entry-width
#:flags FLAG-PASSWORD))
(entry-grid (make-grid 2 5))
(button-grid (make-grid 1 1))
(ok-button (make-button -1 -1 (G_ "OK")))
(grid (make-grid 1 2))
@ -50,8 +64,12 @@ (define (pad-label label)
(set-entry-grid-field 0 0 label-name)
(set-entry-grid-field 1 0 entry-name)
(set-entry-grid-field 0 1 label-home-directory)
(set-entry-grid-field 1 1 entry-home-directory)
(set-entry-grid-field 0 1 label-real-name)
(set-entry-grid-field 1 1 entry-real-name)
(set-entry-grid-field 0 2 label-home-directory)
(set-entry-grid-field 1 2 entry-home-directory)
(set-entry-grid-field 0 3 label-password)
(set-entry-grid-field 1 3 entry-password)
(set-grid-field button-grid 0 0 GRID-ELEMENT-COMPONENT ok-button)
@ -59,11 +77,17 @@ (define (pad-label label)
entry-name
(lambda (component)
(set-entry-text entry-home-directory
(string-append "/home/" (entry-value entry-name)))))
(string-append "/home/" (entry-value entry-name)))
(when (string-null? (entry-value entry-real-name))
(set-entry-text entry-real-name
(string-titlecase (entry-value entry-name))))))
(add-components-to-form form
label-name label-home-directory
entry-name entry-home-directory
label-name label-real-name
label-home-directory label-password
entry-name entry-real-name
entry-home-directory entry-password
ok-button)
(make-wrapped-grid-window (vertically-stacked-grid
@ -82,19 +106,57 @@ (define (pad-label label)
(when (eq? exit-reason 'exit-component)
(cond
((components=? argument ok-button)
(let ((name (entry-value entry-name))
(home-directory (entry-value entry-home-directory)))
(let ((name (entry-value entry-name))
(real-name (entry-value entry-real-name))
(home-directory (entry-value entry-home-directory))
(password (entry-value entry-password)))
(if (or (string=? name "")
(string=? home-directory ""))
(begin
(error-page)
(run-user-add-page))
(user
(name name)
(home-directory home-directory))))))))
(let ((password (confirm-password password)))
(if password
(user
(name name)
(real-name real-name)
(home-directory home-directory)
(password password))
(run-user-add-page #:name name
#:real-name real-name
#:home-directory
home-directory)))))))))
(lambda ()
(destroy-form-and-pop form)))))))
(define* (confirm-password password #:optional (try-again (const #f)))
"Ask the user to confirm PASSWORD, a possibly empty string. Call TRY-AGAIN,
a thunk, if the confirmation doesn't match PASSWORD, and return its result."
(define confirmation
(run-input-page (G_ "Please confirm the password.")
(G_ "Password confirmation required")
#:allow-empty-input? #t
#:input-flags FLAG-PASSWORD))
(if (string=? password confirmation)
password
(begin
(run-error-page
(G_ "Password mismatch, please try again.")
(G_ "Password error"))
(try-again))))
(define (run-root-password-page)
;; TRANSLATORS: Leave "root" untranslated: it refers to the name of the
;; system administrator account.
(define password
(run-input-page (G_ "Please choose a password for the system \
administrator (\"root\").")
(G_ "System administrator password")
#:input-flags FLAG-PASSWORD))
(confirm-password password run-root-password-page))
(define (run-user-page)
(define (run users)
(let* ((listbox (make-listbox
@ -169,7 +231,12 @@ (define (run users)
(run-error-page (G_ "Please create at least one user.")
(G_ "No user"))
(run users))
users))))
(reverse users)))))
(lambda ()
(destroy-form-and-pop form))))))
(run '()))
;; Add a "root" user simply to convey the root password.
(cons (user (name "root")
(home-directory "/root")
(password (run-root-password-page)))
(run '())))

View file

@ -95,9 +95,11 @@ (define (run-welcome-page logo)
(G_ "GNU Guix install")
(G_ "Welcome to GNU Guix system installer!
Please note that the present graphical installer is still under heavy \
development, so you might want to prefer using the shell based process. \
The documentation is accessible at any time by pressing CTRL-ALT-F2.")
You will be guided through a graphical installation program.
If you are familiar with GNU/Linux and you want tight control over \
the installation process, you can instead choose manual installation. \
Documentation is accessible at any time by pressing Ctrl-Alt-F2.")
logo
#:listbox-items
`((,(G_ "Graphical install using a terminal based interface")

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -80,7 +81,7 @@ (define (force-wifi-scan)
(message (G_ "Unable to find a wifi technology"))))))))
(define (draw-scanning-page)
"Draw a page to indicate a wifi scan in in progress."
"Draw a page to indicate a wifi scan in progress."
(draw-info-page (G_ "Scanning wifi for available networks, please wait.")
(G_ "Scan in progress")))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +25,10 @@ (define-module (gnu installer parted)
#:use-module ((gnu build file-systems)
#:select (read-partition-uuid
read-luks-partition-uuid))
#:use-module ((gnu build linux-modules)
#:select (missing-modules))
#:use-module ((gnu system linux-initrd)
#:select (%base-initrd-modules))
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#:use-module (guix records)
@ -1243,22 +1248,51 @@ (define (user-partition->mapped-device user-partition)
(target ,label)
(type luks-device-mapping))))
(define (root-user-partition? partition)
"Return true if PARTITION is the root partition."
(let ((mount-point (user-partition-mount-point partition)))
(and mount-point
(string=? mount-point "/"))))
(define (bootloader-configuration user-partitions)
"Return the bootloader configuration field for USER-PARTITIONS."
(let* ((root-partition
(find (lambda (user-partition)
(let ((mount-point
(user-partition-mount-point user-partition)))
(and mount-point
(string=? mount-point "/"))))
user-partitions))
(let* ((root-partition (find root-user-partition?
user-partitions))
(root-partition-disk (user-partition-disk-file-name root-partition)))
`((bootloader-configuration
,@(if (efi-installation?)
`((bootloader grub-efi-bootloader)
(target ,(default-esp-mount-point)))
`((bootloader grub-bootloader)
(target ,root-partition-disk)))))))
(target ,root-partition-disk)))
;; XXX: Assume we defined the 'keyboard-layout' field of
;; <operating-system> right above.
(keyboard-layout keyboard-layout)))))
(define (user-partition-missing-modules user-partitions)
"Return the list of kernel modules missing from the default set of kernel
modules to access USER-PARTITIONS."
(let ((devices (filter user-partition-crypt-label user-partitions))
(root (find root-user-partition? user-partitions)))
(delete-duplicates
(append-map (lambda (device)
(catch 'system-error
(lambda ()
(missing-modules device %base-initrd-modules))
(const '())))
(delete-duplicates
(map user-partition-file-name
(cons root devices)))))))
(define (initrd-configuration user-partitions)
"Return an 'initrd-modules' field with everything needed for
USER-PARTITIONS, or return nothing."
(match (user-partition-missing-modules user-partitions)
(()
'())
((modules ...)
`((initrd-modules ',modules)))))
(define (user-partitions->configuration user-partitions)
"Return the configuration field for USER-PARTITIONS."
@ -1266,10 +1300,11 @@ (define (user-partitions->configuration user-partitions)
(swap-devices (map user-partition-file-name swap-user-partitions))
(encrypted-partitions
(filter user-partition-crypt-label user-partitions)))
`(,@(if (null? swap-devices)
`((bootloader ,@(bootloader-configuration user-partitions))
,@(initrd-configuration user-partitions)
,@(if (null? swap-devices)
'()
`((swap-devices (list ,@swap-devices))))
(bootloader ,@(bootloader-configuration user-partitions))
,@(if (null? encrypted-partitions)
'()
`((mapped-devices

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,42 +19,129 @@
(define-module (gnu installer services)
#:use-module (guix records)
#:export (<desktop-environment>
desktop-environment
make-desktop-environment
desktop-environment-name
desktop-environment-snippet
#:use-module (srfi srfi-1)
#:export (system-service?
system-service-name
system-service-type
system-service-recommended?
system-service-snippet
system-service-packages
%desktop-environments
desktop-environments->configuration))
desktop-system-service?
networking-system-service?
(define-record-type* <desktop-environment>
desktop-environment make-desktop-environment
desktop-environment?
(name desktop-environment-name) ;string
(snippet desktop-environment-snippet)) ;symbol
%system-services
system-services->configuration))
(define-record-type* <system-service>
system-service make-system-service
system-service?
(name system-service-name) ;string
(type system-service-type) ;'desktop | 'networking
(recommended? system-service-recommended? ;Boolean
(default #f))
(snippet system-service-snippet ;list of sexps
(default '()))
(packages system-service-packages ;list of sexps
(default '())))
;; This is the list of desktop environments supported as services.
(define %desktop-environments
(list
(desktop-environment
(name "GNOME")
(snippet '(gnome-desktop-service)))
(desktop-environment
(name "Xfce")
(snippet '(xfce-desktop-service)))
(desktop-environment
(name "MATE")
(snippet '(mate-desktop-service)))
(desktop-environment
(name "Enlightenment")
(snippet '(service enlightenment-desktop-service-type)))))
(define %system-services
(let-syntax ((desktop-environment (syntax-rules ()
((_ fields ...)
(system-service
(type 'desktop)
fields ...))))
(G_ (syntax-rules () ;for xgettext
((_ str) str))))
(list
(desktop-environment
(name "GNOME")
(snippet '((service gnome-desktop-service-type))))
(desktop-environment
(name "Xfce")
(snippet '((service xfce-desktop-service-type))))
(desktop-environment
(name "MATE")
(snippet '((service mate-desktop-service-type))))
(desktop-environment
(name "Enlightenment")
(snippet '((service enlightenment-desktop-service-type))))
(desktop-environment
(name "Openbox")
(packages '((specification->package "openbox"))))
(desktop-environment
(name "awesome")
(packages '((specification->package "awesome"))))
(desktop-environment
(name "i3")
(packages '((specification->package "i3-wm"))))
(desktop-environment
(name "ratpoison")
(packages '((specification->package "ratpoison"))))
(define (desktop-environments->configuration desktop-environments)
"Return the configuration field for DESKTOP-ENVIRONMENTS."
(let ((snippets
(map desktop-environment-snippet desktop-environments)))
`(,@(if (null? snippets)
'()
`((services (cons* ,@snippets
%desktop-services)))))))
;; Networking.
(system-service
(name (G_ "OpenSSH secure shell daemon (sshd)"))
(type 'networking)
(snippet '((service openssh-service-type))))
(system-service
(name (G_ "Tor anonymous network router"))
(type 'networking)
(snippet '((service tor-service-type))))
(system-service
(name (G_ "Mozilla NSS certificates, for HTTPS access"))
(type 'networking)
(packages '((specification->package "nss-certs")))
(recommended? #t))
;; Network connectivity management.
(system-service
(name (G_ "NetworkManager network connection manager"))
(type 'network-management)
(snippet '((service network-manager-service-type)
(service wpa-supplicant-service-type))))
(system-service
(name (G_ "Connman network connection manager"))
(type 'network-management)
(snippet '((service connman-service-type)
(service wpa-supplicant-service-type))))
(system-service
(name (G_ "DHCP client (dynamic IP address assignment)"))
(type 'network-management)
(snippet '((service dhcp-client-service-type)))))))
(define (desktop-system-service? service)
"Return true if SERVICE is a desktop environment service."
(eq? 'desktop (system-service-type service)))
(define (networking-system-service? service)
"Return true if SERVICE is a desktop environment service."
(eq? 'networking (system-service-type service)))
(define (system-services->configuration services)
"Return the configuration field for SERVICES."
(let* ((snippets (append-map system-service-snippet services))
(packages (append-map system-service-packages services))
(desktop? (find desktop-system-service? services))
(base (if desktop?
'%desktop-services
'%base-services)))
(if (null? snippets)
`(,@(if (null? packages)
'()
`((packages (list ,@packages))))
(services ,base))
`(,@(if (null? packages)
'()
`((packages (list ,@packages))))
(services (append (list ,@snippets
,@(if desktop?
;; XXX: Assume 'keyboard-layout' is in
;; scope.
'((set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout))))
'()))
,base))))))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -113,16 +113,24 @@ (define (first-step? steps step)
(define* (skip-to-step step result
#:key todo-steps done-steps)
(match (list todo-steps done-steps)
(((todo . rest-todo) (prev-done ... last-done))
(if (eq? (installer-step-id todo)
(installer-step-id step))
(match todo-steps
((todo . rest-todo)
(let ((found? (eq? (installer-step-id todo)
(installer-step-id step))))
(cond
(found?
(run result
#:todo-steps todo-steps
#:done-steps done-steps)
(skip-to-step step (pop-result result)
#:todo-steps (cons last-done todo-steps)
#:done-steps prev-done)))))
#:done-steps done-steps))
((and (not found?)
(null? done-steps))
(error (format #f "Step ~a not found" (installer-step-id step))))
(else
(match done-steps
((prev-done ... last-done)
(skip-to-step step (pop-result result)
#:todo-steps (cons last-done todo-steps)
#:done-steps prev-done)))))))))
(define* (run result #:key todo-steps done-steps)
(match todo-steps
@ -215,7 +223,7 @@ (define (format-configuration steps results)
'())))
steps))
(modules '((use-modules (gnu))
(use-service-modules desktop))))
(use-service-modules desktop networking ssh xorg))))
`(,@modules
()
(operating-system ,@configuration))))

View file

@ -18,12 +18,15 @@
(define-module (gnu installer user)
#:use-module (guix records)
#:use-module (srfi srfi-1)
#:export (<user>
user
make-user
user-name
user-real-name
user-group
user-home-directory
user-password
users->configuration))
@ -31,20 +34,28 @@ (define-record-type* <user>
user make-user
user?
(name user-name)
(real-name user-real-name
(default ""))
(group user-group
(default "users"))
(password user-password)
(home-directory user-home-directory))
(define (users->configuration users)
"Return the configuration field for USERS."
(define (user->sexp user)
`(user-account
(name ,(user-name user))
(comment ,(user-real-name user))
(group ,(user-group user))
(home-directory ,(user-home-directory user))
(supplementary-groups '("wheel" "netdev"
"audio" "video"))))
`((users (cons*
,@(map (lambda (user)
`(user-account
(name ,(user-name user))
(group ,(user-group user))
(home-directory ,(user-home-directory user))
(supplementary-groups
(quote ("wheel" "netdev"
"audio" "video")))))
users)
%base-user-accounts))))
,@(filter-map (lambda (user)
;; Do not emit a 'user-account' form for "root".
(and (not (string=? (user-name user) "root"))
(user->sexp user)))
users)
%base-user-accounts))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,6 +20,8 @@
(define-module (gnu installer utils)
#:use-module (guix utils)
#:use-module (guix build utils)
#:use-module (guix i18n)
#:use-module (srfi srfi-34)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (ice-9 textual-ports)
@ -54,10 +57,37 @@ (define (read-percentage percentage)
(and result
(string->number (match:substring result 1)))))
(define (run-shell-command command)
(define* (run-shell-command command #:key locale)
"Run COMMAND, a string, with Bash, and in the given LOCALE. Return true if
COMMAND exited successfully, #f otherwise."
(define (pause)
(format #t (G_ "Press Enter to continue.~%"))
(read-line (current-input-port)))
(call-with-temporary-output-file
(lambda (file port)
(format port "~a~%" command)
;; (format port "exit~%")
(when locale
(let ((supported? (false-if-exception
(setlocale LC_ALL locale))))
;; If LOCALE is not supported, then set LANGUAGE, which might at
;; least give us translated messages.
(if supported?
(format port "export LC_ALL=\"~a\"~%" locale)
(format port "export LANGUAGE=\"~a\"~%"
(string-take locale
(string-index locale #\_))))))
(format port "exec ~a~%" command)
(close port)
(invoke "bash" "--init-file" file))))
(guard (c ((invoke-error? c)
(newline)
(format (current-error-port)
(G_ "Command failed with exit code ~a.~%")
(invoke-error-exit-status c))
(pause)
#f))
(invoke "bash" "--init-file" file)
(newline)
(pause)
#t))))

View file

@ -46,6 +46,7 @@ GNU_SYSTEM_MODULES = \
%D%/bootloader/grub.scm \
%D%/bootloader/extlinux.scm \
%D%/bootloader/u-boot.scm \
%D%/bootloader/depthcharge.scm \
%D%/ci.scm \
%D%/packages.scm \
%D%/packages/abduco.scm \
@ -230,6 +231,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gxmessage.scm \
%D%/packages/hardware.scm \
%D%/packages/haskell.scm \
%D%/packages/haskell-apps.scm \
%D%/packages/haskell-check.scm \
%D%/packages/haskell-crypto.scm \
%D%/packages/haskell-web.scm \
@ -341,6 +343,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ninja.scm \
%D%/packages/node.scm \
%D%/packages/noweb.scm \
%D%/packages/nss.scm \
%D%/packages/ntp.scm \
%D%/packages/nutrition.scm \
%D%/packages/nvi.scm \
@ -371,6 +374,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/php.scm \
%D%/packages/pkg-config.scm \
%D%/packages/plotutils.scm \
%D%/packages/poedit.scm \
%D%/packages/polkit.scm \
%D%/packages/popt.scm \
%D%/packages/printers.scm \
@ -538,6 +542,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/accounts.scm \
%D%/system/file-systems.scm \
%D%/system/install.scm \
%D%/system/keyboard.scm \
%D%/system/linux-container.scm \
%D%/system/linux-initrd.scm \
%D%/system/locale.scm \
@ -582,9 +587,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/virtualization.scm \
%D%/tests/web.scm
if ENABLE_INSTALLER
GNU_SYSTEM_MODULES += \
INSTALLER_MODULES = \
%D%/installer.scm \
%D%/installer/connman.scm \
%D%/installer/final.scm \
@ -616,13 +619,19 @@ GNU_SYSTEM_MODULES += \
%D%/installer/newt/welcome.scm \
%D%/installer/newt/wifi.scm
# Always ship the installer modules but compile them only when
# ENABLE_INSTALLER is true.
if ENABLE_INSTALLER
GNU_SYSTEM_MODULES += $(INSTALLER_MODULES)
else !ENABLE_INSTALLER
MODULES_NOT_COMPILED += $(INSTALLER_MODULES)
endif
installerdir = $(guilemoduledir)/%D%/installer
dist_installer_DATA = \
%D%/installer/aux-files/logo.txt \
%D%/installer/aux-files/SUPPORTED
endif ENABLE_INSTALLER
# Modules that do not need to be compiled.
MODULES_NOT_COMPILED += \
%D%/build/shepherd.scm \
@ -674,6 +683,7 @@ dist_patch_DATA = \
%D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/binutils-boot-2.20.1a.patch \
%D%/packages/patches/biber-fix-encoding-write.patch \
%D%/packages/patches/bind-fix-unused-pk11-ecc-constants.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
@ -728,6 +738,7 @@ dist_patch_DATA = \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/docker-engine-test-noinstall.patch \
%D%/packages/patches/docker-fix-tests.patch \
%D%/packages/patches/docker-use-fewer-modprobes.patch \
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/doxygen-test.patch \
%D%/packages/patches/dvd+rw-tools-add-include.patch \
@ -742,7 +753,9 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/emacs-realgud-fix-configure-ac.patch \
%D%/packages/patches/emacs-undohist-ignored.patch \
%D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-zones-called-interactively.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/eudev-rules-directory.patch \
@ -767,6 +780,7 @@ dist_patch_DATA = \
%D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-makedev.patch \
%D%/packages/patches/findutils-test-xargs.patch \
%D%/packages/patches/flac-CVE-2017-6888.patch \
%D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flint-ldconfig.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
@ -862,6 +876,7 @@ dist_patch_DATA = \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-binutils-compat.patch \
%D%/packages/patches/grub-check-error-efibootmgr.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/gst-plugins-good-libvpx-compat.patch \
@ -909,6 +924,7 @@ dist_patch_DATA = \
%D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/idris-test-no-node.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inkscape-poppler-compat3.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
@ -928,6 +944,7 @@ dist_patch_DATA = \
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/libziparchive-add-includes.patch \
%D%/packages/patches/localed-xorg-keyboard.patch \
%D%/packages/patches/kiki-level-selection-crash.patch \
%D%/packages/patches/kiki-makefile.patch \
%D%/packages/patches/kiki-missing-includes.patch \
@ -937,7 +954,6 @@ dist_patch_DATA = \
%D%/packages/patches/kio-search-smbd-on-PATH.patch \
%D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-runtime-keymap-switch.patch \
%D%/packages/patches/knot-include-system-lmdb-header.patch \
%D%/packages/patches/kpackage-allow-external-paths.patch \
%D%/packages/patches/kobodeluxe-paths.patch \
%D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \
@ -945,11 +961,12 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-manpage-minus-not-hyphen.patch \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/kodi-set-libcurl-ssl-parameters.patch \
%D%/packages/patches/kodi-skip-test-449.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/lcms-CVE-2018-16435.patch \
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
%D%/packages/patches/ldc-disable-phobos-tests.patch \
%D%/packages/patches/ledger-fix-uninitialized.patch \
%D%/packages/patches/liba52-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \
%D%/packages/patches/liba52-set-soname.patch \
@ -982,8 +999,6 @@ dist_patch_DATA = \
%D%/packages/patches/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/libopenshot-fixup-tests.patch \
%D%/packages/patches/libopenshot-tests-with-system-libs.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
@ -1017,7 +1032,7 @@ dist_patch_DATA = \
%D%/packages/patches/lierolibre-newer-libconfig.patch \
%D%/packages/patches/lierolibre-remove-arch-warning.patch \
%D%/packages/patches/lierolibre-try-building-other-arch.patch \
%D%/packages/patches/linkchecker-mark-more-tests-that-require-the-network.patch \
%D%/packages/patches/linkchecker-tests-require-network.patch \
%D%/packages/patches/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
@ -1065,6 +1080,7 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mrustc-0.8.0-fix-variable-length-integer-receiving.patch \
%D%/packages/patches/mtools-mformat-uninitialized.patch \
%D%/packages/patches/mumble-1.2.19-abs.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
@ -1083,6 +1099,7 @@ dist_patch_DATA = \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.patch \
@ -1093,6 +1110,10 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.patch \
%D%/packages/patches/ocaml-dose3-add-unix-dependency.patch \
%D%/packages/patches/ocaml-dose3-Fix-for-ocaml-4.06.patch \
%D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
@ -1102,7 +1123,6 @@ dist_patch_DATA = \
%D%/packages/patches/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/opensmtpd-fix-crash.patch \
%D%/packages/patches/openssh-CVE-2018-20685.patch \
%D%/packages/patches/openssl-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
@ -1181,6 +1201,7 @@ dist_patch_DATA = \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-faker-fix-build-32bit.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.patch \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \
@ -1188,6 +1209,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
%D%/packages/patches/python-robotframework-honor-source-date-epoch.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.patch \
@ -1201,9 +1223,6 @@ dist_patch_DATA = \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/quilt-test-fix-regex.patch \
%D%/packages/patches/quilt-getopt-nondigit-param.patch \
%D%/packages/patches/quilt-getopt-second-separator.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/rapicorn-isnan.patch \
@ -1215,7 +1234,6 @@ dist_patch_DATA = \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/reptyr-fix-gcc-7.patch \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
@ -1252,8 +1270,6 @@ dist_patch_DATA = \
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/soundconverter-remove-gconf-dependency.patch \
%D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \
%D%/packages/patches/soundtouch-CVE-2018-1000223.patch \
%D%/packages/patches/sssd-curl-compat.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/streamlink-update-test.patch \
@ -1263,7 +1279,6 @@ dist_patch_DATA = \
%D%/packages/patches/swig-guile-gc.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \
%D%/packages/patches/stumpwm-fix-broken-read-one-line.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.patch \
@ -1277,9 +1292,8 @@ dist_patch_DATA = \
%D%/packages/patches/teensy-loader-cli-help.patch \
%D%/packages/patches/teeworlds-use-latest-wavpack.patch \
%D%/packages/patches/texinfo-5-perl-compat.patch \
%D%/packages/patches/texlive-bin-CVE-2018-17407.patch \
%D%/packages/patches/texlive-bin-luatex-poppler-compat.patch \
%D%/packages/patches/texlive-bin-pdftex-poppler-compat.patch \
%D%/packages/patches/texlive-bin-xetex-poppler-compat.patch \
%D%/packages/patches/telegram-purple-adjust-test.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.patch \
@ -1296,6 +1310,7 @@ dist_patch_DATA = \
%D%/packages/patches/totem-meson-easy-codec.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-include-qregexpvalidator.patch \
%D%/packages/patches/u-boot-fix-mkimage-header-verification.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \
%D%/packages/patches/unzip-CVE-2014-8141.patch \
@ -1329,6 +1344,7 @@ dist_patch_DATA = \
%D%/packages/patches/wavpack-CVE-2018-6767.patch \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
%D%/packages/patches/webkitgtk-sse2.patch \
%D%/packages/patches/weechat-python.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \

View file

@ -32,6 +32,7 @@ (define-module (gnu packages)
mkdir-p))
#:autoload (guix profiles) (packages->manifest)
#:use-module (guix describe)
#:use-module (guix deprecation)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
#:autoload (ice-9 binary-ports) (put-bytevector)
@ -55,6 +56,7 @@ (define-module (gnu packages)
fold-packages
fold-available-packages
find-newest-available-packages
find-packages-by-name
find-package-locations
find-best-packages-by-name
@ -190,6 +192,29 @@ (define %patch-path
directory))
%load-path)))
;; This procedure is used by Emacs-Guix up to 0.5.1.1, so keep it for now.
;; See <https://github.com/alezost/guix.el/issues/30>.
(define-deprecated find-newest-available-packages
find-packages-by-name
(mlambda ()
"Return a vhash keyed by package names, and with
associated values of the form
(newest-version newest-package ...)
where the preferred package is listed first."
(fold-packages (lambda (p r)
(let ((name (package-name p))
(version (package-version p)))
(match (vhash-assoc name r)
((_ newest-so-far . pkgs)
(case (version-compare version newest-so-far)
((>) (vhash-cons name `(,version ,p) r))
((=) (vhash-cons name `(,version ,p ,@pkgs) r))
((<) r)))
(#f (vhash-cons name `(,version ,p) r)))))
vlist-null)))
(define (fold-available-packages proc init)
"Fold PROC over the list of available packages. For each available package,
PROC is called along these lines:

View file

@ -181,14 +181,14 @@ (define-public progress
(define-public shepherd
(package
(name "shepherd")
(version "0.5.0")
(version "0.6.0")
(source (origin
(method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/shepherd/shepherd-"
(uri (string-append "mirror://gnu/shepherd/shepherd-"
version ".tar.gz"))
(sha256
(base32
"1wmciqml9yplnx1s4ynn00giqyk06rbrcsgvpjj2df47sawk2jp8"))))
"1ys2w83vm62spr8bx38sccfdpy9fqmj7wfywm5k8ihsy2k61da2i"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--localstatedir=/var")))
@ -211,8 +211,68 @@ (define-public shepherd
typical init systems. It provides dependency-handling through a convenient
interface and is based on GNU Guile.")
(license license:gpl3+)
(home-page "https://www.gnu.org/software/shepherd/")
(properties '((ftp-server . "alpha.gnu.org")))))
(home-page "https://www.gnu.org/software/shepherd/")))
(define-public cloud-utils
(package
(name "cloud-utils")
(version "0.31")
(source
(origin
(method url-fetch)
(uri (string-append
"https://launchpad.net/cloud-utils/trunk/"
version "/+download/cloud-utils-" version ".tar.gz"))
(sha256
(base32
"07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "BINDIR=" out "/bin")
(string-append "MANDIR=" out "/share/man/man1")
(string-append "DOCDIR=" out "/share/doc")))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(add-after 'install 'wrap
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((growpart (string-append (assoc-ref outputs "out")
"/bin/growpart")))
(wrap-program growpart
`("PATH" ":" prefix (,(dirname (which "sfdisk"))
,(dirname (which "readlink"))))))
#t)))))
(inputs
`(("python" ,python)
("util-linux" ,util-linux))) ; contains sfdisk for growpart
(home-page "https://launchpad.net/cloud-utils")
(synopsis "Set of utilities for cloud computing environments")
(description
"This package contains a set of utilities for cloud computing
environments:
@itemize @bullet
@item @command{cloud-localds} Create a disk for cloud-init to utilize nocloud
@item @command{cloud-publish-image} Wrapper for cloud image publishing
@item @command{cloud-publish-tarball} Wrapper for publishing cloud tarballs
@item @command{cloud-publish-ubuntu} Import a Ubuntu cloud image
@item @command{ec2metadata} Query and display @acronym{EC2,Amazon Elastic
Compute Cloud} metadata
@item @command{growpart} Grow a partition to fill the device
@item @command{mount-image-callback} Mount a file and run a command
@item @command{resize-part-image} Resize a partition image to a new size
@item @command{ubuntu-cloudimg-query} Get the latest Ubuntu
@acronym{AMI,Amazon Machine Image}
@item @command{ubuntu-ec2-run} Run a @acronym{EC2,Amazon Elastic Compute
Cloud} instance using Ubuntu
@item @command{vcs-run} Obtain a repository, and run a command
@item @command{write-mime-multipart} Handle multipart
@acronym{MIME,Multipurpose Internet Mail Extensions} messages
@end itemize")
(license license:gpl3)))
(define-public daemontools
(package
@ -475,8 +535,8 @@ (define-public mingetty
(synopsis "Getty for the text console")
(description
"Small console getty that is started on the Linux text console,
asks for a login name and then transfers over to 'login'. It is extended to
allow automatic login and starting any app.")
asks for a login name and then transfers over to @code{login}. It is extended
to allow automatic login and starting any app.")
(license license:gpl2+)))
(define-public net-base
@ -1140,7 +1200,8 @@ (define (copy-man-page target)
and it controls the roaming and IEEE 802.11 authentication/association of the
WLAN driver.
This package provides the 'wpa_supplicant' daemon and the 'wpa_cli' command.")
This package provides the @code{wpa_supplicant} daemon and the @code{wpa_cli}
command.")
;; In practice, this is linked against Readline, which makes it GPLv3+.
(license license:bsd-3)
@ -1286,7 +1347,7 @@ (define-public dmidecode
(define-public acpica
(package
(name "acpica")
(version "20190215")
(version "20190405")
(source (origin
(method url-fetch)
(uri (string-append
@ -1294,7 +1355,7 @@ (define-public acpica
version ".tar.gz"))
(sha256
(base32
"1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg"))))
"0hv6r65l8vk3f6i3by7i47vc1917qm47838bpq80lfn22784y53y"))))
(build-system gnu-build-system)
(native-inputs `(("flex" ,flex)
("bison" ,bison)))
@ -1598,13 +1659,13 @@ (define-public graphios
(define-public ansible
(package
(name "ansible")
(version "2.7.9")
(version "2.7.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
(base32 "19vyf60zfmnv7frwm96bzqzvia69dysy9apk8bl84vr03ib9vrbf"))))
(base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
(build-system python-build-system)
(native-inputs
`(("python-bcrypt" ,python-bcrypt)
@ -1735,18 +1796,18 @@ (define-public cpulimit
(define-public autojump
(package
(name "autojump")
(version "22.5.1")
(version "22.5.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/wting/autojump/archive/"
"release-v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/wting/autojump.git")
(commit (string-append "release-v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn"))))
(base32 "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws"))))
(build-system gnu-build-system)
(native-inputs ;for tests
(native-inputs ; for tests
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)))
(inputs
@ -1754,6 +1815,11 @@ (define-public autojump
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
;; install.py modifies files before installing them.
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(delete 'configure)
(delete 'build)
(replace 'check
@ -2076,7 +2142,7 @@ (define-public di
(home-page "https://www.gentoo.com/di/")
(synopsis "Advanced df like disk information utility")
(description
"'di' is a disk information utility, displaying everything that your
"@code{di} is a disk information utility, displaying everything that your
@code{df} command does and more. It features the ability to display your disk
usage in whatever format you prefer. It is designed to be highly portable and
produce uniform output across heterogeneous networks.")
@ -2699,7 +2765,7 @@ (define-public inxi-minimal
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.0.32-1")
(version "3.0.33-1")
(source
(origin
(method git-fetch)
@ -2708,7 +2774,7 @@ (define-public inxi-minimal
(commit version)))
(file-name (git-file-name real-name version))
(sha256
(base32 "171xdip2alkp3g0k0sanaavvdcz6d0wlldj9lgj11xsdbhaaknnv"))))
(base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)
@ -2918,7 +2984,8 @@ (define-public solaar
(define-public lynis
(package
(name "lynis")
(version "2.7.2")
;; Also update the lynis-sdk input to the commit matching this release.
(version "2.7.4")
(source
(origin
(method git-fetch)
@ -2927,7 +2994,7 @@ (define-public lynis
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dbbfk47dpxx7zpb98n4w3ls3z5di57qnr2nsgxjvp49gk9j3f6k"))
(base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2944,11 +3011,10 @@ (define-public lynis
(method git-fetch)
(uri (git-reference
(url "https://github.com/CISOfy/lynis-sdk")
(commit "3310aef4f2b3dd97d166c96ad0253c89c4ad390d")))
(commit "90f301e21c204792cf372f1cf05890a562f2e31b")))
(file-name (git-file-name "lynis-sdk" version))
(sha256
(base32
"0sqsrm5wal742yrwps8bqb8a8lxd93n4b93n3kkm1b30nbs25g7y"))))))
(base32 "1d0smr1fxrvbc3hl8lzy33im9ahzr0hgs3kk09r8g8xccjkcm52l"))))))
(arguments
`(#:phases
(modify-phases %standard-phases

View file

@ -5,7 +5,7 @@
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
;;;
@ -27,6 +27,7 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
@ -42,6 +43,7 @@ (define-module (gnu packages algebra)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
@ -56,6 +58,7 @@ (define-module (gnu packages algebra)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
@ -245,10 +248,10 @@ (define-public cmh
(license license:gpl3+)
(home-page "http://cmh.gforge.inria.fr/")))
(define-public giac-xcas
(define-public giac
(package
(name "giac-xcas")
(version "1.5.0-43")
(name "giac")
(version "1.5.0-49")
(source (origin
(method url-fetch)
;; "~parisse/giac" is not used because the maintainer regularly
@ -260,9 +263,8 @@ (define-public giac-xcas
"source/giac_" version ".tar.gz"))
(sha256
(base32
"1j58cvpiddzxswfdh4ixyj1xsva7qwk8xjls29nqvryyykdfm4dp"))))
"0f4pkand9vmqfayw18jm5qxbhcwi1405qfd7ibzh9lwzz6amkm3l"))))
(build-system gnu-build-system)
(outputs '("out" "doc")) ;77MiB of documentation
(arguments
`(#:modules ((ice-9 ftw)
(guix build utils)
@ -281,36 +283,36 @@ (define-public giac-xcas
(substitute* "check/Makefile.in"
(("chk_fhan11") ""))
#t))
(add-after 'install 'install-doc
;; Setting --docdir to "doc" output isn't sufficient as
;; documentation and examples are scattered throughout the source.
(add-after 'install 'fix-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (assoc-ref outputs "doc"))
(docdir (string-append doc
"/share/doc/"
(string-append ,name "-" ,version))))
;; For some reason, the install process moves
;; "share/giac/examples" instead of "share/giac/doc" to
;; "$(docdir)". Clean up the mess and start over.
(delete-file-recursively (string-append doc "/share"))
(mkdir-p docdir)
(with-directory-excursion out
(for-each (lambda (f)
(unless (member f '("." ".."))
(copy-recursively (string-append "share/giac/" f)
(string-append docdir "/" f))))
(scandir "share/giac"))
(delete-file-recursively "share/giac")))
#t)))))
(let ((out (assoc-ref outputs "out")))
;; Most French documentation has a non-commercial
;; license, so we need to remove it.
(with-directory-excursion (string-append out "/share/giac/doc/fr")
(for-each delete-file-recursively
'("cascas" "casexo" "casgeo" "casrouge" "cassim"
"castor")))
;; Remove duplicate documentation in
;; "%out/share/doc/giac/", where Xcas does not expect
;; to find it.
(delete-file-recursively (string-append out "/share/doc/giac"))
#t)))
(add-after 'install 'remove-unnecessary-executable
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(delete-file (string-append out "/bin/xcasnew"))
#t))))))
(inputs
;;; TODO: Add libnauty.
`(("fltk" ,fltk)
("glpk" ,glpk)
("gmp" ,gmp)
("gsl" ,gsl)
("lapack" ,lapack)
("libao" ,ao)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libsamplerate" ,libsamplerate)
("libx11" ,libx11)
("libxinerama" ,libxinerama)
("libxft" ,libxft)
@ -321,9 +323,12 @@ (define-public giac-xcas
("ntl" ,ntl)
("perl" ,perl)
("pari-gp" ,pari-gp)
("tcsh" ,tcsh)
("tcsh" ,tcsh)))
(native-inputs
`(("bison" ,bison)
("flex" ,flex)
("readline" ,readline)
("texlive" ,texlive-tiny)))
(native-inputs `(("readline" ,readline)))
(home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html")
(synopsis "Computer algebra system")
(description
@ -332,6 +337,9 @@ (define-public giac-xcas
or text interfaces) or as a C++ library.")
(license license:gpl3+)))
(define-public giac-xcas
(deprecated-package "giac-xcas" giac))
(define-public flint
(package
(name "flint")
@ -498,7 +506,7 @@ (define-public ntl
(define-public singular
(package
(name "singular")
(version "4.1.1p3")
(version "4.1.2p1")
(source
(origin
(method url-fetch)
@ -512,7 +520,7 @@ (define-public singular
#\.) "-")
"/singular-" version ".tar.gz"))
(sha256 (base32
"1qqj9bm9pkzm0iyycpvm8x6s79wws3nq60lz25h8x1q61h3426sm"))))
"0kvd55353fiqyq1msmi0kka66n5h0aqs7m3km60r01b1w2f8085m"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@ -857,6 +865,32 @@ (define-public eigen
;; See 'COPYING.README' for details.
(license license:mpl2.0)))
(define-public eigen-for-tensorflow
(let ((changeset "fd6845384b86")
(revision "1"))
(package (inherit eigen)
(name "eigen-for-tensorflow")
(version (string-append "3.3.5-" revision "." changeset))
(source (origin
(method hg-fetch)
(uri (hg-reference
(url "https://bitbucket.org/eigen/eigen")
(changeset changeset)))
(sha256
(base32
"12cwgah63wqwb66xji048hcxc1z5zjg8a7701zlia5zbilnnk1n5"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
;; There are 3 test failures in the "unsupported" directory,
;; but maintainers say it's a known issue and it's unsupported
;; anyway, so just skip them.
'(begin
(substitute* "unsupported/CMakeLists.txt"
(("add_subdirectory\\(test.*")
"# Do not build the tests for unsupported features.\n"))
#t)))))))
(define-public xtensor
(package
(name "xtensor")

View file

@ -538,7 +538,7 @@ (define-public android-ext4-utils
(native-inputs
`(("android-core" ,(android-platform-system-core version))))
(home-page "https://developer.android.com/")
(synopsis "Android ext4 filesystem utils")
(synopsis "Android ext4 file system utilities")
(description "@code{android-ext4-utils} is a library in common use by the
Android core.")
(license license:asl2.0)))

View file

@ -41,18 +41,20 @@ (define-module (gnu packages animation)
#:use-module (gnu packages qt)
#:use-module (gnu packages video))
;; ETL, synfig, and Synfig Studio are updated in tandem.
(define synfig-version "1.2.2")
(define-public etl
(package
(name "etl")
(version "0.04.22")
(version synfig-version)
(source (origin
(method url-fetch)
;; Keep this synchronized with the synfig release version.
(uri (string-append "mirror://sourceforge/synfig/releases/"
"1.2.0/source/ETL-" version ".tar.gz"))
version "/source/ETL-" version ".tar.gz"))
(sha256
(base32
"0ii73nsd3xzkhz6w1rnxwphl637j9w82xiy6apa9vin2isdynnmc"))))
"12sd8pz8l5xcxcmapkvih3brihdhdb6xmxisr9a415lydid9rh8d"))))
(build-system gnu-build-system)
(home-page "https://www.synfig.org")
(synopsis "Extended C++ template library")
@ -65,7 +67,7 @@ (define-public etl
(define-public synfig
(package
(name "synfig")
(version "1.2.0")
(version synfig-version)
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/synfig/releases/"
@ -73,7 +75,7 @@ (define-public synfig
".tar.gz"))
(sha256
(base32
"1gqx4gn4c73rqwhsgzx0a460gr9hadmi28csp75rx30qavqsj7k1"))))
"1vy27kl68sbg41sfasa58k3p2nc1xfalvzk3k9gich9h90rpnpsz"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -131,7 +133,8 @@ (define-public synfig
("openexr" ,openexr)
("pango" ,pango)))
(native-inputs
`(("pkg-config" ,pkg-config)))
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "https://www.synfig.org")
(synopsis "Vector-based 2D animation renderer")
(description
@ -143,7 +146,7 @@ (define-public synfig
(define-public synfigstudio
(package
(name "synfigstudio")
(version "1.2.0")
(version synfig-version)
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/synfig/releases/"
@ -151,16 +154,14 @@ (define-public synfigstudio
".tar.gz"))
(sha256
(base32
"0fbckfbw8dzf0m2wv7vlmw492k1dqa3zf510z019d0as3zpnp6qm"))
"1ql92kh9z8w2j9yi3pr7hn7wh2r2j35xynwv9xlwyd7niackgykn"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "src/synfigapp/pluginmanager.cpp"
(("xmlpp::Node\\* n =") "const xmlpp::Node* n =")
(("xmlpp::Node::NodeList") "xmlpp::Node::const_NodeList"))
#t))
(patches
(search-patches "synfigstudio-fix-ui-with-gtk3.patch"))))
#t))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -44,14 +44,14 @@ (define-module (gnu packages antivirus)
(define-public clamav
(package
(name "clamav")
(version "0.101.1")
(version "0.101.2")
(source (origin
(method url-fetch)
(uri (string-append "https://www.clamav.net/downloads/production/"
"clamav-" version ".tar.gz"))
(sha256
(base32
"01mq3z04fjbq5iq8wfwfim72iv3dn04d3ishc5lkhxpmnalqydps"))
"0d3n4y8i5q594h4cjglmvpk4jd73r9ajpp1bvq5lr9zpdzgyn4ha"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -129,14 +129,14 @@ (define-public lightning
(define-public fasm
(package
(name "fasm")
(version "1.73.09")
(version "1.73.10")
(source
(origin
(method url-fetch)
(uri (string-append "https://flatassembler.net/fasm-"
version ".tgz"))
(sha256
(base32 "197bcj9aa5wpkvrlaafc1smxjss0fwdspq5fwhwgyy9cc7z5g0ym"))))
(base32 "1lk8vlr0vg7h8lhiav99paa5a1mi0r2m8agxjmczhhavqhx44c32"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests exist

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,6 +23,7 @@ (define-module (gnu packages astronomy)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages image)
#:use-module (gnu packages compression)
#:use-module (gnu packages gettext)
@ -103,7 +104,7 @@ (define-public wcslib
(define-public gnuastro
(package
(name "gnuastro")
(version "0.8")
(version "0.9")
(source
(origin
(method url-fetch)
@ -111,7 +112,7 @@ (define-public gnuastro
version ".tar.lz"))
(sha256
(base32
"0gx6iar3z07k9sdvpa6kchsz6fpk94xn5vcvbcigssl2dwqmlnkb"))))
"1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig"))))
(inputs
`(("cfitsio" ,cfitsio)
("gsl" ,gsl)
@ -120,7 +121,8 @@ (define-public gnuastro
("wcslib" ,wcslib)
("zlib" ,zlib)))
(native-inputs
`(("lzip" ,lzip)))
`(("libtool" ,libtool)
("lzip" ,lzip)))
(build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnuastro/")
(synopsis "Astronomy utilities")
@ -131,7 +133,7 @@ (define-public gnuastro
(define-public stellarium
(package
(name "stellarium")
(version "0.18.3")
(version "0.19.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/Stellarium/" name
@ -139,7 +141,7 @@ (define-public stellarium
"/" name "-" version ".tar.gz"))
(sha256
(base32
"1mm8rjcb8j56m3kfigpix5vxviw1616kvl9ws2s3s5gdyngljrc3"))))
"1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
@ -161,13 +163,6 @@ (define-public stellarium
(assoc-ref %build-inputs "qtserialport")
"/include/qt5"))
#:phases (modify-phases %standard-phases
;; Skip a test that assumes Stellarium is "installed":
;; https://bugs.gentoo.org/674472
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "src/tests/testEphemeris.cpp"
(("ifndef Q_OS_WIN") "if 0"))
#t))
(add-before 'check 'set-offscreen-display
(lambda _
;; make Qt render "offscreen", required for tests

View file

@ -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 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 ng0 <ng0@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -547,14 +547,14 @@ (define-public azr3
(define-public calf
(package
(name "calf")
(version "0.90.1")
(version "0.90.2")
(source (origin
(method url-fetch)
(uri (string-append "https://calf-studio-gear.org/files/calf-"
version ".tar.gz"))
(sha256
(base32
"0znwx5gidr5n503gya9n8gagr8cfym6cwlbiv2r6iksji7jc4fpb"))))
"0bn4j1klw2yfxz8clbmasaydifq25rdfsv0n6iisxrzcj1lx7sgh"))))
(build-system gnu-build-system)
(inputs
`(("fluidsynth" ,fluidsynth)
@ -713,7 +713,7 @@ (define-public swh-plugins-lv2
(define-public csound
(package
(name "csound")
(version "6.12.0")
(version "6.12.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -722,7 +722,7 @@ (define-public csound
(file-name (git-file-name name version))
(sha256
(base32
"0pv4s54cayvavdp6y30n3r1l5x83x9whyyd2v24y0dh224v3hbxi"))))
"01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
(build-system cmake-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
@ -943,7 +943,7 @@ (define-public fil-plugins
The 2nd order resonant filters are implemented using a Mitra-Regalia style
lattice filter, which is stable even while parameters are being changed.
All switches and controls are internally smoothed, so they can be used 'live'
All switches and controls are internally smoothed, so they can be used @code{live}
without any clicks or zipper noises. This makes this plugin suitable for use
in systems that allow automation of plugin control ports, such as Ardour, or
for stage use.")
@ -1104,7 +1104,7 @@ (define-public g2reverb
(define-public fluidsynth
(package
(name "fluidsynth")
(version "2.0.4")
(version "2.0.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1113,7 +1113,7 @@ (define-public fluidsynth
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"))))
"0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
@ -1307,7 +1307,7 @@ (define-public freepats
(define-public guitarix
(package
(name "guitarix")
(version "0.37.3")
(version "0.38.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -1315,7 +1315,7 @@ (define-public guitarix
version ".tar.xz"))
(sha256
(base32
"1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac"))))
"0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@ -2120,21 +2120,17 @@ (define-public pcaudiolib
(define-public qjackctl
(package
(name "qjackctl")
(version "0.5.6")
(version "0.5.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz"))
(sha256
(base32
"0wlmbb9m7cf3wr7c2h2hji18592x2b119m7mx85wksjs6rjaq2mj"))))
"1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
;; Disable xunique to prevent X hanging when starting qjackctl in
;; tiling window managers such as StumpWM or i3
;; (see https://github.com/rncbc/qjackctl/issues/13).
#:configure-flags '("--disable-xunique")))
'(#:tests? #f)) ; no check target
(inputs
`(("jack" ,jack-1)
("alsa-lib" ,alsa-lib)
@ -2320,7 +2316,7 @@ (define-public raul-devel
(define-public rubberband
(package
(name "rubberband")
(version "1.8.1")
(version "1.8.2")
(source (origin
(method url-fetch)
(uri
@ -2330,9 +2326,19 @@ (define-public rubberband
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
"0462fmjnfqpv2qi0s6ny42drqarkr0xy9lw8frjmfgzyzl5n9294"))))
(build-system gnu-build-system)
(arguments `(#:tests? #f)) ; no check target
(arguments
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-jni-installation
;; make install unconditionally installs librubberband-jni.so,
;; which is never built by make all. Skip it.
(lambda _
(substitute* "Makefile.in"
((".*cp -f \\$\\(JNI_TARGET\\).*") ""))
#t)))))
(inputs
`(("ladspa" ,ladspa)
("libsamplerate" ,libsamplerate)
@ -2685,18 +2691,16 @@ (define-public xmp
(define-public soundtouch
(package
(name "soundtouch")
(version "2.0.0")
(version "2.1.1")
(source
(origin
(method url-fetch)
(uri
(string-append
"http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz"))
(patches (search-patches "soundtouch-CVE-2018-14044-14045.patch"
"soundtouch-CVE-2018-1000223.patch"))
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/soundtouch/soundtouch.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j"))))
(base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -2865,14 +2869,14 @@ (define-public portaudio
(define-public qsynth
(package
(name "qsynth")
(version "0.5.5")
(version "0.5.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
"/qsynth-" version ".tar.gz"))
(sha256
(base32 "08x7znvbwi9miavcarymi7dsv8njmxzwzma20dbmz8j2aswm53w5"))))
(base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" phase
@ -3379,14 +3383,14 @@ (define-public bluez-alsa
(define-public snd
(package
(name "snd")
(version "19.2")
(version "19.3")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
"1a6ls2hyvggss12idca22hq5vsq4jw2xkwrx22dx29i9926gdr6h"))))
"16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests
@ -3662,7 +3666,7 @@ (define-public libfdk
(define-public libopenshot-audio
(package
(name "libopenshot-audio")
(version "0.1.7")
(version "0.1.8")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3671,7 +3675,7 @@ (define-public libopenshot-audio
(file-name (git-file-name name version))
(sha256
(base32
"08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys"))))
"1fvp6nmf30xzkmcznakh8dv5vn9d7nq051pqcqv638hsfppkmcrl"))))
(build-system cmake-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
@ -3697,7 +3701,7 @@ (define-public libopenshot-audio
(define-public faudio
(package
(name "faudio")
(version "19.03")
(version "19.04")
(source
(origin
(method git-fetch)
@ -3706,7 +3710,7 @@ (define-public faudio
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32 "0v5l67ixr5kd9jz5sza8xgzxamqnlgn3gs1q8gg6ir60g0jvzbd4"))))
(base32 "00lqf8bjcwm4k8yky9jmqghkxijcm2lxspb9zyl1270yqmj05kiw"))))
(arguments
'(#:tests? #f ; No tests.
#:configure-flags '("-DFFMPEG=ON")))

File diff suppressed because it is too large Load diff

View file

@ -73,7 +73,7 @@ (define-module (gnu packages backup)
(define-public duplicity
(package
(name "duplicity")
(version "0.7.18.1")
(version "0.7.18.2")
(source
(origin
(method url-fetch)
@ -82,8 +82,7 @@ (define-public duplicity
"-series/" version "/+download/duplicity-"
version ".tar.gz"))
(sha256
(base32
"17c0203y5qz9w8iyhs26l44qf6a1vp26b5ykz1ypdr2kv6g02df9"))))
(base32 "0j37dgyji36hvb5dbzlmh5rj83jwhni02yq16g6rd3hj8f7qhdn2"))))
(build-system python-build-system)
(native-inputs
`(("util-linux" ,util-linux) ; setsid command, for the tests
@ -980,14 +979,14 @@ (define-public restic
(define-public burp
(package
(name "burp")
(version "2.3.2")
(version "2.3.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/burp/burp-" version
"/burp-" version ".tar.bz2"))
(sha256
(base32
"1nkkn0nfydn39cl5rxd1wbmzizird6z05j9h2xr7xczdlhhjnaai"))))
"0r82mmfjm57yr4f34za3x3rkgc5z2c7nwbnsjjki16qfc9kjyai3"))))
(build-system gnu-build-system)
(inputs
`(("librsync" ,librsync)

View file

@ -553,9 +553,9 @@ (define* (make-ld-wrapper name #:key
#t)))))
(synopsis "The linker wrapper")
(description
"The linker wrapper (or 'ld-wrapper') wraps the linker to add any
missing '-rpath' flags, and to detect any misuse of libraries outside of the
store.")
"The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any
missing @code{-rpath} flags, and to detect any misuse of libraries outside of
the store.")
(home-page "https://www.gnu.org/software/guix//")
(license gpl3+)))
@ -961,8 +961,8 @@ (define-public (make-glibc-locales glibc)
(synopsis "All the locales supported by the GNU C Library")
(description
"This package provides all the locales supported by the GNU C Library,
more than 400 in total. To use them set the 'LOCPATH' environment variable to
the 'share/locale' sub-directory of this package.")
more than 400 in total. To use them set the @code{LOCPATH} environment variable
to the @code{share/locale} sub-directory of this package.")
(outputs '("out")) ;110+ MiB
(native-search-paths '())
(arguments
@ -1099,7 +1099,7 @@ (define-public glibc/hurd-headers
(define-public tzdata
(package
(name "tzdata")
(version "2018i")
(version "2019a")
(source (origin
(method url-fetch)
(uri (string-append
@ -1107,7 +1107,7 @@ (define-public tzdata
version ".tar.gz"))
(sha256
(base32
"1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42"))))
"0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@ -1157,7 +1157,7 @@ (define-public tzdata
version ".tar.gz"))
(sha256
(base32
"1p1jxlnryaxknj0l768h3dmlk2jpqz5n5d24w9c9vyx6dj3xpb5a"))))))
"1x9z8fpgnhzlsnps0hamb54ymaskjab7ys9m4i4gpk9hpiig2fc7"))))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)

File diff suppressed because it is too large Load diff

View file

@ -2325,23 +2325,21 @@ (define-public python-dnaio
(define-public cutadapt
(package
(name "cutadapt")
(version "1.18")
(version "2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marcelm/cutadapt.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (pypi-uri "cutadapt" version))
(sha256
(base32
"08bbfwyc0kvcd95jf2s95xiv9s3cbsxm39ydl0qck3fw3cviwxpg"))))
"1vqmsfkm6llxzmsz9wcfcvzx9a9f8iabvwik2rbyn7nc4wm25z89"))))
(build-system python-build-system)
(inputs
`(("python-dnaio" ,python-dnaio)
("python-xopen" ,python-xopen)))
(native-inputs
`(("python-cython" ,python-cython)
("python-pytest" ,python-pytest)))
("python-pytest" ,python-pytest)
("python-setuptools-scm" ,python-setuptools-scm)))
(home-page "https://cutadapt.readthedocs.io/en/stable/")
(synopsis "Remove adapter sequences from nucleotide sequencing reads")
(description
@ -6792,14 +6790,14 @@ (define-public r-annotationforge
(define-public r-rbgl
(package
(name "r-rbgl")
(version "1.58.1")
(version "1.58.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "RBGL" version))
(sha256
(base32
"1l5x2icv9di1lr3gqfi0vjnyd9xc3l77yc42ippqd4cadj3d1pzf"))))
"0vhnh47pswnp27c0zqcbnnsayfmq3cxcgrs9g860555ldqfl4cyl"))))
(properties `((upstream-name . "RBGL")))
(build-system r-build-system)
(propagated-inputs `(("r-graph" ,r-graph)))
@ -7014,29 +7012,6 @@ (define-public r-grohmm
"This package provides a pipeline for the analysis of GRO-seq data.")
(license license:gpl3+)))
(define-public r-sparql
(package
(name "r-sparql")
(version "1.16")
(source (origin
(method url-fetch)
(uri (cran-uri "SPARQL" version))
(sha256
(base32
"0gak1q06yyhdmcxb2n3v0h9gr1vqd0viqji52wpw211qp6r6dcrc"))))
(properties `((upstream-name . "SPARQL")))
(build-system r-build-system)
(propagated-inputs
`(("r-rcurl" ,r-rcurl)
("r-xml" ,r-xml)))
(home-page "https://cran.r-project.org/web/packages/SPARQL")
(synopsis "SPARQL client for R")
(description "This package provides an interface to use SPARQL to pose
SELECT or UPDATE queries to an end-point.")
;; The only license indication is found in the DESCRIPTION file,
;; which states GPL-3. So we cannot assume GPLv3+.
(license license:gpl3)))
(define-public vsearch
(package
(name "vsearch")
@ -7243,32 +7218,6 @@ (define-public bioruby
;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
(license (list license:ruby license:lgpl2.1+ license:gpl2+ ))))
(define-public r-acsnminer
(package
(name "r-acsnminer")
(version "0.16.8.25")
(source (origin
(method url-fetch)
(uri (cran-uri "ACSNMineR" version))
(sha256
(base32
"0gh604s8qall6zfjlwcg2ilxjvz08dplf9k5g47idhv43scm748l"))))
(properties `((upstream-name . "ACSNMineR")))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
("r-gridextra" ,r-gridextra)))
(home-page "https://cran.r-project.org/web/packages/ACSNMineR")
(synopsis "Gene enrichment analysis")
(description
"This package provides tools to compute and represent gene set enrichment
or depletion from your data based on pre-saved maps from the @dfn{Atlas of
Cancer Signalling Networks} (ACSN) or user imported maps. The gene set
enrichment can be run with hypergeometric test or Fisher exact test, and can
use multiple corrections. Visualization of data can be done either by
barplots or heatmaps.")
(license license:gpl2+)))
(define-public r-biocinstaller
(package
(name "r-biocinstaller")
@ -7315,30 +7264,6 @@ (define-public r-biocviews
also known as views, in a controlled vocabulary.")
(license license:artistic2.0)))
(define-public r-bookdown
(package
(name "r-bookdown")
(version "0.9")
(source (origin
(method url-fetch)
(uri (cran-uri "bookdown" version))
(sha256
(base32
"0vg1s1w0l9pm95asqb21yf39mfk1nc9rdhmlys9xwr7p7i7rsz32"))))
(build-system r-build-system)
(propagated-inputs
`(("r-htmltools" ,r-htmltools)
("r-knitr" ,r-knitr)
("r-rmarkdown" ,r-rmarkdown)
("r-tinytex" ,r-tinytex)
("r-yaml" ,r-yaml)
("r-xfun" ,r-xfun)))
(home-page "https://github.com/rstudio/bookdown")
(synopsis "Authoring books and technical documents with R markdown")
(description "This package provides output formats and utilities for
authoring books and technical documents with R Markdown.")
(license license:gpl3)))
(define-public r-biocstyle
(package
(name "r-biocstyle")
@ -7412,29 +7337,6 @@ (define-public r-bioccheck
checks on R packages that are to be submitted to the Bioconductor repository.")
(license license:artistic2.0)))
(define-public r-optparse
(package
(name "r-optparse")
(version "1.6.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "optparse" version))
(sha256
(base32
"04vyb6dhcga30mvghsg1p052jmf69xqxkvh3hzqz7dscyppy76w1"))))
(build-system r-build-system)
(propagated-inputs
`(("r-getopt" ,r-getopt)))
(home-page
"https://github.com/trevorld/optparse")
(synopsis "Command line option parser")
(description
"This package provides a command line parser inspired by Python's
@code{optparse} library to be used with Rscript to write shebang scripts
that accept short and long options.")
(license license:gpl2+)))
(define-public r-s4vectors
(package
(name "r-s4vectors")
@ -7462,31 +7364,6 @@ (define-public r-s4vectors
S4Vectors package itself.")
(license license:artistic2.0)))
(define-public r-seqinr
(package
(name "r-seqinr")
(version "3.4-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "seqinr" version))
(sha256
(base32
"17zv0n5cji17izwmwg0jcbxbjl3w5rls91w15svcnlpxjms38ahn"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ade4" ,r-ade4)
("r-segmented" ,r-segmented)))
(inputs
`(("zlib" ,zlib)))
(home-page "http://seqinr.r-forge.r-project.org/")
(synopsis "Biological sequences retrieval and analysis")
(description
"This package provides tools for exploratory data analysis and data
visualization of biological sequence (DNA and protein) data. It also includes
utilities for sequence data management under the ACNUC system.")
(license license:gpl2+)))
(define-public r-iranges
(package
(name "r-iranges")
@ -7888,10 +7765,10 @@ (define-public r-rsamtools
(home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
(synopsis "Interface to samtools, bcftools, and tabix")
(description
"This package provides an interface to the 'samtools', 'bcftools', and
'tabix' utilities for manipulating SAM (Sequence Alignment / Map), FASTA,
binary variant call (BCF) and compressed indexed tab-delimited (tabix)
files.")
"This package provides an interface to the @code{samtools},
@code{bcftools}, and @code{tabix} utilities for manipulating SAM (Sequence
Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed
tab-delimited (tabix) files.")
(license license:expat)))
(define-public r-delayedarray
@ -8039,13 +7916,13 @@ (define-public r-rtracklayer
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
(version "1.34.6")
(version "1.34.8")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
"1cz7qx324dmsrkzyhm956cfgr08gpily5rpym7hc8zz5kbl6i3ra"))))
"1sxp86hdsg32l2c85jgic65gy92d8kxsm01264hrx6yikdhicjax"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@ -8413,6 +8290,9 @@ (define-public r-rhtslib
"13fv78sk5g0gqfl3ks3rps3zc1k66a4lzxvgn36r7ix43yxk7hnr"))))
(properties `((upstream-name . "Rhtslib")))
(build-system r-build-system)
;; Without this a temporary directory ends up in the Rhtslib.so binary,
;; which makes R abort the build.
(arguments '(#:configure-flags '("--no-staged-install")))
(propagated-inputs
`(("r-zlibbioc" ,r-zlibbioc)))
(inputs
@ -8467,6 +8347,7 @@ (define-public r-rcas
(sha256
(base32
"0ss5hcg2m7gjji6dd23zxa5bd5a7knwcnada4qs5q2l4clgk39ad"))))
(properties `((upstream-name . "RCAS")))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
@ -8587,45 +8468,6 @@ (define-public r-mutationalpatterns
in SNV base substitution data.")
(license license:expat)))
(define-public r-wgcna
(package
(name "r-wgcna")
(version "1.66")
(source
(origin
(method url-fetch)
(uri (cran-uri "WGCNA" version))
(sha256
(base32
"0rhnyhzfn93yp24jz9v6dzrmyizwzdw070a7idm0k33w1cm8sjqv"))))
(properties `((upstream-name . "WGCNA")))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
("r-doparallel" ,r-doparallel)
("r-dynamictreecut" ,r-dynamictreecut)
("r-fastcluster" ,r-fastcluster)
("r-foreach" ,r-foreach)
("r-go-db" ,r-go-db)
("r-hmisc" ,r-hmisc)
("r-impute" ,r-impute)
("r-rcpp" ,r-rcpp)
("r-robust" ,r-robust)
("r-survival" ,r-survival)
("r-matrixstats" ,r-matrixstats)
("r-preprocesscore" ,r-preprocesscore)))
(home-page
"http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
(synopsis "Weighted correlation network analysis")
(description
"This package provides functions necessary to perform Weighted
Correlation Network Analysis on high-dimensional data. It includes functions
for rudimentary data cleaning, construction and summarization of correlation
networks, module identification and functions for relating both variables and
modules to sample traits. It also includes a number of utility functions for
data manipulation and visualization.")
(license license:gpl2+)))
(define-public r-chipkernels
(let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
(revision "1"))
@ -8693,39 +8535,6 @@ (define-public r-seqgl
factors bound at the specific regions.")
(license license:gpl2+)))
(define-public r-gkmsvm
(package
(name "r-gkmsvm")
(version "0.79.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gkmSVM" version))
(sha256
(base32
"04dakbgfvfalz4rm4fvvybp506dn5fbj5g86ybfhrc6wywjllsz3"))))
(properties `((upstream-name . "gkmSVM")))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
("r-biostrings" ,r-biostrings)
("r-genomeinfodb" ,r-genomeinfodb)
("r-genomicranges" ,r-genomicranges)
("r-iranges" ,r-iranges)
("r-kernlab" ,r-kernlab)
("r-rcpp" ,r-rcpp)
("r-rocr" ,r-rocr)
("r-rtracklayer" ,r-rtracklayer)
("r-s4vectors" ,r-s4vectors)
("r-seqinr" ,r-seqinr)))
(home-page "https://cran.r-project.org/web/packages/gkmSVM")
(synopsis "Gapped-kmer support vector machine")
(description
"This R package provides tools for training gapped-kmer SVM classifiers
for DNA and protein sequences. This package supports several sequence
kernels, including: gkmSVM, kmer-SVM, mismatch kernel and wildcard kernel.")
(license license:gpl2+)))
(define-public r-tximport
(package
(name "r-tximport")
@ -9632,40 +9441,33 @@ (define-public r-msnid
(define-public r-seurat
(package
(name "r-seurat")
(version "2.3.4")
(version "3.0.0")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
"0l8bv4i9nzz26mirnva10mq6pimibj24vk7vpvfypgn7xk4942hd"))))
"183lm2wk0i3g114jbdf7pb4ssizr48qzqv3cknbsiackr8kvpsvc"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
`(("r-ape" ,r-ape)
("r-cluster" ,r-cluster)
("r-cowplot" ,r-cowplot)
("r-dosnow" ,r-dosnow)
("r-dplyr" ,r-dplyr)
("r-dtw" ,r-dtw)
("r-fitdistrplus" ,r-fitdistrplus)
("r-foreach" ,r-foreach)
("r-fpc" ,r-fpc)
("r-future" ,r-future)
("r-future-apply" ,r-future-apply)
("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-ggridges" ,r-ggridges)
("r-gplots" ,r-gplots)
("r-hdf5r" ,r-hdf5r)
("r-hmisc" ,r-hmisc)
("r-httr" ,r-httr)
("r-ica" ,r-ica)
("r-igraph" ,r-igraph)
("r-irlba" ,r-irlba)
("r-lars" ,r-lars)
("r-kernsmooth" ,r-kernsmooth)
("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass)
("r-matrix" ,r-matrix)
("r-metap" ,r-metap)
("r-mixtools" ,r-mixtools)
("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly)
("r-png" ,r-png)
@ -9674,12 +9476,14 @@ (define-public r-seurat
("r-rcpp" ,r-rcpp)
("r-rcppeigen" ,r-rcppeigen)
("r-rcppprogress" ,r-rcppprogress)
("r-reshape2" ,r-reshape2)
("r-reticulate" ,r-reticulate)
("r-rlang" ,r-rlang)
("r-rocr" ,r-rocr)
("r-rsvd" ,r-rsvd)
("r-rtsne" ,r-rtsne)
("r-scales" ,r-scales)
("r-sctransform" ,r-sctransform)
("r-sdmtools" ,r-sdmtools)
("r-tidyr" ,r-tidyr)
("r-tsne" ,r-tsne)))
(home-page "http://www.satijalab.org/seurat")
(synopsis "Seurat is an R toolkit for single cell genomics")
@ -10026,14 +9830,14 @@ (define-public r-dirichletmultinomial
(define-public r-ensembldb
(package
(name "r-ensembldb")
(version "2.6.7")
(version "2.6.8")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ensembldb" version))
(sha256
(base32
"1wqq0m1fgvgkzq5zr2s9cj2s7qkg9lx3dwwsqixzs5fn52p4dn7f"))))
"0gijx2l2y00h6gfj3gfr7rd4vva6qf2vkfdfy5gdmvqlxy84ka38"))))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
@ -10152,6 +9956,16 @@ (define-public r-ggbio
(base32
"0wq49qqzkcn8s19xgaxf2s1j1a563d7pbhhvris6fhxfdjsz4934"))))
(build-system r-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; See https://github.com/tengfei/ggbio/issues/117
;; This fix will be included in the next release.
(add-after 'unpack 'fix-typo
(lambda _
(substitute* "R/GGbio-class.R"
(("fechable") "fetchable"))
#t)))))
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
("r-annotationfilter" ,r-annotationfilter)
@ -10352,14 +10166,14 @@ (define-public r-erma
(define-public r-ldblock
(package
(name "r-ldblock")
(version "1.12.0")
(version "1.12.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ldblock" version))
(sha256
(base32
"0xbf4pmhrk5fnd1iz5wzjvdr75v114bwpznhcig4wiqmxc27sips"))))
"01lf74pby7si2g3kgc10qzr6lkcbigqcgqs2j3anc38vzxv0zhwv"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)
@ -10384,14 +10198,14 @@ (define-public r-ldblock
(define-public r-gqtlstats
(package
(name "r-gqtlstats")
(version "1.14.0")
(version "1.14.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "gQTLstats" version))
(sha256
(base32
"1sg9kw59dlayj7qxql9pd93d4hmml504sa3kkfpzfh3xri7m5pxf"))))
"1rkbnb3h02fdksc4nacqvmq4jgbj9fz4hm7j51yr2ggcgcykwraa"))))
(properties `((upstream-name . "gQTLstats")))
(build-system r-build-system)
(propagated-inputs
@ -10625,14 +10439,14 @@ (define-public r-hdf5array
(define-public r-rhdf5lib
(package
(name "r-rhdf5lib")
(version "1.4.2")
(version "1.4.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version))
(sha256
(base32
"06bxd3wz8lrvh2hzvmjpdv4lvzj5lz9353bw5b3zb98cb8w9r2j5"))
"0hjhjvg2kss71fkmxlbgnyyy1agwzgq57rxkgkm4riw82x2rvw7q"))
(modules '((guix build utils)))
(snippet
'(begin
@ -10861,14 +10675,14 @@ (define-public r-delayedmatrixstats
(define-public r-phangorn
(package
(name "r-phangorn")
(version "2.4.0")
(version "2.5.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "phangorn" version))
(sha256
(base32
"0xc8k552nxczy19jr0xjjagrzc8x6lafasgk2c099ls8bc1yml1i"))))
"1bv86yfk5r015s7ij6v4zz7bagwrw9m13yfs5853drxb19d5h1m3"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ape" ,r-ape)
@ -11075,23 +10889,31 @@ (define-public ritornello
(define-public trim-galore
(package
(name "trim-galore")
(version "0.4.5")
(version "0.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FelixKrueger/TrimGalore.git")
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(file-name (git-file-name name version))
(sha256
(base32
"0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71"))))
"1y31wbxwkm9xqzr5zv1pk5q418whnmlmgmfyxxpnl12h83m2i9iv"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'configure
(lambda _
;; Trim Galore tries to figure out what version of Python
;; cutadapt is using by looking at the shebang. Of course that
;; doesn't work, because cutadapt is wrapped in a shell script.
(substitute* "trim_galore"
(("my \\$python_return.*")
"my $python_return = \"Python 3.999\";\n"))
#t))
(delete 'build)
(add-after 'unpack 'hardcode-tool-references
(lambda* (#:key inputs #:allow-other-keys)
@ -11100,14 +10922,18 @@ (define-public trim-galore
(string-append "$path_to_cutadapt = '"
(assoc-ref inputs "cutadapt")
"/bin/cutadapt'"))
(("\\| gzip")
(string-append "| "
(("\\$compression_path = \"gzip\"")
(string-append "$compression_path = \""
(assoc-ref inputs "gzip")
"/bin/gzip"))
"/bin/gzip\""))
(("\"gunzip")
(string-append "\""
(assoc-ref inputs "gzip")
"/bin/gunzip")))
"/bin/gunzip"))
(("\"pigz")
(string-append "\""
(assoc-ref inputs "pigz")
"/bin/pigz")))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
@ -11119,6 +10945,7 @@ (define-public trim-galore
(inputs
`(("gzip" ,gzip)
("perl" ,perl)
("pigz" ,pigz)
("cutadapt" ,cutadapt)))
(native-inputs
`(("unzip" ,unzip)))
@ -12220,6 +12047,23 @@ (define-public python-loompy
single-cell RNA-seq data.")
(license license:bsd-3)))
;; pigx-scrnaseq does not work with the latest version of loompy.
(define-public python-loompy-for-pigx-scrnaseq
(package (inherit python-loompy)
(name "python-loompy")
(version "2.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/linnarsson-lab/loompy.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0pjyl532pl8sbv71yci6h0agchn0naw2qjcwj50n6afrsahbsag3"))))
;; There are none.
(arguments '(#:tests? #f))))
;; We cannot use the latest commit because it requires Java 9.
(define-public java-forester
(let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
@ -12833,7 +12677,7 @@ (define-public pigx-rnaseq
(define-public pigx-chipseq
(package
(name "pigx-chipseq")
(version "0.0.31")
(version "0.0.40")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@ -12841,7 +12685,7 @@ (define-public pigx-chipseq
"/pigx_chipseq-" version ".tar.gz"))
(sha256
(base32
"0l3vd9xwqzap3mmyj8xwqp84kj7scbq308diqnwg2albphl75xqs"))))
"0y9x62cfwzhsp82imnawyamxp58bcb00yjxdy44spylqnjdlsaj8"))))
(build-system gnu-build-system)
;; parts of the tests rely on access to the network
(arguments '(#:tests? #f))
@ -12990,7 +12834,7 @@ (define-public pigx-scrnaseq
("python-pandas" ,python-pandas)
("python-magic" ,python-magic)
("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy)
("python-loompy" ,python-loompy-for-pigx-scrnaseq)
("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("samtools" ,samtools)
@ -13461,31 +13305,57 @@ (define-public find-circ
(define-public python-scanpy
(package
(name "python-scanpy")
(version "1.2.2")
(version "1.4")
;; Fetch from git because the pypi tarball does not include tests.
(source
(origin
(method url-fetch)
(uri (pypi-uri "scanpy" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/theislab/scanpy.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1ak7bxms5a0yvf65prppq2g38clkv7c7jnjbnfpkh3xxv7q512jz"))))
"0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys)
;; These tests require Internet access.
(delete-file-recursively "scanpy/tests/notebooks")
(delete-file "scanpy/tests/test_clustering.py")
;; TODO: I can't get the plotting tests to work, even with Xvfb.
(delete-file "scanpy/tests/test_plotting.py")
(delete-file "scanpy/tests/test_preprocessing.py")
(delete-file "scanpy/tests/test_read_10x.py")
(setenv "PYTHONPATH"
(string-append (getcwd) ":"
(getenv "PYTHONPATH")))
(invoke "pytest")
#t)))))
(propagated-inputs
`(("python-anndata" ,python-anndata)
("python-h5py" ,python-h5py)
("python-igraph" ,python-igraph)
("python-numba" ,python-numba)
("python-joblib" ,python-joblib)
("python-louvain" ,python-louvain)
("python-matplotlib" ,python-matplotlib)
("python-natsort" ,python-natsort)
("python-networkx" ,python-networkx)
("python-statsmodels" ,python-statsmodels)
("python-scikit-learn" ,python-scikit-learn)
("python-matplotlib" ,python-matplotlib)
("python-numba" ,python-numba)
("python-pandas" ,python-pandas)
("python-scikit-learn" ,python-scikit-learn)
("python-scipy" ,python-scipy)
("python-seaborn" ,python-seaborn)
("python-h5py" ,python-h5py)
("python-statsmodels" ,python-statsmodels)
("python-tables" ,python-tables)))
(home-page "http://github.com/theislab/scanpy")
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://github.com/theislab/scanpy")
(synopsis "Single-Cell Analysis in Python.")
(description "Scanpy is a scalable toolkit for analyzing single-cell gene
expression data. It includes preprocessing, visualization, clustering,
@ -13494,6 +13364,38 @@ (define-public python-scanpy
million cells.")
(license license:bsd-3)))
(define-public python-bbknn
(package
(name "python-bbknn")
(version "1.3.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "bbknn" version))
(sha256
(base32
"1qgdganvj3lyxj84v7alm23b9vqhwpn8z0115qndpnpy90qxynwz"))))
(build-system python-build-system)
(propagated-inputs
`(("python-annoy" ,python-annoy)
("python-cython" ,python-cython)
("python-faiss" ,python-faiss)
("python-numpy" ,python-numpy)
("python-scanpy" ,python-scanpy)))
(home-page "https://github.com/Teichlab/bbknn")
(synopsis "Batch balanced KNN")
(description "BBKNN is a batch effect removal tool that can be directly
used in the Scanpy workflow. It serves as an alternative to
@code{scanpy.api.pp.neighbors()}, with both functions creating a neighbour
graph for subsequent use in clustering, pseudotime and UMAP visualisation. If
technical artifacts are present in the data, they will make it challenging to
link corresponding cell types across different batches. BBKNN actively
combats this effect by splitting your data into batches and finding a smaller
number of neighbours for each cell within each of the groups. This helps
create connections between analogous cells in different batches without
altering the counts or PCA space.")
(license license:expat)))
(define-public gffcompare
(let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
(revision "1"))
@ -14661,3 +14563,227 @@ (define-public adapterremoval
Additionally, the AdapterRemoval may be used to recover a consensus adapter
sequence for paired-ended data, for which this information is not available.")
(license license:gpl3+)))
(define-public pplacer
(let ((commit "807f6f3"))
(package
(name "pplacer")
;; The commit should be updated with each version change.
(version "1.1.alpha19")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/matsen/pplacer.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
(build-system ocaml-build-system)
(arguments
`(#:modules ((guix build ocaml-build-system)
(guix build utils)
(ice-9 ftw))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'fix-build-with-latest-ocaml
(lambda _
(substitute* "myocamlbuild.ml"
(("dep \\[\"c_pam\"\\]" m)
(string-append "flag [\"ocaml\"; \"compile\"] (A \"-unsafe-string\");\n"
m))
(("let run_and_read" m)
(string-append "
let split s ch =
let x = ref [] in
let rec go s =
let pos = String.index s ch in
x := (String.before s pos)::!x;
go (String.after s (pos + 1))
in
try go s
with Not_found -> !x
let split_nl s = split s '\\n'
let before_space s =
try String.before s (String.index s ' ')
with Not_found -> s
" m))
(("run_and_read \"ocamlfind list \\| cut -d' ' -f1\"" m)
(string-append "List.map before_space (split_nl & " m ")"))
((" blank_sep_strings &") "")
((" Lexing.from_string &") ""))
#t))
(add-after 'unpack 'replace-bundled-cddlib
(lambda* (#:key inputs #:allow-other-keys)
(let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
(local-dir "cddlib_guix"))
(mkdir local-dir)
(with-directory-excursion local-dir
(invoke "tar" "xvf" cddlib-src))
(let ((cddlib-src-folder
(string-append local-dir "/"
(list-ref (scandir local-dir) 2)
"/lib-src")))
(for-each make-file-writable (find-files "cdd_src" ".*"))
(for-each
(lambda (file)
(copy-file file
(string-append "cdd_src/" (basename file))))
(find-files cddlib-src-folder ".*[ch]$")))
#t)))
(add-after 'unpack 'fix-makefile
(lambda _
;; Remove system calls to 'git'.
(substitute* "Makefile"
(("^DESCRIPT:=pplacer-.*")
(string-append
"DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
(substitute* "myocamlbuild.ml"
(("git describe --tags --long .*\\\" with")
(string-append
"echo -n v" ,version "-" ,commit "\" with")))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(copy-recursively "bin" bin))
#t)))))
(inputs
`(("zlib" ,zlib "static")
("gsl" ,gsl)
("ocaml-ounit" ,ocaml-ounit)
("ocaml-batteries" ,ocaml-batteries)
("ocaml-camlzip" ,camlzip)
("ocaml-csv" ,ocaml-csv)
("ocaml-sqlite3" ,ocaml-sqlite3)
("ocaml-xmlm" ,ocaml-xmlm)
("ocaml-mcl" ,ocaml-mcl)
("ocaml-gsl" ,ocaml-gsl-1)))
(native-inputs
`(("cddlib-src" ,(package-source cddlib))
("ocamlbuild" ,ocamlbuild)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("pplacer-scripts" ,pplacer-scripts)))
(synopsis "Phylogenetic placement of biological sequences")
(description
"Pplacer places query sequences on a fixed reference phylogenetic tree
to maximize phylogenetic likelihood or posterior probability according to a
reference alignment. Pplacer is designed to be fast, to give useful
information about uncertainty, and to offer advanced visualization and
downstream analysis.")
(home-page "http://matsen.fhcrc.org/pplacer")
(license license:gpl3))))
;; This package is installed alongside 'pplacer'. It is a separate package so
;; that it can use the python-build-system for the scripts that are
;; distributed alongside the main OCaml binaries.
(define pplacer-scripts
(package
(inherit pplacer)
(name "pplacer-scripts")
(build-system python-build-system)
(arguments
`(#:python ,python-2
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-scripts-dir
(lambda _ (chdir "scripts") #t))
(replace 'check
(lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
(add-after 'install 'wrap-executables
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(let ((path (string-append
(assoc-ref inputs "hmmer") "/bin:"
(assoc-ref inputs "infernal") "/bin")))
(display path)
(wrap-program (string-append bin "/refpkg_align.py")
`("PATH" ":" prefix (,path))))
(let ((path (string-append
(assoc-ref inputs "hmmer") "/bin")))
(wrap-program (string-append bin "/hrefpkg_query.py")
`("PATH" ":" prefix (,path)))))
#t)))))
(inputs
`(("infernal" ,infernal)
("hmmer" ,hmmer)))
(propagated-inputs
`(("python-biopython" ,python2-biopython)
("taxtastic" ,taxtastic)))
(synopsis "Pplacer Python scripts")))
(define-public python2-checkm-genome
(package
(name "python2-checkm-genome")
(version "1.0.13")
(source
(origin
(method url-fetch)
(uri (pypi-uri "checkm-genome" version))
(sha256
(base32
"0bm8gpxjmzxsxxl8lzwqhgx8g1dlnmp6znz7wv3hgb0gdjbf9dzz"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
#:tests? #f)) ; some tests are interactive
(propagated-inputs
`(("python-dendropy" ,python2-dendropy)
("python-matplotlib" ,python2-matplotlib)
("python-numpy" ,python2-numpy)
("python-pysam" ,python2-pysam)
("python-scipy" ,python2-scipy)))
(home-page "http://pypi.python.org/pypi/checkm/")
(synopsis "Assess the quality of putative genome bins")
(description
"CheckM provides a set of tools for assessing the quality of genomes
recovered from isolates, single cells, or metagenomes. It provides robust
estimates of genome completeness and contamination by using collocated sets of
genes that are ubiquitous and single-copy within a phylogenetic lineage.
Assessment of genome quality can also be examined using plots depicting key
genomic characteristics (e.g., GC, coding density) which highlight sequences
outside the expected distributions of a typical genome. CheckM also provides
tools for identifying genome bins that are likely candidates for merging based
on marker set compatibility, similarity in genomic characteristics, and
proximity within a reference genome.")
(license license:gpl3+)))
(define-public umi-tools
(package
(name "umi-tools")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "umi_tools" version))
(sha256
(base32
"08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a"))))
(build-system python-build-system)
(inputs
`(("python-setuptools" ,python-setuptools)
("python-pandas" ,python-pandas)
("python-future" ,python-future)
("python-scipy" ,python-scipy)
("python-matplotlib" ,python-matplotlib)
("python-regex" ,python-regex)
("python-pysam" ,python-pysam)))
(native-inputs
`(("python-setuptools" ,python-setuptools)
("python-cython" ,python-cython)))
(home-page "https://github.com/CGATOxford/UMI-tools")
(synopsis "Tools for analyzing unique modular identifiers")
(description "This package provides tools for dealing with @dfn{Unique
Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in
genetic sequences. There are six tools: the @code{extract} and
@code{whitelist} commands are used to prepare a fastq containg UMIs @code{+/-}
cell barcodes for alignment. The remaining commands, @code{group},
@code{dedup}, and @{count}/@code{count_tab}, are used to identify PCR
duplicates using the UMIs and perform different levels of analysis depending
on the needs of the user.")
(license license:expat)))

View file

@ -90,7 +90,8 @@ (define-public grub
(base32
"03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1"))
(patches (search-patches "grub-check-error-efibootmgr.patch"
"grub-binutils-compat.patch"))))
"grub-binutils-compat.patch"
"grub-efi-fat-serial-number.patch"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -378,7 +379,7 @@ (define-public dtc
(define u-boot
(package
(name "u-boot")
(version "2019.01")
(version "2019.04")
(source (origin
(method url-fetch)
(uri (string-append
@ -386,7 +387,10 @@ (define u-boot
"u-boot-" version ".tar.bz2"))
(sha256
(base32
"08hwsmh5xsb1gcxsv8gvx00bai938dm5y3889n8jif3a8rd7xgah"))))
"1vwv4bgbl7fjcm073zrphn17hnz5h5h778f88ivdsgbb2lnpgdvn"))
(patches
(search-patches
"u-boot-fix-mkimage-header-verification.patch"))))
(native-inputs
`(("bc" ,bc)
("bison" ,bison)
@ -441,6 +445,10 @@ (define-public u-boot-tools
(("def test_ctrl_c")
"@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c"))
;; Test against the tools being installed rather than tools built
;; for "sandbox" target.
(substitute* "test/image/test-imagetools.sh"
(("BASEDIR=sandbox") "BASEDIR=."))
(for-each (lambda (file)
(substitute* file
;; Disable signatures, due to GPL/Openssl
@ -483,12 +491,19 @@ (define-public u-boot-tools
(delete 'check)
(add-after 'install 'check
(lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags)
(setenv "SDL_VIDEODRIVER" "dummy")
(setenv "PAGER" "cat")
(apply invoke "make" test-target make-flags)
(symlink "build-sandbox_spl" "sandbox")
(invoke "test/image/test-imagetools.sh"))))))
(invoke "test/image/test-imagetools.sh")))
;; Only run full test suite on x86_64 systems, as many tests
;; assume x86_64.
,@(if (string-match "^x86_64-linux"
(or (%current-target-system)
(%current-system)))
'((add-after 'check 'check-x86
(lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags)
(setenv "SDL_VIDEODRIVER" "dummy")
(setenv "PAGER" "cat")
(apply invoke "make" test-target make-flags))))
'()))))
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc). This package provides its
board-independent tools.")))
@ -577,8 +592,32 @@ (define-public u-boot-vexpress
(define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
(define-public u-boot-beagle-bone-black
(make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
(define-public u-boot-am335x-boneblack
(let ((base (make-u-boot-package "am335x_evm" "arm-linux-gnueabihf")))
(package
(inherit base)
(name "u-boot-am335x-boneblack")
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc).
This U-Boot is built for the BeagleBone Black, which was removed upstream,
adjusted from the am335x_evm build with several device trees removed so that
it fits within common partitioning schemes.")
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'patch-defconfig
;; Patch out other devicetrees to build image small enough to
;; fit within typical partitioning schemes where the first
;; partition begins at sector 2048.
(lambda _
(substitute* "configs/am335x_evm_defconfig"
(("CONFIG_OF_LIST=.*$") "CONFIG_OF_LIST=\"am335x-evm am335x-boneblack\"\n"))
#t)))))))))
(define-public u-boot-am335x-evm
(make-u-boot-package "am335x_evm" "arm-linux-gnueabihf"))
(define-public (make-u-boot-sunxi64-package board triplet)
(let ((base (make-u-boot-package board triplet)))
@ -637,7 +676,7 @@ (define-public u-boot-novena
also initializes the boards (RAM etc).
This U-Boot is built for Novena. Be advised that this version, contrary
to Novena upstream, does not load u-boot.img from the first patition.")
to Novena upstream, does not load u-boot.img from the first partition.")
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
@ -647,7 +686,7 @@ (define-public u-boot-novena
;; allowing it to be installed at a device offset.
(lambda _
(substitute* "configs/novena_defconfig"
(("CONFIG_SPL_FAT_SUPPORT=y") "# CONFIG_SPL_FAT_SUPPORT is not set"))
(("CONFIG_SPL_FS_FAT=y") "# CONFIG_SPL_FS_FAT is not set"))
#t)))))))))
(define-public u-boot-cubieboard

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
@ -38,7 +38,8 @@ (define-module (gnu packages c)
#:use-module (gnu packages python)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
#:use-module (gnu packages pkg-config))
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml))
(define-public tcc
(package
@ -257,3 +258,32 @@ (define-public libbytesize
every project that needs to deal with sizes in bytes. It is written in the C
language with thin bindings for other languages.")
(license license:lgpl2.1+)))
(define-public udunits
(package
(name "udunits")
(version "2.2.26")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.unidata.ucar.edu/pub/udunits/"
"udunits-" version ".tar.gz"))
(sha256
(base32
"0v9mqw4drnkzkm57331ail6yvs9485jmi37s40lhvmf7r5lli3rn"))))
(build-system gnu-build-system)
(inputs
`(("expat" ,expat)))
(home-page "https://www.unidata.ucar.edu/software/udunits/")
(synopsis "C library for units of physical quantities and value-conversion utils")
(description
"The UDUNITS-2 package provides support for units of physical quantities.
Its three main components are:
@enumerate
@item @code{udunits2lib}, a C library for units of physical quantities;
@item @code{udunits2prog}, a utility for obtaining the definition of a unit
and for converting numeric values between compatible units; and
@item an extensive database of units.
@end enumerate\n")
;; Like the BSD-3 license but with an extra anti patent clause.
(license (license:non-copyleft "file://COPYRIGHT"))))

View file

@ -96,13 +96,13 @@ (define-public libical
(define-public khal
(package
(name "khal")
(version "0.9.10")
(version "0.10.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "khal" version))
(sha256
(base32
"03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4"))))
"1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -122,22 +122,14 @@ (define-public khal
(setenv "TZ"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo/Zulu"))
(invoke "py.test" "tests" "-k"
(string-append
;; These tests are known to fail in when not
;; running in a TTY:
;; https://github.com/pimutils/khal/issues/683
"not test_printics_read_from_stdin "
"and not test_import_from_stdin "
;; https://github.com/pimutils/khal/issues/825
"and not test_description_and_location_and_categories")))))))
(invoke "py.test" "tests"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-setuptools-scm" ,python-setuptools-scm)
;; Required for tests
("python-freezegun" ,python-freezegun)
("tzdata" ,tzdata)
("tzdata" ,tzdata-for-tests)
("vdirsyncer" ,vdirsyncer)
;; Required to build manpage
("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
@ -154,7 +146,7 @@ (define-public khal
(synopsis "Console calendar program")
(description "Khal is a standards based console calendar program,
able to synchronize with CalDAV servers through vdirsyncer.")
(home-page "http://lostpackets.de/khal/")
(home-page "https://lostpackets.de/khal/")
(license license:expat)))
(define-public remind

View file

@ -8,7 +8,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -336,13 +336,15 @@ (define-public dvdisaster
(package
(name "dvdisaster")
(version "0.79.5")
(source (origin
(method url-fetch)
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
version ".tar.bz2"))
(sha256
(base32
"0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
(source
(origin
(method url-fetch)
;; Update this (and update HOME-PAGE) when/if one reappears.
(uri (string-append "https://web.archive.org/web/20180428070843/"
"http://dvdisaster.net/downloads/dvdisaster-"
version ".tar.bz2"))
(sha256
(base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)))
@ -384,7 +386,8 @@ (define-public dvdisaster
(copy-file "contrib/dvdisaster48.xpm"
(string-append datadir "/pixmaps/dvdisaster.xpm"))
#t))))))
(home-page "http://dvdisaster.net/en/index.html")
(home-page (string-append "https://web.archive.org/web/20180428070843/"
"http://dvdisaster.net/en/index.html"))
(synopsis "Error correcting codes for optical media images")
(description "Optical media (CD,DVD,BD) keep their data only for a
finite time (typically for many years). After that time, data loss develops
@ -656,7 +659,7 @@ (define-public geteltorito
(define-public asunder
(package
(name "asunder")
(version "2.8")
(version "2.9.3")
(source (origin
(method url-fetch)
(uri
@ -665,7 +668,7 @@ (define-public asunder
".tar.bz2"))
(sha256
(base32
"1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
"1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:out-of-source? #f
@ -860,3 +863,108 @@ (define-public cdrkit-libre
blanking CD-RW media, creating ISO-9660 file system images, extracting audio
CD data, and more. It's mostly compatible with @code{cdrtools}.")
(license gpl2+)))
(define-public libmirage
(package
(name "libmirage")
(version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://downloads.sourceforge.net/cdemu/libmirage-"
version ".tar.bz2"))
(sha256
(base32
"1ydph33sfxplp4872dp8ghp574jk5d4qr8hqz61qnznq1b11cnbr"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
(inputs
`(("glib" ,glib)))
(arguments
;; No tests.
'(#:tests? #f))
(home-page "https://cdemu.sourceforge.io/")
(synopsis "CD-ROM image access library")
(description "libMirage is a CD-ROM image access library. It supports the
following formats: B6T, C2D, CCD, CDI, CIF, CUE, ISO, MDS, MDX, NRG, TOC. It
is written in C and based on GLib. Its aim is to provide uniform access to
the data stored in various image formats.")
(license gpl2+)))
(define-public cdemu-daemon
(package
(name "cdemu-daemon")
(version "3.2.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://downloads.sourceforge.net/cdemu/cdemu-daemon/cdemu-daemon-"
version ".tar.bz2"))
(sha256
(base32
"171qqcziqgf6dd9n8xs9hc71krhjiyx9qr767s8znidyjj88hbc4"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
(inputs
`(("libmirage" ,libmirage)
("glib" ,glib)
("ao" ,ao)))
(arguments
;; No tests.
'(#:tests? #f))
(home-page "https://cdemu.sourceforge.io/")
(synopsis "CD/DVD-ROM device emulator")
(description "CDemu is a software suite designed to emulate an optical
drive and disc (including CD-ROMs and DVD-ROMs).")
(license gpl2+)))
(define-public cdemu-client
(package
(name "cdemu-client")
(version "3.2.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://downloads.sourceforge.net/cdemu/cdemu-client-"
version ".tar.bz2"))
(sha256
(base32
"1zwz987pb2pakfk9kz8a6xa9hq1ip48cn4ryl9z85dik8k2sizm9"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
(inputs
`(("python" ,python)
("python-pygobject" ,python-pygobject)
("cdemu-daemon" ,cdemu-daemon)))
(arguments
;; No tests.
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'install 'patch-shebang
(lambda* (#:key outputs #:allow-other-keys)
(patch-shebang (string-append (assoc-ref outputs "out")
"/bin/cdemu"))
#t))
(add-after 'patch-shebang 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let ((prog (string-append (assoc-ref outputs "out")
"/bin/cdemu")))
(wrap-program prog
`("PYTHONPATH" = (,(getenv "PYTHONPATH"))))
#t))))))
(home-page "https://cdemu.sourceforge.io/")
(synopsis "Command-line client for controlling cdemu-daemon")
(description "CDEmu client is a simple command-line client for controlling
CDEmu daemon.
It provides a way to perform the key tasks related to controlling the CDEmu
daemon, such as loading and unloading devices, displaying devices' status and
retrieving/setting devices' debug masks.")
(license gpl2+)))

View file

@ -29,6 +29,7 @@
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -468,13 +469,14 @@ (define-public googletest
(version "1.8.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/google/googletest/archive/"
"release-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/googletest.git")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1n5p1m2m3fjrjdj752lf92f9wq3pl5cbsfrb49jqbg52ghkz99jq"))))
"0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
@ -2004,13 +2006,13 @@ (define-public python2-nose-randomly
(define-public python-nose-timer
(package
(name "python-nose-timer")
(version "0.7.4")
(version "0.7.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nose-timer" version))
(sha256
(base32 "04inck7l1sgkjbiinhifxk45wk2b3czbwh1x2a390hi183fq1q12"))))
(base32 "05wzkc88vbzw62pqkvhl33211b90kns0lny70b7qw62rcg4flzk4"))))
(build-system python-build-system)
(propagated-inputs
`(("python-nose" ,python-nose)
@ -2246,3 +2248,52 @@ (define-public umockdev
program or test suite under a test bed with the previously recorded devices
loaded.")
(license license:lgpl2.1+)))
(define-public python-pyfakefs
(package
(name "python-pyfakefs")
(version "3.5.8")
(source (origin
(method url-fetch)
;; We use the PyPI URL because there is no proper release
;; available from GitHub. The GitHub project only provides
;; autogenerated tarballs, which are known to change in place.
(uri (pypi-uri "pyfakefs" version))
(sha256
(base32
"0qb9jp0bqhc0dv0rn805fv99029fvx135f3bvka6scfkcl6jgllc"))
(patches (search-patches
"python-pyfakefs-remove-bad-test.patch"))
(file-name (string-append name "-" version ".tar.gz"))))
(arguments
`(#:phases
(modify-phases %standard-phases
;; The default test suite does not run these extra tests.
(add-after 'check 'check-pytest-plugin
(lambda _
(invoke
"python" "-m" "pytest"
"pyfakefs/pytest_tests/pytest_plugin_test.py")
#t)))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(build-system python-build-system)
;; Guix lint doesn't like that this is a permanent redirect to the GitHub
;; page, but the pyfakefs documentation asks us to use this specific URL
;; when linking to the project. Honor their request.
(home-page "http://pyfakefs.org/")
;; TRANSLATORS: In the synopsis, "Mock" is a verb.
(synopsis "Mock file system interactions in tests")
(description
"This package provides a Python library intended for use in automated
tests. One difficulty when testing software is that the code under test might
need to read or write to files in the local file system. If the file system
is not set up in just the right way, it might cause a spurious error during
the test. The pyfakefs library provides a solution to problems like this by
mocking file system interactions. In other words, it arranges for the code
under test to interact with a fake file system instead of the real file
system. The code under test requires no modification to work with pyfakefs.")
(license license:asl2.0)))
(define-public python2-pyfakefs
(package-with-python2 python-pyfakefs))

View file

@ -558,7 +558,7 @@ (define-public chez-mit
(synopsis "MIT/GNU Scheme compatibility library for Chez Scheme")
(description "This package provides a set of MIT/GNU Scheme compatibility
libraries for Chez Scheme. The main goal was to provide the functionality
required to port the program 'Scmutils' to Chez Scheme.")
required to port the program @code{Scmutils} to Chez Scheme.")
(license gpl3+)))
(define-public chez-scmutils

View file

@ -40,7 +40,6 @@ (define-module (gnu packages chromium)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c)
@ -51,6 +50,7 @@ (define-module (gnu packages chromium)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
@ -80,11 +80,9 @@ (define %preserved-third-party-files
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat
"net/third_party/http2" ;BSD-3
"net/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0
"net/third_party/quic" ;BSD-3
"net/third_party/spdy" ;BSD-3
"net/third_party/uri_template" ;ASL2.0
"third_party/abseil-cpp" ;ASL2.0
"third_party/adobe/flash/flapper_version.h" ;no license, trivial
@ -95,9 +93,6 @@ (define %preserved-third-party-files
"third_party/angle/src/third_party/compiler" ;BSD-2
"third_party/angle/src/third_party/libXNVCtrl" ;Expat
"third_party/angle/src/third_party/trace_event" ;BSD-3
"third_party/angle/third_party/glslang" ;BSD-3
"third_party/angle/third_party/spirv-headers" ;Expat
"third_party/angle/third_party/spirv-tools" ;Expat
"third_party/angle/third_party/vulkan-headers" ;ASL2.0
"third_party/angle/third_party/vulkan-loader" ;ASL2.0
"third_party/angle/third_party/vulkan-tools" ;ASL2.0
@ -125,9 +120,12 @@ (define %preserved-third-party-files
"third_party/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
"third_party/crc32c" ;BSD-3
"third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
"third_party/dom_distiller_js" ;BSD-3
"third_party/emoji-segmenter" ;ASL2.0
"third_party/fips181" ;BSD-3
"third_party/flatbuffers" ;ASL2.0
"third_party/glslang" ;BSD-3, Expat, ASL2.0
"third_party/google_input_tools" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
@ -206,6 +204,7 @@ (define %preserved-third-party-files
"third_party/yasm/run_yasm.py" ;BSD-2 or BSD-3
"third_party/zlib/google" ;BSD-3
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
"v8/src/third_party/siphash" ;Public domain
"v8/src/third_party/utf8-decoder" ;Expat
"v8/src/third_party/valgrind" ;BSD-4
"v8/third_party/inspector_protocol" ;BSD-3
@ -224,8 +223,9 @@ (define* (computed-origin-method gexp-promise hash-algo hash
#:system system
#:guile-for-build guile)))
(define %chromium-version "72.0.3626.121")
(define %ungoogled-revision "a80839c418de8843dfcd6c13a557f12d26a0a17a")
(define %chromium-version "74.0.3729.131")
(define %ungoogled-revision "9e33022f3ac7de2a12e3c7a7923799c9bbbf8194")
(define %debian-revision "debian/74.0.3729.108-1")
(define package-revision "0")
(define %package-version (string-append %chromium-version "-"
@ -233,29 +233,43 @@ (define %package-version (string-append %chromium-version "-"
(string-take %ungoogled-revision 7)))
;; This is a "computed" origin that does the following:
;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball.
;; 2) Prunes all third_party folders that are not explicitly preserved.
;; 3) Adjusts "GN" build files such that system libraries are preferred.
;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
;; *) Prunes all third_party directories that are not explicitly preserved.
;; *) Adjusts "GN" build files such that system libraries are preferred.
(define ungoogled-chromium-source
(let* ((chromium-source
(origin
(method url-fetch)
(uri (string-append "https://commondatastorage.googleapis.com"
"/chromium-browser-official/chromium-"
%chromium-version ".tar.xz"))
(sha256
(base32
"07xwmlvmzfga61nrimqmzl7s29jb4kc94nkzwwlb7sh6nr55a7jc"))))
(ungoogled-source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium"
(string-take %ungoogled-revision 7)))
(sha256
(base32
"0rgirbxbgjdm3s2kzgj101rjq0clr7x2a7b37kfx2q629z4qlrpc")))))
(let ((chromium-source
(origin
(method url-fetch)
(uri (string-append "https://commondatastorage.googleapis.com"
"/chromium-browser-official/chromium-"
%chromium-version ".tar.xz"))
(sha256
(base32
"11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i"))))
(ungoogled-source
(origin
(method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium"
(string-take %ungoogled-revision 7)))
(sha256
(base32
"08whx582p3a2nivkj7kwin09a8acybr00z6344smb9xjlxy9rkp4"))))
(debian-source
(origin
(method git-fetch)
(uri (git-reference
(url "https://salsa.debian.org/chromium-team/chromium.git")
(commit %debian-revision)))
(file-name (git-file-name "debian-chromium-packaging"
(if (string-prefix? "debian/" %debian-revision)
(cadr (string-split %debian-revision #\/))
(string-take %debian-revision 7))))
(sha256
(base32
"1bn0c86sxkkxgdz0i88y0zh4zr39l6379r2rhgk3b3qbvwz25s3j")))))
(origin
(method computed-origin-method)
@ -265,7 +279,10 @@ (define ungoogled-chromium-source
(delay
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(use-modules (guix build utils)
(ice-9 rdelim)
(srfi srfi-1)
(srfi srfi-26))
(let ((chromium-dir (string-append "chromium-" #$%chromium-version))
(preserved-files (list #$@%preserved-third-party-files)))
@ -281,41 +298,62 @@ (define ungoogled-chromium-source
(with-directory-excursion "/tmp/ungoogled"
;; Create a custom "bundle" that inherits from linux_rooted
;; and adds an additional patch.
(format #t "Creating Guix config bundle...~%")
(force-output)
(mkdir-p "config_bundles/guix")
(call-with-output-file "config_bundles/guix/bundlemeta.ini"
(lambda (port)
(format port
"[bundle]
display_name = GNU Guix
depends = linux_rooted\n")))
(call-with-output-file "config_bundles/guix/patch_order.list"
(lambda (port)
(format port "debian_buster/system/openjpeg.patch\n")))
(format #t "Unpacking chromium tarball...~%")
(force-output)
(invoke "tar" "xf" #+chromium-source)
(format #t "Ungooglifying...~%")
(force-output)
(invoke "python3" "run_buildkit_cli.py" "prune"
"-b" "config_bundles/guix" chromium-dir)
(invoke "python3" "run_buildkit_cli.py" "patches" "apply"
"-b" "config_bundles/guix" chromium-dir)
(invoke "python3" "run_buildkit_cli.py" "domains" "apply"
"-b" "config_bundles/linux_rooted"
(invoke "python3" "utils/prune_binaries.py" chromium-dir
"pruning.list")
(invoke "python3" "utils/patches.py" "apply"
chromium-dir "patches")
(invoke "python3" "utils/domain_substitution.py" "apply" "-r"
"domain_regex.list" "-f" "domain_substitution.list"
"-c" "/tmp/domainscache.tar.gz" chromium-dir)
(with-directory-excursion chromium-dir
(format #t "applying Debian patches...~%")
(force-output)
(let* ((debian #+debian-source)
(patches (string-append debian "/debian/patches"))
(series (string-append patches "/series"))
(grep-q (lambda (query file)
(with-input-from-file file
(lambda ()
(let loop ((line (read-line))
(match #f))
(if (or match (eof-object? line))
(if match #t #f)
(loop (read-line)
(string-contains line query)))))))))
(with-input-from-file series
(lambda ()
(let loop ((line (read-line)))
(unless (eof-object? line)
(when (and (> (string-length line) 1)
;; Skip the Debian-specific ones.
(not (string-prefix? "debianization/" line))
(not (string-prefix? "gcc6/" line))
;; And those that conflict with Ungoogled.
(not (any (cute string-suffix? <> line)
'("widevine-buildflag.patch"
"signin.patch"
"third-party-cookies.patch")))
;; Ungoogled includes a subset of the Debian
;; patches. Exclude those already present.
(not (grep-q line "../patches/series")))
(invoke "patch" "--force" "-p1" "--input"
(string-append patches "/" line)
"--no-backup-if-mismatch"))
(loop (read-line)))))))
(format #t "Pruning third party files...~%")
(force-output)
(apply invoke "python"
"build/linux/unbundle/remove_bundled_libraries.py"
"--do-remove" preserved-files)
"build/linux/unbundle/remove_bundled_libraries.py"
"--do-remove" preserved-files)
(format #t "Replacing GN files...~%")
(force-output)
@ -421,13 +459,19 @@ (define-public ungoogled-chromium
"use_system_lcms2=true"
"use_system_libdrm=true"
"use_system_libjpeg=true"
"use_system_libopenjpeg2=true"
"use_system_libpng=true"
"use_system_zlib=true"
"use_gnome_keyring=false" ;deprecated by libsecret
"use_openh264=true"
"use_pulseaudio=true"
"link_pulseaudio=true"
"use_vaapi=true"
;; VA-API acceleration is currently only supported on x86_64-linux.
,@(if (string-prefix? "x86_64" (or (%current-target-system)
(%current-system)))
'("use_vaapi=true")
'())
;; Don't arbitrarily restrict formats supported by system ffmpeg.
"proprietary_codecs=true"
@ -502,12 +546,13 @@ (define-public ungoogled-chromium
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/") "#include \"json/"))
(substitute* "media/base/decode_capabilities.cc"
(("third_party/libvpx/source/libvpx/") ""))
(substitute* "ui/gfx/skia_util.h"
(substitute* '("ui/gfx/skia_util.h"
"components/viz/common/resources/resource_format_utils.h")
(("third_party/vulkan/include/") ""))
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("\\.\\./\\.\\./include/third_party/vulkan/") ""))
;; Building chromedriver embeds some files using the ZIP
;; format which doesn't support timestamps before
;; 1980. Therefore, advance the timestamps of the files

View file

@ -2449,7 +2449,7 @@ (define (make-gcc-toolchain gcc)
(description
"This package provides a complete GCC tool chain for C/C++ development to
be installed in user profiles. This includes GCC, as well as libc (headers
and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
and binaries, plus debugging symbols in the @code{debug} output), and Binutils.")
(home-page "https://gcc.gnu.org/")
(outputs '("out" "debug" "static"))

View file

@ -158,8 +158,8 @@ (define-public fastjar
(home-page "https://savannah.nongnu.org/projects/fastjar")
(synopsis "Replacement for Sun's 'jar' utility")
(description
"FastJar is an attempt to create a much faster replacement for Sun's 'jar'
utility. Instead of being written in Java, FastJar is written in C.")
"FastJar is an attempt to create a much faster replacement for Sun's
@code{jar} utility. Instead of being written in Java, FastJar is written in C.")
(license license:gpl2+)))
(define-public libtar

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; This file is part of GNU Guix.
@ -37,16 +37,16 @@ (define-public conky
(package
(name "conky")
(home-page "https://github.com/brndnmtthws/conky")
(version "1.11.2")
(version "1.11.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz"))
(file-name (git-file-name name version))
(sha256
(base32 "0yalcpwx85smh6nnvxxsgqi344nk7jzlkkam7yjghm87df4v7xmx"))))
(base32 "0pdl31xvmy8niagzqx9sd2b6hc6lzwfiaz66m4djf1gz9bksc8qv"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests

View file

@ -3,7 +3,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -44,15 +44,14 @@ (define-module (gnu packages connman)
(define-public connman
(package
(name "connman")
(version "1.36")
(version "1.37")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/network/connman/"
name "-" version ".tar.xz"))
"connman-" version ".tar.xz"))
(sha256
(base32
"0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7"))))
(base32 "05kfjiqhqfmbbwc4snnyvi5hc4zxanac62f6gcwaf5mvn0z9pqkc"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -63,8 +62,6 @@ (define-public connman
"--enable-vpnc"
"--enable-pptp"
"--enable-l2tp"
;; location for daemon state files and internal configuration
;; needs to be writeable
"--localstatedir=/var"
(string-append
"--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc")

View file

@ -72,16 +72,14 @@ (define-public libzen
(define-public rct
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "2")
(version (git-version "0.0.0" revision commit)))
(revision "2"))
(package
(name "rct")
(version version)
(home-page "https://github.com/Andersbakken/rct")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(url "https://github.com/Andersbakken/rct")
(commit commit)))
(sha256
(base32
@ -99,6 +97,7 @@ (define-public rct
(inputs
`(("openssl" ,openssl)
("zlib" ,zlib)))
(home-page "https://github.com/Andersbakken/rct")
(synopsis "C++ library providing Qt-like APIs on top of the STL")
(description "Rct is a set of C++ tools that provide nicer (more Qt-like)
APIs on top of Standard Template Library (@dfn{STL}) classes.")

File diff suppressed because it is too large Load diff

View file

@ -131,15 +131,16 @@ (define-public libmd
(define-public signify
(package
(name "signify")
(version "24")
(version "25")
(home-page "https://github.com/aperezdc/signify")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aperezdc/signify/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0594vyvkq176xxzaz9xbq8qs0xdnr8s9gkd1prblwpdvnzmw0xvc"))))
"0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq"))))
(build-system gnu-build-system)
;; TODO Build with libwaive (described in README.md), to implement something
;; like OpenBSD's pledge().
@ -159,7 +160,6 @@ (define-public signify
(description "The signify utility creates and verifies cryptographic
signatures using the elliptic curve Ed25519. This is a Linux port of the
OpenBSD tool of the same name.")
(home-page "https://github.com/aperezdc/signify")
;; This package includes third-party code that was originally released under
;; various non-copyleft licenses. See the source files for clarification.
(license (list license:bsd-3 license:bsd-4 license:expat license:isc
@ -208,9 +208,9 @@ (define-public encfs
(add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "vendor/github.com/google/googletest")
(invoke "tar" "xvf" (assoc-ref inputs "googletest-source")
"-C" "vendor/github.com/google/googletest"
"--strip-components=1")))
(copy-recursively (assoc-ref inputs "googletest-source")
"vendor/github.com/google/googletest")
#t))
(add-before 'check 'make-unittests
(lambda _
(invoke "make" "unittests"))))))

View file

@ -57,7 +57,7 @@ (define-module (gnu packages cups)
(define-public cups-filters
(package
(name "cups-filters")
(version "1.22.2")
(version "1.22.3")
(source(origin
(method url-fetch)
(uri
@ -65,7 +65,7 @@ (define-public cups-filters
"cups-filters-" version ".tar.xz"))
(sha256
(base32
"06gy3wv6p7kswz3mjn17f17mqpadvqj2riwc42kksnvp8x0h08cw"))
"11vilv80l3q7hz8vyhclvjcnlgk93r7p9dvg634186iddjzls0j3"))
(modules '((guix build utils)))
(snippet
;; install backends, banners and filters to cups-filters output
@ -639,14 +639,14 @@ (define-public foomatic-filters
(define-public foo2zjs
(package
(name "foo2zjs")
(version "20180910")
(version "20190413")
(source (origin
(method url-fetch)
;; XXX: This is an unversioned URL!
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
(sha256
(base32
"1clddqy4y4vvws0lllv1v90dfiihihdc23bn93c544yb3fvmwmr6"))))
"00k22vmghxls7rk2hrbz9v17wi5z8vdk3fmsp2lrfghfcad8nhpx"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases

View file

@ -48,24 +48,6 @@ (define-module (gnu packages curl)
#:use-module (gnu packages tls)
#:use-module (gnu packages web))
;; XXX A hidden special obsolete libssh2 for temporary use in the curl package.
;; <https://bugs.gnu.org/34927>
(define-public libssh2-1.8.0
(hidden-package
(package
(inherit libssh2)
(version "1.8.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.libssh2.org/download/libssh2-"
version ".tar.gz"))
(sha256
(base32
"1m3n8spv79qhjq4yi0wgly5s5rc8783jb1pyra9bkx1md0plxwrr"))
(patches
(search-patches "libssh2-fix-build-failure-with-gcrypt.patch")))))))
(define-public curl
(package
(name "curl")

View file

@ -82,6 +82,7 @@ (define-module (gnu packages databases)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages python)
@ -239,32 +240,19 @@ (define-public es-dump-restore
(define-public leveldb
(package
(name "leveldb")
(version "1.20")
(version "1.21")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/google/leveldb"
"/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/leveldb")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0r36bcrj6b2afsp4aw1gjai3jbs1c7734pxpc1jz7hh9nasyiazm"))))
(build-system gnu-build-system)
"00v0w6883z7a6204894j59nd5v6dazn3c8hvh3sbczv4wiabppw2"))))
(build-system cmake-build-system)
(arguments
'(#:make-flags (list "CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
;; There is no install target, so we do it here.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(include (string-append out "/include")))
(for-each (lambda (file)
(install-file file lib))
(find-files "out-shared" "^libleveldb\\.so.*$"))
(copy-recursively "include" include)
#t))))))
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON")))
(inputs
`(("snappy" ,snappy)))
(home-page "http://leveldb.org/")
@ -277,14 +265,14 @@ (define-public leveldb
(define-public memcached
(package
(name "memcached")
(version "1.5.12")
(version "1.5.13")
(source
(origin
(method url-fetch)
(uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256
(base32 "0aav15f0lh8k4i62aza2bdv4s8vv65j38pz2zc4v45snd3arfby0"))))
(base32 "0qsdkjrns4f02lmabq8c7mzl5n4382q2p6a0dvmsjdcpjisagqb1"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)
@ -987,7 +975,7 @@ (define-public sparql-query
(home-page "https://github.com/tialaramex/sparql-query/")
(synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
(description "Sparql-query is a command-line tool for accessing SPARQL
endpoints over HTTP. It has been intentionally designed to 'feel' similar to
endpoints over HTTP. It has been intentionally designed to @code{feel} similar to
tools for interrogating SQL databases. For example, you can enter a query over
several lines, using a semi-colon at the end of a line to indicate the end of
your query. It also supports readline so that you can more easily recall and
@ -997,6 +985,92 @@ (define-public sparql-query
;; others (like sparql-query.c) contain a GPLv2+ license header.
(license (list license:gpl3+))))
(define-public sqitch
(package
(name "sqitch")
(version "0.9999")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-"
version
".tar.gz"))
(sha256
(base32
"1cvj8grs3bzc4g7dw1zc26g4biv1frav18sq0fkvi2kk0q1aigzm"))))
(build-system perl-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'check 'set-check-environment
(lambda _
(setenv "TZ" "UTC")
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PERL5LIB")))
(wrap-program (string-append out "/bin/sqitch")
`("PERL5LIB" ":" prefix
(,(string-append out "/lib/perl5/site_perl"
":"
path)))))
#t)))))
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)
("perl-io-pager" ,perl-io-pager)
("perl-module-build" ,perl-module-build)
("perl-module-runtime" ,perl-module-runtime)
("perl-path-class" ,perl-path-class)
("perl-test-deep" ,perl-test-deep)
("perl-test-dir" ,perl-test-dir)
("perl-test-exception" ,perl-test-exception)
("perl-test-file" ,perl-test-file)
("perl-test-file-contents" ,perl-test-file-contents)
("perl-test-mockmodule" ,perl-test-mockmodule)
("perl-test-nowarnings" ,perl-test-nowarnings)
("perl-test-warn" ,perl-test-warn)))
(inputs
`(("perl-class-xsaccessor" ,perl-class-xsaccessor)
("perl-clone" ,perl-clone)
("perl-config-gitlike" ,perl-config-gitlike)
("perl-datetime" ,perl-datetime)
("perl-datetime-timezone" ,perl-datetime-timezone)
("perl-dbd-pg" ,perl-dbd-pg)
("perl-dbi" ,perl-dbi)
("perl-devel-stacktrace" ,perl-devel-stacktrace)
("perl-encode-locale" ,perl-encode-locale)
("perl-file-homedir" ,perl-file-homedir)
("perl-hash-merge" ,perl-hash-merge)
("perl-ipc-run3" ,perl-ipc-run3)
("perl-ipc-system-simple" ,perl-ipc-system-simple)
("perl-libintl-perl" ,perl-libintl-perl)
("perl-list-moreutils" ,perl-list-moreutils)
("perl-moo" ,perl-moo)
("perl-mysql-config" ,perl-mysql-config)
("perl-namespace-autoclean" ,perl-namespace-autoclean)
("perl-path-class" ,perl-path-class)
("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
("perl-string-formatter" ,perl-string-formatter)
("perl-string-shellquote" ,perl-string-shellquote)
("perl-sub-exporter" ,perl-sub-exporter)
("perl-template-tiny" ,perl-template-tiny)
("perl-template-toolkit" ,perl-template-toolkit)
("perl-throwable" ,perl-throwable)
("perl-try-tiny" ,perl-try-tiny)
("perl-type-tiny" ,perl-type-tiny)
("perl-type-tiny-xs" ,perl-type-tiny-xs)
("perl-uri" ,perl-uri)
("perl-uri-db" ,perl-uri-db)))
(home-page "https://sqitch.org/")
(synopsis "Database change management tool")
(description
"Sqitch is a standalone change management system for database schemas,
which uses SQL to describe changes.")
(license license:x11)))
(define-public sqlcrush
;; Unfortunately, there is no proper upstream release and may never be.
(let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a")
@ -1332,6 +1406,29 @@ (define-public perl-dbd-sqlite
(license license:perl-license)
(home-page "https://metacpan.org/release/DBD-SQLite")))
(define-public perl-mysql-config
(package
(name "perl-mysql-config")
(version "1.04")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/D/DA/DARREN/MySQL-Config-"
version
".tar.gz"))
(sha256
(base32
"1svn7ccw2gc4cazvc58j84rxhnc9vs01zpird0l8460598j475qr"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/MySQL-Config")
(synopsis "Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf files")
(description
"@code{MySQL::Config} emulates the @code{load_defaults} function from
libmysqlclient. It will fill an aray with long options, ready to be parsed by
@code{Getopt::Long}.")
(license license:perl-license)))
(define-public perl-sql-abstract
(package
(name "perl-sql-abstract")
@ -1845,13 +1942,13 @@ (define-public python2-pyodbc-c
(define-public python-pyodbc
(package
(name "python-pyodbc")
(version "4.0.25")
(version "4.0.26")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyodbc" version))
(sha256
(base32 "1bbwrb812w5i0x56jfn0l86mxc2ck904hl8y87mziay96znwia0f"))
(base32 "1qrxnf7ji5hml7z4y669k4wmk3iz2pcsr05bnn1n912asash09z5"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system)
(inputs
@ -2092,13 +2189,13 @@ (define-public python2-pysqlite
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
(version "1.3.1")
(version "1.3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "12sr36646sipf9ac3n2xh8z0w5pz4d3dvw5qjv2kzvcls6wvf7vq"))))
(base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ; for C extensions
@ -2474,15 +2571,15 @@ (define-public python2-fakeredis
(define-public python-redis
(package
(name "python-redis")
(version "3.2.0")
(version "3.2.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "redis" version))
(sha256
(base32 "0m1b88wg1w6xdwg0siky5k86x8sh6smhbr42ixz41ra81lv34jbj"))))
(base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c"))))
(build-system python-build-system)
;; Tests require a running Redis server
;; Tests require a running Redis server.
(arguments '(#:tests? #f))
;; As long as we are not running test, we do not need this input :-)
;;(native-inputs

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,14 +33,14 @@ (define-module (gnu packages dc)
(define-public ncdc
(package
(name "ncdc")
(version "1.20")
(version "1.21")
(source
(origin
(method url-fetch)
(uri (string-append "http://dev.yorhel.nl/download/ncdc-" version
".tar.gz"))
(sha256 (base32
"0ccn7dqbqpqsbglqyalz32c20rjvf1pw0zr88jyvd2b2vxbqi6ca"))))
"10hrk7pcvfl9cj6d0kr4qf3l068ikqhccbg7lf25pr2kln9lz412"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@ -92,11 +92,10 @@ (define-public delta
;; home-page pointing to a bsd-2 license.
(license bsd-3)))
;; Newer versions depend on LLVM and Clang >= 4, which have yet to be packaged.
(define-public c-reduce
(package
(name "c-reduce")
(version "2.6.0")
(version "2.8.0")
(source
(origin
(method url-fetch)
@ -105,12 +104,12 @@ (define-public c-reduce
"creduce-" version ".tar.gz")))
(sha256
(base32
"0pf5q0n8vkdcr1wrkxn2jzxv0xkrir13bwmqfw3jpbm3dh2c3b6d"))))
"1vqx73ymfscvlyig03972a5m7ar3gx2yv6m8c6h2mibz792j5xkp"))))
(build-system gnu-build-system)
(inputs
`(("astyle" ,astyle)
("llvm" ,llvm-3.9.1)
("clang" ,clang-3.9.1)
("llvm" ,llvm-6)
("clang" ,clang-6)
("flex" ,flex)
("indent" ,indent)
("perl" ,perl)
@ -118,11 +117,16 @@ (define-public c-reduce
("file-which" ,perl-file-which)
("getopt-tabular" ,perl-getopt-tabular)
("regex-common" ,perl-regexp-common)
("sys-cpu" ,perl-sys-cpu)
("term-readkey" ,perl-term-readkey)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(with-directory-excursion "tests"
;; Running all tests can take a looong time, and tests 4 and 5
;; require frama-c or kcc. So run just one for sanity.
(invoke "./run_tests" "1"))))
(add-after 'install 'set-load-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Tell creduce where to find the perl modules it needs.
@ -137,7 +141,7 @@ (define-public c-reduce
,(package-version perl)))
'("term-readkey" "exporter-lite"
"file-which" "getopt-tabular"
"regex-common" "sys-cpu")))))
"regex-common")))))
#t)))))
(home-page "https://embed.cs.utah.edu/creduce")
(synopsis "Reducer for interesting code")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
@ -218,15 +218,15 @@ (define-public ding
(define-public grammalecte
(package
(name "grammalecte")
(version "0.6.5")
(version "1.0.1")
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://www.dicollecte.org/grammalecte/zip/"
(uri (string-append "https://grammalecte.net/grammalecte/zip/"
"Grammalecte-fr-v" version ".zip"))
(sha256
(base32
"11byjs3ggdhia5f4vyfqfvbbczsfqimll98h98g7hlsrm7vrifb0"))))
"0p005mqgmckkbif3syv3d90rr1zsm5n5vvac5b29nn8g4v8jjpfs"))))
(build-system python-build-system)
(home-page "https://grammalecte.net")
(synopsis "French spelling and grammar checker")
@ -245,7 +245,7 @@ (define-public grammalecte
(define-public translate-shell
(package
(name "translate-shell")
(version "0.9.6.9")
(version "0.9.6.10")
(source
(origin
(method git-fetch)
@ -254,13 +254,12 @@ (define-public translate-shell
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1xyf0vdxmbgqcgsr1gvgwh1q4fh080h68radkim6pfcwzffliszm"))))
(base32 "1dmh3flldfhnqfay3a6c5hanqcjwrmbly1bq8mlk022qfi1fv33y"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure phase
(delete 'configure) ; no configure script
(add-after 'unpack 'remove-unnecessary-file
;; This file gets generated during the build phase.
(lambda _

View file

@ -46,11 +46,11 @@ (define-module (gnu packages disk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
@ -808,9 +808,9 @@ (define-public rmlint
("json-glib" ,json-glib)
("libblkid" ,util-linux)))
(home-page "https://rmlint.rtfd.org")
(synopsis "Remove duplicates and other lint from the filesystem")
(synopsis "Remove duplicates and other lint from the file system")
(description "@command{rmlint} finds space waste and other broken things
on your filesystem and offers to remove it. @command{rmlint} can find:
on your file system and offers to remove it. @command{rmlint} can find:
@itemize
@item duplicate files and duplicate directories,

View file

@ -49,92 +49,10 @@ (define-module (gnu packages display-managers)
#:use-module (gnu packages xfce)
#:use-module (gnu packages xorg))
(define-public greenisland
(package
(name "greenisland")
(version "0.9.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/greenisland/greenisland"
"/releases/download/v" version "/"
"greenisland-" version ".tar.xz"))
(sha256
(base32
"1flmha31hmii6m2mdvmn1q5dc0fhnvgc4lp1b4wgkz20y7x4f1fm"))))
(build-system cmake-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("dbus" ,dbus)
("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)
("xorg-server" ,xorg-server)))
(inputs
`(("elogind" ,elogind)
("eudev" ,eudev)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("glib" ,glib)
("libdrm" ,libdrm)
("libinput" ,libinput-minimal)
("libxcursor" ,libxcursor)
("libxkbcommon" ,libxkbcommon)
("libx11" ,libx11)
("mesa" ,mesa)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("wayland" ,wayland)
("wayland-protocols" ,wayland-protocols)
("xcb-util-cursor" ,xcb-util-cursor)))
(arguments
`(#:configure-flags
(list (string-append "-DPLUGIN_INSTALL_DIR="
(assoc-ref %outputs "out") "/plugins")
(string-append "-DQML_INSTALL_DIR="
(assoc-ref %outputs "out") "/qml"))
#:modules ((guix build cmake-build-system)
(guix build qt-utils)
(guix build utils))
#:imported-modules (,@%cmake-build-system-modules
(guix build qt-utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-udev-tests
(lambda _ ; FIXME: Build env doesn't contain /dev/sda
(substitute* "tests/auto/platform/tst_udev.cpp"
(("QVERIFY") "// QVERIFY")
(("QCOMPARE") "// QCOMPARE"))))
(replace 'check
(lambda _
(setenv "DBUS_FATAL_WARNINGS" "0")
(invoke "dbus-launch" "ctest" ".")))
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "XDG_RUNTIME_DIR" (getcwd))
#t))
(add-after 'install 'wrap-programs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-qt-program out "greenisland")
(wrap-qt-program out "greenisland-launcher")
(wrap-qt-program out "greenisland-screencaster")
(wrap-qt-program out "greenisland-wayland-scanner")
#t))))))
(synopsis "QtQuick Wayland compositor and shell for desktop and mobile")
(description "Green Island provides a full blown Wayland compositor for
QtQuick as well as pluggable hardware abstraction, extensions, tools and a
Qt-style API for Wayland clients.")
(home-page "http://hawaiios.org")
;; Choice of license at the user's opinion.
(license (list license:gpl2 license:gpl3 license:lgpl2.1 license:lgpl3))))
(define-public sddm
(package
(name "sddm")
(version "0.18.0")
(version "0.18.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -143,7 +61,7 @@ (define-public sddm
"sddm-" version ".tar.xz"))
(sha256
(base32
"0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87"))))
"0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh"))))
(build-system cmake-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)

View file

@ -519,9 +519,9 @@ (define-public python-django-contact-form
(replace 'check
(lambda _
;; the next version will need "make test"
(and (zero? (system* "flake8" "contact_form"))
(zero? (system* "coverage" "run" "contact_form/runtests.py"))
(zero? (system* "coverage" "report" "-m" "--fail-under" "0"))))))))
(invoke "flake8" "contact_form")
(invoke "coverage" "run" "contact_form/runtests.py")
(invoke "coverage" "report" "-m" "--fail-under" "0"))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-flake8" ,python-flake8)))
@ -577,8 +577,7 @@ (define-public python-django-overextends
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "./test_project/manage.py" "test")))))))
(lambda _ (invoke "./test_project/manage.py" "test"))))))
(propagated-inputs
`(("python-django" ,python-django)))
(native-inputs

View file

@ -3,7 +3,7 @@
;;; Copyright © 2015, 2018 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2017 Frederick Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -81,15 +81,15 @@ (define-public ldc-bootstrap
(package
(name "ldc")
(version "0.17.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/ldc/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/ldc.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8"))))
(build-system cmake-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(properties
@ -101,14 +101,19 @@ (define-public ldc-bootstrap
(modify-phases %standard-phases
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
(with-directory-excursion target
(zero? (system* "tar" "xvf"
(assoc-ref inputs source)
"--strip-components=1"))))))
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
(let ((unpack (lambda (input target)
(let ((source (assoc-ref inputs input)))
;; Git checkouts are directories as long as
;; there are no patches; tarballs otherwise.
(if (file-is-directory? source)
(copy-recursively source target)
(with-directory-excursion target
(invoke "tar" "xvf" source
"--strip-components=1")))))))
(unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
#t)))
(add-after 'unpack-submodule-sources 'patch-dmd2
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "dmd2/root/port.c"
@ -146,32 +151,32 @@ (define-public ldc-bootstrap
("unzip" ,unzip)
("phobos-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/phobos.git")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "phobos" version))
(sha256
(base32
"16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz"))
(base32 "0i7gh99w4mi0hdv16261jcdiqyv1nkjdcwy9prw32s0lvplx8fdy"))
(patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v"
version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/druntime.git")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "druntime" version))
(sha256
(base32
"0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
(base32 "0alabm3bbvs94msvxz5psiwk4f51cw9h82z1p5hhsnf8ja6d0am7"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/dmd-testsuite.git")
(commit (string-append "ldc-v" version))))
(file-name (git-file-name "dmd-testsuite" version))
(sha256
(base32
"0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
(base32 "05qr4cgb4scfqzbw1l5pk72kil074mvj9d55b165ljyr51sgwgbl"))))))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM-based compiler for the D programming language")
(description
@ -194,28 +199,33 @@ (define-public ldc
(inherit ldc-bootstrap)
(name "ldc")
(version "1.10.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/ldc/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/ldc.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0qcb2rn01wql7y8qp31blbv3hwmnh3zjgzi2n7k168cxr6rrdhlp"))))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
(with-directory-excursion target
(zero? (system* "tar" "xvf"
(assoc-ref inputs source)
"--strip-components=1"))))))
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
(let ((unpack (lambda (input target)
(let ((source (assoc-ref inputs input)))
;; Git checkouts are directories as long as
;; there are no patches; tarballs otherwise.
(if (file-is-directory? source)
(copy-recursively source target)
(with-directory-excursion target
(invoke "tar" "xvf" source
"--strip-components=1")))))))
(unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")
#t)))
(add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("runtime/phobos/std/process.d"
@ -223,7 +233,7 @@ (define-public ldc
(("/bin/sh") (which "sh"))
(("echo") (which "echo")))
(substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
(("/bin/bash") (which "bash")))
;; disable unittests in the following files. We are discussing with
;; upstream
(substitute* '("runtime/phobos/std/net/curl.d"
@ -240,14 +250,14 @@ (define-public ldc
(delete-file "tests/plugins/addFuncEntryCall/testPlugin.d")
;; the following tests requires AVX instruction set in the CPU.
(substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
(("^// DISABLED: ") "^// DISABLED: linux64 "))
(("^// DISABLED: ") "^// DISABLED: linux64 "))
#t))
(replace 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
;; some tests call into gdb binary which needs SHELL and CC set
(setenv "SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(lambda* (#:key inputs outputs #:allow-other-keys)
;; some tests call into gdb binary which needs SHELL and CC set
(setenv "SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(native-inputs
`(("llvm" ,llvm-6)
("clang" ,clang-6)
@ -258,13 +268,13 @@ (define-public ldc
("gdb" ,gdb)
("phobos-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
older-version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/phobos.git")
(commit (string-append "ldc-v" older-version))))
(file-name (git-file-name "phobos" older-version))
(sha256
(base32
"0cpmrww00xf1qx38bcc22rr05qw41p00p45yb5fbwnfaccfwdn0s"))
(base32 "1gmlwnjdcf6s5aahadxsif9l5nyaj0rrn379g6fmhcvdk64kf509"))
;; This patch deactivates some tests that depend on network access
;; to pass. It also deactivates some tests that have some reliance
;; on timezone.
@ -277,36 +287,37 @@ (define-public ldc
(patches (search-patches "ldc-disable-phobos-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v"
older-version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/druntime.git")
(commit (string-append "ldc-v" older-version))))
(file-name (git-file-name "druntime" older-version))
(sha256
(base32
"1akh2vdi98jih8642yjbvv2vavxzrmq24kz8i3kfidg5ndqyv222"))))
(base32 "0a3yyjcnpvm5fbdczf76fx08kl154w17w06hlxf0j3p1p4jc85aj"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
older-version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/ldc-developers/dmd-testsuite.git")
(commit (string-append "ldc-v" older-version))))
(file-name (git-file-name "dmd-testsuite" older-version))
(sha256
(base32
"0z5x07qrbkpksshaymp11ir6jlmg9wjicxn6zhp8cya6i1ha9p99")))))))))
(base32 "0mm3rliki1nqiqfaha7ssvm156aa398vpvf4v6895m7nn1mz7rss")))))))))
(define-public dub
(package
(name "dub")
(version "1.7.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/dub/archive/"
"v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
(build-system gnu-build-system)
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/dub.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
#:phases

View file

@ -11,6 +11,7 @@
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -51,6 +52,7 @@ (define-module (gnu packages dns)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
@ -106,7 +108,7 @@ (define-public dnsmasq
(define-public isc-bind
(package
(name "bind")
(version "9.12.3-P4")
(version "9.12.4-P1")
(source (origin
(method url-fetch)
(uri (string-append
@ -114,7 +116,9 @@ (define-public isc-bind
"/bind-" version ".tar.gz"))
(sha256
(base32
"01pj47z5582rd538dmbzf1msw4jc8j4zr0zx4ciy88r6qr9l80fi"))))
"1if7zc5gzrfd28csc63v9bjwrc0rgvm1x9yx058946hc5gp5lyp2"))
(patches
(search-patches "bind-fix-unused-pk11-ecc-constants.patch"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@ -122,7 +126,9 @@ (define-public isc-bind
`(("libcap" ,libcap)
("libxml2" ,libxml2)
("openssl" ,openssl)
("p11-kit" ,p11-kit)))
("p11-kit" ,p11-kit)
("python" ,python)
("python-ply" ,python-ply)))
(native-inputs `(("perl" ,perl)
("net-tools" ,net-tools)))
(arguments
@ -294,14 +300,14 @@ (define-public libasr
(define-public nsd
(package
(name "nsd")
(version "4.1.26")
(version "4.1.27")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz"))
(sha256
(base32 "1x0mvj4872dzj1rr9adnchdm4dhn41xmc459p5j4s0r13m1l32lz"))))
(base32 "1sjfbwr4vq25304hr9vmd9j821g2vzv8lpy95hpsravc80q5zaqv"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -569,23 +575,21 @@ (define-public yadifa
(define-public knot
(package
(name "knot")
(version "2.8.0")
(source (origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
"knot-" version ".tar.xz"))
(sha256
(base32
"1vw7xx7bm440jwrpvdd04vrp6ccz2b11swcn9msvs62hf0kdjjj9"))
(patches
(search-patches "knot-include-system-lmdb-header.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled libraries.
(with-directory-excursion "src/contrib"
(delete-file-recursively "lmdb"))
#t))))
(version "2.8.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
"knot-" version ".tar.xz"))
(sha256
(base32 "1im2wb8hl394mzni1wavmvfqd7il8s28kcz8w3s4v05nbhzg06xj"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled libraries.
(with-directory-excursion "src/contrib"
(delete-file-recursively "lmdb"))
#t))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -809,3 +813,53 @@ (define-public libmicrodns
a zero-config service that allows one to resolve host names to IP addresses in
local networks.")
(license license:lgpl2.1)))
(define-public public-suffix-list
;; Mozilla releases the official list here:
;;
;; https://publicsuffix.org/list/public_suffix_list.dat
;;
;; However, Mozilla syncs that file from the GitHub repository periodically,
;; so its contents will change over time. If you update this commit, please
;; make sure that the new commit refers to a list which is identical to the
;; officially published list available from the URL above.
(let ((commit "9375b697baddb0827a5995c81bd3c75877a0b35d"))
(package
(name "public-suffix-list")
(version (git-version "0" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/publicsuffix/list.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1sm7pni01rnl4ldzi8z8nc4cbgq8nxda9gwc68v0s3ij7jd1jmik"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((out (assoc-ref %outputs "out"))
;; Install to /share because that is where "read-only
;; architecture-independent data files" should go (see:
;; (standards) Directory Variables). Include the version in
;; the directory name so that if multiple versions are ever
;; installed in the same profile, they will not conflict.
(destination (string-append
out "/share/public-suffix-list-" ,version))
(source (assoc-ref %build-inputs "source")))
(with-directory-excursion source
(install-file "public_suffix_list.dat" destination)
(install-file "LICENSE" destination))
#t))))
(home-page "https://publicsuffix.org/")
(synopsis "Database of current and historical DNS suffixes")
(description "This is the Public Suffix List maintained by Mozilla. A
\"public suffix\" is one under which Internet users can (or historically
could) directly register names in the Domain Name System (DNS). Some examples
of public suffixes are .com, .co.uk and pvt.k12.ma.us. This is a list of all
known public suffixes.")
(license license:mpl2.0))))

View file

@ -43,7 +43,7 @@ (define-module (gnu packages docker)
#:use-module (gnu packages version-control)
#:use-module (gnu packages virtualization))
(define %docker-version "18.09.3")
(define %docker-version "18.09.5")
(define-public python-docker-py
(package
@ -227,6 +227,8 @@ (define-public containerd
(home-page "http://containerd.io/")
(license license:asl2.0)))
;; TODO: Patch out modprobes for ip_vs, nf_conntrack,
;; brige, nf_conntrack_netlink, aufs.
(define-public docker
(package
(name "docker")
@ -239,10 +241,11 @@ (define-public docker
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "06yr5xwr181lalh8z1lk07nxlp7hn38aq8cyqjk617dfy4lz0ixx"))
(base32 "0cirpd9l2qazp2jyanwzvrkx2m98nksjdvn43ff38p89w6133ipb"))
(patches
(search-patches "docker-engine-test-noinstall.patch"
"docker-fix-tests.patch"))))
"docker-fix-tests.patch"
"docker-use-fewer-modprobes.patch"))))
(build-system gnu-build-system)
(arguments
`(#:modules
@ -484,7 +487,7 @@ (define-public docker-cli
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "09j1i668p330gjz5vw5pss8ghxh1mz7rl2q9ykp02q9p112zhy4j"))))
(base32 "0mxxjzkwdny8p2dmyjich7x1gn7hdlfppzjy2skk2k5bwv7nxpmi"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/docker/cli"

View file

@ -73,6 +73,6 @@ (define-public dunst
(synopsis "Customizable and lightweight notification daemon")
(description
"Dunst is a highly configurable and minimalistic notification daemon.
It provides 'org.freedesktop.Notifications' D-Bus service, so it is
It provides @code{org.freedesktop.Notifications} D-Bus service, so it is
started automatically on the first call via D-Bus.")
(license license:bsd-3)))

View file

@ -96,14 +96,14 @@ (define-public libabigail
(package
(name "libabigail")
(home-page "https://sourceware.org/libabigail/")
(version "1.5")
(version "1.6")
(source (origin
(method url-fetch)
(uri (string-append "https://sourceware.org/pub/" name
"/" name "-" version ".tar.gz"))
(uri (string-append "https://sourceware.org/pub/libabigail/"
"libabigail-" version ".tar.gz"))
(sha256
(base32
"0srfnkbm386sl2n85686nl28da6ksbs7jgnfks9k0n61c772aas4"))))
"04j07lhvwbp6qp8pdwbf7iqnr7kgpabmqylsw4invpmzwnyp6g6g"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static"

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
@ -68,14 +68,14 @@ (define-module (gnu packages emacs)
(define-public emacs
(package
(name "emacs")
(version "26.1")
(version "26.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz"))
(sha256
(base32
"0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w"))
"13n5m60i47k96mpv5pp6km2ph9rv2m5lmbpzj929v02vpsfyc70m"))
(patches (search-patches "emacs-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
"emacs-source-date-epoch.patch"))

View file

@ -1013,6 +1013,8 @@ (define-public fc-host-tools
"uptools/atcmd/atinterf.c")
(("/opt/freecalypso/loadtools")
(string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools"))
(("\\$\\{INSTALL_PREFIX\\}/loadtools")
(string-append (assoc-ref outputs "out") "/lib/freecalypso/loadtools"))
(("/opt/freecalypso")
(assoc-ref outputs "out")))
#t)))))

View file

@ -460,13 +460,13 @@ (define-public mupen64plus-core
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-core/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-core.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dg2hksm5qni2hcha93k7n4fqr92888p946f7phb0ndschzfh9kk"))))
(base32 "116fndl6652zrp1r6ag4xv3dzp1x52mlvadj8xwflq07fd5rhri1"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -508,13 +508,13 @@ (define-public mupen64plus-audio-sdl
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-audio-sdl/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-audio-sdl.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0ss6w92n2rpfnazhg9lbq0nvs3fqx93nliz3k3wjxdlx4dpi7h3a"))))
(base32 "0z19amfg9vr2pqjjri1ipc7hs681fzjcnb0f9y7bjhp5n8d7p6bb"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -554,13 +554,13 @@ (define-public mupen64plus-input-sdl
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-input-sdl/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-input-sdl.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "11sj5dbalp2nrlmki34vy7wy28vc175pnnkdk65p8599hnyq37ri"))))
(base32 "1dyazfbdjycdfslq8jixqiqhziw0rlkvach2r9dz91229jmkyc9c"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)))
@ -599,13 +599,13 @@ (define-public mupen64plus-rsp-hle
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-rsp-hle/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-rsp-hle.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "15h7mgz6xd2zjzm6l3f96sbs8kwr3xvbwzgikhnka79m6c69hsxv"))))
(base32 "0pi31qzjjp7aypdvvnz6ms18g09c4gqzxi6328zj8sji94b75gf0"))))
(build-system gnu-build-system)
(inputs
`(("mupen64plus-core" ,mupen64plus-core)))
@ -641,13 +641,13 @@ (define-public mupen64plus-rsp-z64
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-rsp-z64/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-rsp-z64.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "10jz1w2dhx5slhyk4m8mdqlpsd6cshchslr1fckb2ayzb1ls3ghi"))))
(base32 "0nfyjns9k8xbg3aqs7593nfaxvlj72h3l8h467442xlk8ajfcylx"))))
(build-system gnu-build-system)
(inputs
`(("mupen64plus-core" ,mupen64plus-core)))
@ -683,13 +683,13 @@ (define-public mupen64plus-video-arachnoid
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-video-arachnoid/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-video-arachnoid.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0jjwf144rihznm4lnqbhgigxw664v3v32wy94adaa6imk8z6gslh"))))
(base32 "1v9fqwpb6pawr8z5cm2ki7bqkks4iyr5c4jy4v5khj6h8zcv55gc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -729,13 +729,13 @@ (define-public mupen64plus-video-glide64
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-video-glide64/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-video-glide64.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1rm55dbf6xgsq1blbzs6swa2ajv0qkn38acbljj346abnk6s3dla"))))
(base32 "0qn5za7g7796kh2ag3xpmhbqg0yf71g9liz6ks0rha8pz73lgs01"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -783,13 +783,13 @@ (define-public mupen64plus-video-glide64mk2
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-video-glide64mk2/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-video-glide64mk2.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ihl4q293d6svba26b4mhapjcdg12p90gibz79b4mx423jlcxxj9"))))
(base32 "08pm28a36dpr0cvr8pzw0n5ksdazp7jqvlmqfy2lwb4dm0cwhkqd"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -833,13 +833,13 @@ (define-public mupen64plus-video-rice
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-video-rice/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-video-rice.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0rd2scjmh285w61aj3mgx71whg5rqrjbry3cdgicczrnyvf8wdvk"))))
(base32 "0rpmbcq67gsj5h5jjis146378qc1mskskvx20y1ikx59yhbamh13"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -881,13 +881,13 @@ (define-public mupen64plus-video-z64
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-video-z64/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-video-z64.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1x7wsjs5gx2iwx20p4cjcbf696zsjlh31qxmghwv0ifrq8x58s1b"))
(base32 "04qa2fdd6dakpk2v0d4l80xh9b4h8gm71g80c0wyyxdhmhwk1r9c"))
(patches (search-patches "mupen64plus-video-z64-glew-correct-path.patch"))))
(build-system gnu-build-system)
(native-inputs
@ -936,13 +936,13 @@ (define-public mupen64plus-ui-console
(version "2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/mupen64plus/mupen64plus-ui-console/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/mupen64plus/mupen64plus-ui-console.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2"))
(base32 "0vrf98qa6a0y3647kslsv644fag233dxh5dcr1yncjiiwickcr5a"))
(patches (search-patches "mupen64plus-ui-console-notice.patch"))))
(build-system gnu-build-system)
(native-inputs
@ -999,21 +999,21 @@ (define-public nestopia-ue
(package
(name "nestopia-ue")
(version "1.48")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/rdanbrook/nestopia/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"184y05z4k4a4m4022niy625kan0rklh8gcxyynxli1fss2sjjrpv"))
(modules '((guix build utils)))
(snippet
'(begin
;; We don't need libretro for the GNU/Linux build.
(delete-file-recursively "libretro")
#t))))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rdanbrook/nestopia.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "19c8vx5yxbysl0sszk5blfngwacshdgwbf44g1qaxvq8ywiyxmb4"))
(modules '((guix build utils)))
(snippet
'(begin
;; We don't need libretro for the GNU/Linux build.
(delete-file-recursively "libretro")
#t))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -1185,7 +1185,7 @@ (define-public scummvm
(define-public mame
(package
(name "mame")
(version "0.206")
(version "0.209")
(source
(origin
(method git-fetch)
@ -1195,7 +1195,7 @@ (define-public mame
(file-name (git-file-name name version))
(sha256
(base32
"0i01h5ars1yd96ndmzhk47931hf261m8frqz1ha7s2gy52f0q86y"))
"08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -1333,7 +1333,8 @@ (define-public mame
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx)
("sphinx" ,python-sphinx)
("sphinxcontrib-svg2pdfconverter" ,python-sphinxcontrib-svg2pdfconverter)
("texinfo" ,texinfo)))
(inputs
`(("alsa-lib" ,alsa-lib)

View file

@ -9,7 +9,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
;;;
;;; This file is part of GNU Guix.
@ -85,6 +85,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xorg))
@ -554,43 +555,65 @@ (define-public fasthenry
(define-public fritzing
(package
(name "fritzing")
(version "0.9.2b")
(version "0.9.3b")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/fritzing/"
"fritzing-app/archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/fritzing/fritzing-app.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd"))))
"0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(and (zero? (system* "tar"
"-xvf" (assoc-ref inputs "fritzing-parts-db")
"-C" "parts"))
(zero? (system* "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out"))
"phoenix.pro"))))))))
(copy-recursively (assoc-ref inputs "fritzing-parts-db")
"parts")
;; Make compatible with libgit2 > 0.24
(substitute* "src/version/partschecker.cpp"
(("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
"error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
;; Use system libgit2 and boost.
(substitute* "phoenix.pro"
(("^LIBGIT2INCLUDE =.*")
(string-append "LIBGIT2INCLUDE="
(assoc-ref inputs "libgit2") "/include\n"))
(("^ LIBGIT2LIB =.*")
(string-append " LIBGIT2LIB="
(assoc-ref inputs "libgit2") "/lib\n")))
;; This file checks for old versions of Boost, insisting on
;; having us download the boost sources and placing them in the
;; build directory.
(substitute* "pri/utils.pri"
(("error\\(") "message("))
(let ((out (assoc-ref outputs "out")))
(invoke "qmake"
(string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib")
(string-append "PREFIX=" out)
"phoenix.pro")))))))
(inputs
`(("qtbase" ,qtbase)
("qtserialport" ,qtserialport)
("qtsvg" ,qtsvg)
("libgit2" ,libgit2)
("boost" ,boost)
("zlib" ,zlib)
("fritzing-parts-db"
,(origin
(method url-fetch)
(uri (string-append "https://github.com/fritzing/"
"fritzing-parts/archive/" version ".tar.gz"))
(file-name (string-append "fritzing-parts-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/fritzing/fritzing-parts.git")
(commit version)))
(file-name (git-file-name "fritzing-parts" version))
(sha256
(base32
"0jqr8yjg7177f3pk1fcns584r0qavwpr280nggsi2ff3pwk5wpsz"))))))
"1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
(home-page "http://fritzing.org")
(synopsis "Electronic circuit design")
(description
@ -1916,15 +1939,15 @@ (define-public qucs-s
(define-public librepcb
(package
(name "librepcb")
(version "0.1.0")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.librepcb.org/releases/0.1.0/librepcb-"
version "-source.zip"))
(uri (string-append "https://download.librepcb.org/releases/"
version "/librepcb-" version "-source.zip"))
(sha256
(base32
"0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv"))))
"08lm95kr5gqyqyy4hcii0micqa6ryhbv0harvdndmpvi4ix1ggi8"))))
(build-system gnu-build-system)
(inputs
`(("qtbase" ,qtbase)
@ -1985,3 +2008,57 @@ (define-public gpx
slicing software to x3g files for standalone 3D printing on common 3D
printers.")
(license license:gpl2+)))
(define-public gnucap
(package
(name "gnucap")
(version "20171003")
(source
(origin
(method url-fetch)
(uri (string-append "https://git.savannah.gnu.org/cgit/gnucap.git/snapshot/gnucap-"
version ".tar.gz"))
(sha256
(base32
"16m09xa685qhj5fqq3bcgakrwnb74xhf5f7rpqkkf9fg8plzbb1g"))))
(build-system gnu-build-system)
(inputs
`(("readline" ,readline)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Set correct rpath so that gnucap finds libgnucap.so.
(substitute* (list "apps/configure" "lib/configure"
"main/configure" "modelgen/configure")
(("LDFLAGS =")
(string-append "LDFLAGS = -Wl,-rpath=" out "/lib")))
;; gnucap uses a hand-written configure script that expects the
;; --prefix argument to be the first argument passed to it.
(invoke "./configure" (string-append "--prefix=" out)))))
(replace 'check
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(libpath "../lib/O:../apps/O"))
(with-directory-excursion "tests"
;; Make test return non-zero exit code when a test fails.
(substitute* "test"
(("/bin/sh") "/bin/sh -e")
(("\\|\\| echo \"\\*\\*\\*\\* \\$ii fails \\*\\*\\*\\*\"") ""))
;; Fix expected plugin search path for test c_attach.1.gc
(substitute* "==out/c_attach.1.gc.out"
(("/usr/local/lib/gnucap")
(string-append libpath ":" out "/lib/gnucap")))
;; Set library path so that gnucap can find libgnucap.so
;; while running the tests.
(setenv "LD_LIBRARY_PATH" libpath)
(invoke "./test" "../main/O/gnucap" "" "test-output" "==out"))))))))
(home-page "https://www.gnu.org/software/gnucap/")
(synopsis "Mixed analog and digital circuit simulator")
(description "GNUcap is a circuit analysis package. It offers a general
purpose circuit simulator and can perform DC and transient analyses, fourier
analysis and AC analysis. The engine is designed to do true mixed-mode
simulation.")
(license license:gpl3+)))

View file

@ -185,7 +185,7 @@ (define-public efl
(define-public terminology
(package
(name "terminology")
(version "1.3.2")
(version "1.4.0")
(source (origin
(method url-fetch)
(uri
@ -193,7 +193,7 @@ (define-public terminology
"terminology/terminology-" version ".tar.xz"))
(sha256
(base32
"1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm"))
"0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
(modules '((guix build utils)))
;; Remove the bundled fonts.
(snippet
@ -204,11 +204,24 @@ (define-public terminology
#t))))
(build-system meson-build-system)
(arguments
'(#:phases
`(#:configure-flags '("-Dtests=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-home-directory
;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2
(lambda _ (setenv "HOME" "/tmp") #t)))))
(lambda _ (setenv "HOME" "/tmp") #t))
(replace 'check
(lambda _
(with-directory-excursion
(string-append "../" ,name "-" ,version "/tests")
(invoke "sh" "run_tests.sh" "--verbose"
"-t" "../../build/src/bin/tytest"))))
(add-after 'install 'remove-test-binary
(lambda* (#:key outputs #:allow-other-keys)
;; This file is not meant to be installed.
(delete-file (string-append (assoc-ref outputs "out")
"/bin/tytest"))
#t)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("perl" ,perl)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,14 +28,14 @@ (define-module (gnu packages entr)
(define-public entr
(package
(name "entr")
(version "4.1")
(version "4.2")
(source (origin
(method url-fetch)
(uri (string-append "http://entrproject.org/code/entr-"
version ".tar.gz"))
(sha256
(base32
"0y7gvyf0iykpf3gfw09m21hy51m6qn4cpkbrm4nnn7pwrwycj0y5"))))
"0w2xkf77jikcjh15fp9g7661ss30pz3jbnh261vqpaqavwah4c17"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"

View file

@ -23,6 +23,7 @@
(define-module (gnu packages erlang)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix build-system emacs)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
@ -212,3 +213,21 @@ (define-public erlang
;; have other licenses. See 'system/COPYRIGHT' in the source distribution.
(license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat
license:lgpl2.0+ license:tcl/tk license:zlib))))
(define-public emacs-erlang
(package
(name "emacs-erlang")
(version (package-version erlang))
(source (package-source erlang))
(build-system emacs-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'set-emacs-load-path 'change-working-directory
(lambda _ (chdir "lib/tools/emacs") #t)))))
(home-page "https://www.erlang.org/")
(synopsis "Erlang major mode for Emacs")
(description
"This package provides an Emacs major mode for editing Erlang source
files.")
(license license:asl2.0)))

View file

@ -322,7 +322,7 @@ (define-public apfs-fuse
`(("bzip2" ,bzip2)
("fuse" ,fuse)
("zlib" ,zlib)))
(synopsis "Read-only FUSE driver for the APFS filesystem")
(synopsis "Read-only FUSE driver for the APFS file system")
(description "APFS-FUSE is a read-only FUSE driver for the @dfn{Apple File
System} (APFS). It is currently in an experimental state it may not be able
to read all files, and it does not support all the compression methods in

View file

@ -43,7 +43,9 @@ (define-public file
;; When cross-compiling, this package depends upon a native install of
;; itself.
(self-native-input? #t)
(native-inputs (if (%current-target-system)
`(("self" ,this-package))
'()))
(synopsis "File type guesser")
(description

View file

@ -6,7 +6,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@ -139,7 +139,7 @@ (define-public bitcoin-core
(define-public ledger
(package
(name "ledger")
(version "3.1.2")
(version "3.1.3")
(source
(origin
(method git-fetch)
@ -148,8 +148,7 @@ (define-public ledger
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hwnipj2m9p95hhyv6kyq54m27g14r58gnsy2my883kxhpcyb2vc"))
(patches (search-patches "ledger-fix-uninitialized.patch"))))
(base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@ -242,6 +241,13 @@ (define-public emacs-ledger-mode
#:tests? #f ; there are none
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-path
(lambda* (#:key inputs #:allow-other-keys)
(let ((ledger (assoc-ref inputs "ledger")))
(make-file-writable "ledger-exec.el")
(emacs-substitute-variables "ledger-exec.el"
("ledger-binary-path" (string-append ledger "/bin/ledger"))))
#t))
(add-after 'build 'build-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out")
@ -261,6 +267,8 @@ (define-public emacs-ledger-mode
(rename-file orig-dir dest-dir)
(emacs-generate-autoloads ,name dest-dir)
#t))))))
(inputs
`(("ledger" ,ledger)))
(native-inputs
`(("emacs-minimal" ,emacs-minimal)
("texinfo" ,texinfo)))
@ -391,7 +399,7 @@ (define-public electron-cash
(package
(inherit electrum)
(name "electron-cash")
(version "3.3.6")
(version "4.0.1")
(source
(origin
(method url-fetch)
@ -402,7 +410,7 @@ (define-public electron-cash
".tar.gz"))
(sha256
(base32
"110apc376wm4yd9ghpffiipwdn8rzyr3z7ncpp2516wbz4mmyhxc"))
"16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48"))
(modules '((guix build utils)))
(snippet
'(begin
@ -628,7 +636,7 @@ (define-public monero-core
(define-public python-trezor-agent
(package
(name "python-trezor-agent")
(version "0.13.0")
(version "0.13.1")
(source
(origin
(method git-fetch)
@ -637,7 +645,7 @@ (define-public python-trezor-agent
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0i4igkxi8fwdlbhg6nx27lhnc9v9nmrw4j5fvpnc202n6yjlc7x7"))))
(base32 "0q99vbfd3h85s8rnjipnmldixabqmmlk5w9karv6f0rhyi54f4zv"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -734,14 +742,14 @@ (define-public python2-ledgerblue
(define-public python-trezor
(package
(name "python-trezor")
(version "0.11.1")
(version "0.11.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "trezor" version))
(sha256
(base32
"064yds8f4px0c6grkkanpdjx022g4q87ihzhkmdv9qanv0hz6hv0"))))
"1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -780,14 +788,14 @@ (define-public python2-trezor
(define-public python-keepkey
(package
(name "python-keepkey")
(version "6.0.2")
(version "6.0.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "keepkey" version))
(sha256
(base32
"16j8hnxj9r4b2w6kfncmny09pb1al8ppmn59qxzl3qmh1xhpy45g"))))
"0z3d0m6364v9dv0njs4cd5m5ai6j6v35xaaxfxl90m9vmyxy81vd"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -926,7 +934,7 @@ (define-public python2-stdnum
(define-public python-duniterpy
(package
(name "python-duniterpy")
(version "0.52.0")
(version "0.53.0")
(source
(origin
(method git-fetch)
@ -937,7 +945,7 @@ (define-public python-duniterpy
(file-name (git-file-name name version))
(sha256
(base32
"07liba2d21hb8m3n6yccfamq9yq0ryywh18vs9g2sgywfsnv82lh"))))
"1km585xlv6dm693s5x6apcnx3ixvz08g8yjfclszhy4jakhpv0ya"))))
(build-system python-build-system)
(arguments
;; Tests fail with "AttributeError: module 'attr' has no attribute 's'".

Some files were not shown because too many files have changed in this diff Show more