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 @@
;;; 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 @@ interface (FFI) of Guile.")
(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 @@ files."
(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 @@ to 'make'."
(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 @@ to 'make'."
#: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

@ -22,8 +22,10 @@
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
info_TEXINFOS = %D%/guix.texi \
%D%/guix.es.texi \
%D%/guix.fr.texi \
%D%/guix.de.texi
%D%/guix.de.texi \
%D%/guix.zh_CN.texi
%C%_guix_TEXINFOS = \
%D%/contributing.texi \
@ -57,9 +59,13 @@ OS_CONFIG_EXAMPLES_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.fr.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 @@
(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 @@
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,26 +105,26 @@
(define-record-type* <bootloader-configuration>
bootloader-configuration make-bootloader-configuration
bootloader-configuration?
(bootloader bootloader-configuration-bootloader) ; <bootloader>
(target bootloader-configuration-target ; string
(bootloader bootloader-configuration-bootloader) ;<bootloader>
(target bootloader-configuration-target ;string
(default #f))
(menu-entries bootloader-configuration-menu-entries ; list of <boot-parameters>
(menu-entries bootloader-configuration-menu-entries ;list of <boot-parameters>
(default '()))
(default-entry bootloader-configuration-default-entry ; integer
(default-entry bootloader-configuration-default-entry ;integer
(default 0))
(timeout bootloader-configuration-timeout ; seconds as integer
(timeout bootloader-configuration-timeout ;seconds as integer
(default 5))
(theme bootloader-configuration-theme ; bootloader-specific theme
(keyboard-layout bootloader-configuration-keyboard-layout ;<keyboard-layout> | #f
(default #f))
(terminal-outputs bootloader-configuration-terminal-outputs ; list of symbols
(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
(terminal-inputs bootloader-configuration-terminal-inputs ;list of symbols
(default '()))
(serial-unit bootloader-configuration-serial-unit ; integer | #f
(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
(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 @@
#: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 @@ fi~%"
;;; 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 @@ entries corresponding to old generations of the system."
#: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 @@ entries corresponding to old generations of the system."
# 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-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 @@ new UIDs."
(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 @@ corresponds to the symbols listed in 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 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
(define* (boot-system #:key
(linux-modules '())
linux-module-directory
keymap-file
qemu-guest-networking?
volatile-root?
pre-mount
@ -444,7 +445,8 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
(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 @@ upon error."
#: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 @@ for the process."
(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 @@ host user identifiers to map into the user namespace."
;; 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 @@ corresponds to the symbols in 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 @@ host user identifiers to map into the user namespace."
(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 @@ host user identifiers to map into the user namespace."
#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 @@
#: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 @@ the #:references-graphs parameter of 'derivation'."
(_ #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 @@ GRUB configuration and OS-DRV as the stuff in it."
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 @@ GRUB configuration and OS-DRV as the stuff in it."
"-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 @@
#: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 @@ version of this file."
(define apply-locale
;; Install the specified locale.
#~(lambda (locale-name)
(with-imported-modules (source-module-closure '((gnu services herd)))
#~(lambda (locale)
(false-if-exception
(setlocale LC_ALL locale-name))))
(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 @@ selected keymap."
(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 @@ selected keymap."
"/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 @@ selected keymap."
(#$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 @@ selected keymap."
(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 @@ selected keymap."
(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 @@ selected keymap."
"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 @@ selected keymap."
(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 @@ selected keymap."
;; 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 ()
(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 @@ selected keymap."
;; 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 @@
#: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 @@
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 @@
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 @@ Configuration Database, describing possible XKB configurations."
(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 @@ Configuration Database, describing possible XKB configurations."
. ,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 @@
(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 @@
`("_" ,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 @@
#: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 @@ This will take a few minutes.")
(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 @@ press the button to reboot.")))
(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))
(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 @@
#: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 (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 @@ names of the selected keyboard layout and variant."
(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 @@ names of the selected keyboard layout and variant."
(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 @@
#: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 @@ installed system.")
(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 @@ locations based on the language you selected.")
(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 @@ glibc locale string and return it."
(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 @@ glibc locale string and return it."
;; 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 @@ glibc locale string and return it."
;; 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 @@ Internet and return the selected technology. For now, only technologies with
(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 @@ network device were found. Do you want to continue anyway?"))
(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 @@ network device were found. Do you want to continue anyway?"))
(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 @@
#: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 @@
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 @@ this page to 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 @@ of the page is set to 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 @@ be selected (using the <SPACE> key). It that case, a list containing the
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 @@ ITEM was inserted into LISTBOX."
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 @@ corresponding to each item in the list."
(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 @@ error is raised if the MAX-SCALE-UPDATE limit is reached."
(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 @@ a checkbox list. The page contains vertically stacked from the top to the
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 @@ pressed.
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)
(map (lambda (item selected?)
(let* ((item-text (item->text item))
(key (add-entry-to-checkboxtree checkbox-tree item-text 0)))
(key (add-entry-to-checkboxtree checkbox-tree item-text
(if selected?
FLAG-SELECTED
0))))
(cons key item)))
items))
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 (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 @@
(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 @@ USER-PARTITIONS list. Return this list with password fields filled-in."
(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 @@ encryption of partition ~a (label: ~a).") file-name crypt-label)
(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 @@ partition. Leave this field empty if you don't want to set a mounting point.")
(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 @@ by pressing the Exit button.~%~%")))
#: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 @@ by pressing the Exit button.~%~%")))
"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 (run-desktop-environments-cbt-page)
"Run a page allowing the user to choose between various desktop
environments."
(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, we will be able to \
choose the one to use on the log-in screen with F1.")
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 %desktop-environments
#:item->text desktop-environment-name
#: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))))))
(&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 @@ returned."
(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 @@
#: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 @@
(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 @@
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
@ -83,18 +107,56 @@
(cond
((components=? argument ok-button)
(let ((name (entry-value entry-name))
(home-directory (entry-value entry-home-directory)))
(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))
(let ((password (confirm-password password)))
(if password
(user
(name name)
(home-directory home-directory))))))))
(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 @@
(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 @@ installation and reboot."
(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 @@ nmc_wifi_strength_bars."
(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 @@
#: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,14 +1248,15 @@ from (gnu system mapped-devices) and return it."
(target ,label)
(type luks-device-mapping))))
(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)))
(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 root-user-partition?
user-partitions))
(root-partition-disk (user-partition-disk-file-name root-partition)))
`((bootloader-configuration
@ -1258,7 +1264,35 @@ from (gnu system mapped-devices) and return it."
`((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 @@ from (gnu system mapped-devices) and return it."
(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
(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 '(gnome-desktop-service)))
(snippet '((service gnome-desktop-service-type))))
(desktop-environment
(name "Xfce")
(snippet '(xfce-desktop-service)))
(snippet '((service xfce-desktop-service-type))))
(desktop-environment
(name "MATE")
(snippet '(mate-desktop-service)))
(snippet '((service mate-desktop-service-type))))
(desktop-environment
(name "Enlightenment")
(snippet '(service enlightenment-desktop-service-type)))))
(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)
;; 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)
'()
`((services (cons* ,@snippets
%desktop-services)))))))
`((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 @@ return the accumalated result so far."
(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)
#: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)))))
#:done-steps prev-done)))))))))
(define* (run result #:key todo-steps done-steps)
(match todo-steps
@ -215,7 +223,7 @@ found in 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 @@
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."
`((users (cons*
,@(map (lambda (user)
(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
(quote ("wheel" "netdev"
"audio" "video")))))
(supplementary-groups '("wheel" "netdev"
"audio" "video"))))
`((users (cons*
,@(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 @@ number. If no percentage is found, return #f"
(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 @@
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 @@
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 @@ flags."
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 @@ and provides a \"top-like\" mode (monitoring).")
(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 @@ the execution of system services, replacing similar functionality found in
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 @@ login, passwd, su, groupadd, and useradd.")
(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 @@ the client stations. It implements key negotiation with a WPA Authenticator
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 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
(define-public acpica
(package
(name "acpica")
(version "20190215")
(version "20190405")
(source (origin
(method url-fetch)
(uri (string-append
@ -1294,7 +1355,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz"))
(sha256
(base32
"1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg"))))
"0hv6r65l8vk3f6i3by7i47vc1917qm47838bpq80lfn22784y53y"))))
(build-system gnu-build-system)
(native-inputs `(("flex" ,flex)
("bison" ,bison)))
@ -1598,13 +1659,13 @@ of supported upstream metrics systems simultaneously.")
(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 @@ limits.")
(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 @@ limits.")
(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 @@ a new command using the matched rule, and runs it.")
(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 @@ Python loading in HPC environments.")
(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 @@ Python loading in HPC environments.")
(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 @@ Logitech Unifying Receiver.")
(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 @@ Logitech Unifying Receiver.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dbbfk47dpxx7zpb98n4w3ls3z5di57qnr2nsgxjvp49gk9j3f6k"))
(base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2944,11 +3011,10 @@ Logitech Unifying Receiver.")
(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 @@
#: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 @@
#: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 @@ precision.")
(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 @@ precision.")
"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 @@ precision.")
(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 @@ precision.")
("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 @@ maple, mupad and the TI89. It is available as a standalone program (graphic
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 @@ matrices, and polynomials over the integers and over finite fields.")
(define-public singular
(package
(name "singular")
(version "4.1.1p3")
(version "4.1.2p1")
(source
(origin
(method url-fetch)
@ -512,7 +520,7 @@ matrices, and polynomials over the integers and over finite fields.")
#\.) "-")
"/singular-" version ".tar.gz"))
(sha256 (base32
"1qqj9bm9pkzm0iyycpvm8x6s79wws3nq60lz25h8x1q61h3426sm"))))
"0kvd55353fiqyq1msmi0kka66n5h0aqs7m3km60r01b1w2f8085m"))))
(build-system gnu-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@ -857,6 +865,32 @@ features, and more.")
;; 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 @@ that is safe to use for user space. It also includes
(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 @@
#: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 @@ C++ @dfn{Standard Template Library} (STL).")
(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 @@ C++ @dfn{Standard Template Library} (STL).")
".tar.gz"))
(sha256
(base32
"1gqx4gn4c73rqwhsgzx0a460gr9hadmi28csp75rx30qavqsj7k1"))))
"1vy27kl68sbg41sfasa58k3p2nc1xfalvzk3k9gich9h90rpnpsz"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -131,7 +133,8 @@ C++ @dfn{Standard Template Library} (STL).")
("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 @@ for tweening, preventing the need to hand-draw each frame.")
(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 @@ for tweening, preventing the need to hand-draw each frame.")
".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-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 @@ to the clients.")
(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 @@
#: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 @@ header.")
(define-public gnuastro
(package
(name "gnuastro")
(version "0.8")
(version "0.9")
(source
(origin
(method url-fetch)
@ -111,7 +112,7 @@ header.")
version ".tar.lz"))
(sha256
(base32
"0gx6iar3z07k9sdvpa6kchsz6fpk94xn5vcvbcigssl2dwqmlnkb"))))
"1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig"))))
(inputs
`(("cfitsio" ,cfitsio)
("gsl" ,gsl)
@ -120,7 +121,8 @@ header.")
("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 @@ programs for the manipulation and analysis of astronomical data.")
(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 @@ programs for the manipulation and analysis of astronomical data.")
"/" name "-" version ".tar.gz"))
(sha256
(base32
"1mm8rjcb8j56m3kfigpix5vxviw1616kvl9ws2s3s5gdyngljrc3"))))
"1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
@ -161,13 +163,6 @@ programs for the manipulation and analysis of astronomical data.")
(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 @@ plugins are provided.")
(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 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(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 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(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 @@ gain controls. There is also a global bypass switch and gain control.
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 @@ follower.")
(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 @@ follower.")
(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 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(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 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz"))
(sha256
(base32
"1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac"))))
"0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
@ -2120,21 +2120,17 @@ different audio devices such as ALSA or PulseAudio.")
(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 @@ aimed at audio/musical applications.")
(define-public rubberband
(package
(name "rubberband")
(version "1.8.1")
(version "1.8.2")
(source (origin
(method url-fetch)
(uri
@ -2330,9 +2326,19 @@ aimed at audio/musical applications.")
(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 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(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 @@ interface.")
(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 @@ on the ALSA software PCM plugin.")
(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 @@ surround).")
(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 @@ surround).")
(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 @@ library.")
(define-public faudio
(package
(name "faudio")
(version "19.03")
(version "19.04")
(source
(origin
(method git-fetch)
@ -3706,7 +3710,7 @@ library.")
(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-public duplicity
(package
(name "duplicity")
(version "0.7.18.1")
(version "0.7.18.2")
(source
(origin
(method url-fetch)
@ -82,8 +82,7 @@
"-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 @@ precious backup space.
(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 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
#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 @@ with the Linux kernel.")
(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 @@ command.")
(define-public tzdata
(package
(name "tzdata")
(version "2018i")
(version "2019a")
(source (origin
(method url-fetch)
(uri (string-append
@ -1107,7 +1107,7 @@ command.")
version ".tar.gz"))
(sha256
(base32
"1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42"))))
"0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
@ -1157,7 +1157,7 @@ command.")
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 @@ files. The code was previously part of the cutadapt tool.")
(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 @@ databases. Packages produced are intended to be used with AnnotationDbi.")
(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 @@ annotation infrastructure.")
"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 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
;; (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 @@ categorize packages in a Bioconductor package repository according to keywords,
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 @@ functionality.")
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 @@ In addition, a few low-level concrete subclasses of general interest (e.g.
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 @@ biological sequences or sets of sequences.")
(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 @@ as well as query and modify the browser state, such as the current viewport.")
(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 @@ secondary structure and comparative analysis in R.")
"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 @@ paired-end data.")
(sha256
(base32
"0ss5hcg2m7gjji6dd23zxa5bd5a7knwcnada4qs5q2l4clgk39ad"))))
(properties `((upstream-name . "RCAS")))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
@ -8587,45 +8468,6 @@ characterization and visualization of a wide range of mutational patterns
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 @@ bound and non bound genomic regions to accurately identify transcription
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 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(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 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("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 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
(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 @@ effort and encourages consistency.")
(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 @@ by Ernst and Kellis.")
(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 @@ defining LD blocks.")
(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 @@ block processing.")
(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 @@ memory usage and processing time is minimized.")
(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 @@ with narrow binding events such as transcription factor ChIP-seq.")
(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 @@ with narrow binding events such as transcription factor ChIP-seq.")
(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 @@ with narrow binding events such as transcription factor ChIP-seq.")
(inputs
`(("gzip" ,gzip)
("perl" ,perl)
("pigz" ,pigz)
("cutadapt" ,cutadapt)))
(native-inputs
`(("unzip" ,unzip)))
@ -12220,6 +12047,23 @@ graphs. This library makes it easy to work with @file{.loom} files for
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 @@ expression report comparing samples in an easily configurable manner.")
(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 @@ expression report comparing samples in an easily configurable manner.")
"/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 @@ methylation and segmentation.")
("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 @@ in RNA-seq data.")
(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 @@ Python-based implementation efficiently deals with datasets of more than one
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 @@ overlapping paired-ended reads into (longer) consensus sequences.
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 @@
(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 @@ tree binary files. These are board description files used by Linux and BSD.")
(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 @@ tree binary files. These are board description files used by Linux and BSD.")
"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 @@ also initializes the boards (RAM etc).")
(("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
@ -482,13 +490,20 @@ def test_ctrl_c"))
#t)))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key make-flags test-target #:allow-other-keys)
(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)
(symlink "build-sandbox_spl" "sandbox")
(invoke "test/image/test-imagetools.sh"))))))
(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 @@ board-independent tools.")))
(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 @@ board-independent tools.")))
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 @@ to Novena upstream, does not load u-boot.img from the first patition.")
;; 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 @@
#: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 @@ typing conventions?
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 @@ data units.")
(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 @@ data units.")
(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 @@ data units.")
(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 @@ or @command{xorrisofs} to create ISO 9660 images.")
(package
(name "dvdisaster")
(version "0.79.5")
(source (origin
(source
(origin
(method url-fetch)
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
;; 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"))))
(base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)))
@ -384,7 +386,8 @@ or @command{xorrisofs} to create ISO 9660 images.")
(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 @@ information is written to standard error.")
(define-public asunder
(package
(name "asunder")
(version "2.8")
(version "2.9.3")
(source (origin
(method url-fetch)
(uri
@ -665,7 +668,7 @@ information is written to standard error.")
".tar.bz2"))
(sha256
(base32
"1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq"))))
"1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:out-of-source? #f
@ -860,3 +863,108 @@ Supported extensions to ISO 9660 are Rock Ridge, Joliet, AAIP, zisofs.")
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 @@ test coverage and has a web user interface that will refresh automatically.")
(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 @@ create data based on random numbers and yet remain repeatable.")
(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 @@ record the properties and behaviour of particular devices, and to run a
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 @@ strings.")
(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 @@
#: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 @@
#: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 @@
"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 @@
"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 @@
"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 @@
"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 @@ from forcing GEXP-PROMISE."
#: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,11 +233,12 @@ from forcing GEXP-PROMISE."
(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
(let ((chromium-source
(origin
(method url-fetch)
(uri (string-append "https://commondatastorage.googleapis.com"
@ -245,7 +246,7 @@ from forcing GEXP-PROMISE."
%chromium-version ".tar.xz"))
(sha256
(base32
"07xwmlvmzfga61nrimqmzl7s29jb4kc94nkzwwlb7sh6nr55a7jc"))))
"11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i"))))
(ungoogled-source
(origin
(method git-fetch)
@ -255,7 +256,20 @@ from forcing GEXP-PROMISE."
(string-take %ungoogled-revision 7)))
(sha256
(base32
"0rgirbxbgjdm3s2kzgj101rjq0clr7x2a7b37kfx2q629z4qlrpc")))))
"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 @@ from forcing GEXP-PROMISE."
(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,36 +298,57 @@ from forcing GEXP-PROMISE."
(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"
@ -421,13 +459,19 @@ depends = linux_rooted\n")))
"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 @@ depends = linux_rooted\n")))
(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 @@ COREUTILS-FINAL vs. COREUTILS, etc."
(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 @@ the @code{zlib} source.")
(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 @@
(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-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 @@
"--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 @@ operating system functions.")
(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 @@ operating system functions.")
(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 @@ communication, encryption, decryption, signatures, etc.")
(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 @@ communication, encryption, decryption, signatures, etc.")
(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 @@ OpenBSD tool of the same name.")
(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-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 @@
"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 @@ printer/driver specific, but spooler-independent PPD file.")
(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 @@
#: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 @@
#: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 @@ ElasticSearch server")
(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 @@ mapping from string keys to string values.")
(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 @@ data in a single database. RocksDB is partially based on @code{LevelDB}.")
(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 @@ for example from a shell script.")
;; 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 @@ module, and nothing else.")
(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 @@ for ODBC.")
(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 @@ Database API 2.0T.")
(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 @@ reasonable substitute.")
(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-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 @@ program to exhibit a bug.")
;; 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 @@ program to exhibit a bug.")
"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 @@ program to exhibit a bug.")
("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 @@ program to exhibit a bug.")
,(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 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
(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 @@ and a Python library.")
(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 @@ and a Python library.")
(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 @@
#: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 @@ LVM D-Bus API).")
("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 @@
#: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 @@ Qt-style API for Wayland clients.")
"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 @@ project aims to bulk update given objects using one query over Django ORM.")
(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 @@ entries, photos, book chapters, or anything else.")
`(#: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 @@ and freshness without requiring additional information from the user.")
(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"))
(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
"1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
(base32 "0nnrjavfmpfp7bib04isqlxvyzh6mlvsdan0gxysdz96hlg4hcq8"))))
(build-system cmake-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(properties
@ -101,14 +101,19 @@ and freshness without requiring additional information from the user.")
(modify-phases %standard-phases
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
(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
(zero? (system* "tar" "xvf"
(assoc-ref inputs source)
"--strip-components=1"))))))
(and (unpack "phobos-src" "runtime/phobos")
(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")))))
(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 @@ and freshness without requiring additional information from the user.")
("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 @@ bootstrapping more recent compilers written in D.")
(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"))
(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
"16b1h9kwfggjw6ykc6sfs26ak6vypylsx9wmvp5m6x3cvi6g70yi"))))
(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)
(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
(zero? (system* "tar" "xvf"
(assoc-ref inputs source)
"--strip-components=1"))))))
(and (unpack "phobos-src" "runtime/phobos")
(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")))))
(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"
@ -258,13 +268,13 @@ bootstrapping more recent compilers written in D.")
("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,35 +287,36 @@ bootstrapping more recent compilers written in D.")
(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"))
(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
"1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
(base32 "073ibvgm1gphcqs1yjrav9ryp677nh3b194nxmvicwgvdc0sb6w9"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)

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 @@
#: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 @@ and BOOTP/TFTP for network booting of diskless machines.")
(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 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/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 @@ and BOOTP/TFTP for network booting of diskless machines.")
`(("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 @@ asynchronous fashion.")
(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,16 +575,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
(version "2.8.0")
(source (origin
(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
"1vw7xx7bm440jwrpvdd04vrp6ccz2b11swcn9msvs62hf0kdjjj9"))
(patches
(search-patches "knot-include-system-lmdb-header.patch"))
(base32 "1im2wb8hl394mzni1wavmvfqd7il8s28kcz8w3s4v05nbhzg06xj"))
(modules '((guix build utils)))
(snippet
'(begin
@ -809,3 +813,53 @@ mDNS resolver as well as an announcer. mDNS (Multicast Domain Name System) is
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 @@
#: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 @@ network attachments.")
(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 @@ network attachments.")
(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 @@ provisioning etc.")
(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 @@
(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 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
(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-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 @@ SPI, I2C, JTAG.")
"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 @@ and Game Boy Color games.")
(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 @@ core library.")
(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 @@ SDL audio plugin.")
(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 @@ SDL input plugin.")
(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 @@ high-level emulation (HLE) RSP processor plugin.")
(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 @@ Z64 RSP processor plugin.")
(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 @@ Arachnoid video plugin.")
(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 @@ Glide64 video plugin.")
(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 @@ Glide64MK2 video plugin.")
(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 @@ Rice Video plugin.")
(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 @@ Z64 video plugin.")
(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,15 +999,15 @@ towards a working Mupen64Plus for casual users.")
(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"))
(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
"184y05z4k4a4m4022niy625kan0rklh8gcxyynxli1fss2sjjrpv"))
(base32 "19c8vx5yxbysl0sszk5blfngwacshdgwbf44g1qaxvq8ywiyxmb4"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1185,7 +1185,7 @@ play them on systems for which they were never designed!")
(define-public mame
(package
(name "mame")
(version "0.206")
(version "0.209")
(source
(origin
(method git-fetch)
@ -1195,7 +1195,7 @@ play them on systems for which they were never designed!")
(file-name (git-file-name name version))
(sha256
(base32
"0i01h5ars1yd96ndmzhk47931hf261m8frqz1ha7s2gy52f0q86y"))
"08qvwmx8wbfkqxiccmcff86dsrlq6wjxf6blnhhrsbzic1ji99bh"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.
@ -1333,7 +1333,8 @@ play them on systems for which they were never designed!")
#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 @@
#: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 @@ multipole-accelerated algorithm.")
(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 @@ simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
(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 @@ editors.")
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 @@ removable devices or support for multimedia.")
(define-public terminology
(package
(name "terminology")
(version "1.3.2")
(version "1.4.0")
(source (origin
(method url-fetch)
(uri
@ -193,7 +193,7 @@ removable devices or support for multimedia.")
"terminology/terminology-" version ".tar.xz"))
(sha256
(base32
"1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm"))
"0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
(modules '((guix build utils)))
;; Remove the bundled fonts.
(snippet
@ -204,11 +204,24 @@ removable devices or support for multimedia.")
#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-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 @@ built-in support for concurrency, distribution and fault tolerance.")
;; 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 @@ network. LIBNFS offers three different APIs, for different use :
`(("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 @@
;; 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 @@ line client and a client based on Qt.")
(define-public ledger
(package
(name "ledger")
(version "3.1.2")
(version "3.1.3")
(source
(origin
(method git-fetch)
@ -148,8 +148,7 @@ line client and a client based on Qt.")
(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 @@ in ability, and easy to use.")
#: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 @@ in ability, and easy to use.")
(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 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(package
(inherit electrum)
(name "electron-cash")
(version "3.3.6")
(version "4.0.1")
(source
(origin
(method url-fetch)
@ -402,7 +410,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
".tar.gz"))
(sha256
(base32
"110apc376wm4yd9ghpffiipwdn8rzyr3z7ncpp2516wbz4mmyhxc"))
"16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48"))
(modules '((guix build utils)))
(snippet
'(begin
@ -628,7 +636,7 @@ Monero GUI client.")
(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 @@ Monero GUI client.")
(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 @@ Ledger Blue/Nano S.")
(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 @@ TREZOR Hardware Wallet.")
(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 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(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 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(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