me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
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 /configure
/doc/*.1 /doc/*.1
/doc/.dirstamp /doc/.dirstamp
/doc/contributing.*.texi
/doc/guix.*.aux /doc/guix.*.aux
/doc/guix.*.cp /doc/guix.*.cp
/doc/guix.*.cps /doc/guix.*.cps
@ -43,6 +44,7 @@
/doc/guix.*.tp /doc/guix.*.tp
/doc/guix.*.vr /doc/guix.*.vr
/doc/guix.*.vrs /doc/guix.*.vrs
/doc/guix.*.texi
/doc/guix.aux /doc/guix.aux
/doc/guix.cp /doc/guix.cp
/doc/guix.cps /doc/guix.cps

View File

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

84
NEWS
View File

@ -2,7 +2,7 @@
#+TITLE: Guix NEWS history of user-visible changes #+TITLE: Guix NEWS history of user-visible changes
#+STARTUP: content hidestars #+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> Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
Copying and distribution of this file, with or without modification, 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. 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) * Changes in 0.16.0 (since 0.15.0)
** Package management ** Package management

View File

@ -2,4 +2,18 @@
# Create the build system. # Create the build system.
set -e -x 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 exec autoreconf -vfi

View File

@ -54,10 +54,6 @@
;;; available at this point. ;;; available at this point.
;;; ;;;
(define %dependency-variables
;; (guix config) variables corresponding to dependencies.
'(%libgcrypt %libz %xz %gzip %bzip2))
(define %persona-variables (define %persona-variables
;; (guix config) variables that define Guix's persona. ;; (guix config) variables that define Guix's persona.
'(%guix-package-name '(%guix-package-name
@ -313,7 +309,11 @@ interface (FFI) of Guile.")
(cons (string-append #$guile-gcrypt "/lib/guile/" (cons (string-append #$guile-gcrypt "/lib/guile/"
(effective-version) (effective-version)
"/site-ccache") "/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) (use-modules (guix store)
(guix self) (guix self)
@ -399,6 +399,9 @@ files."
(mlet %store-monad ((build (build-program source version guile-version (mlet %store-monad ((build (build-program source version guile-version
#:pull-version pull-version)) #:pull-version pull-version))
(system (if system (return system) (current-system))) (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))) (port ((store-lift nix-server-socket)))
(major ((store-lift nix-server-major-version))) (major ((store-lift nix-server-major-version)))
(minor ((store-lift nix-server-minor-version)))) (minor ((store-lift nix-server-minor-version))))

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -17,7 +17,8 @@
;;; You should have received a copy of the GNU General Public License ;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; 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) (ice-9 threads)
(srfi srfi-1) (srfi srfi-1)
(guix build compile) (guix build compile)
@ -78,6 +79,10 @@ to 'make'."
(current-processor-count)))) (current-processor-count))))
(loop tail))))))))) (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 ;; Install a SIGINT handler to give unwind handlers in 'compile-file' an
;; opportunity to run upon SIGINT and to remove temporary output files. ;; opportunity to run upon SIGINT and to remove temporary output files.
(sigaction SIGINT (sigaction SIGINT
@ -92,10 +97,14 @@ to 'make'."
#:host host #:host host
#:report-load (lambda (file total completed) #:report-load (lambda (file total completed)
(when file (when file
(format #t " LOAD ~a~%" file) (format #t "[~3d%] LOAD ~a~%"
(% (+ 1 completed) (* 2 total))
file)
(force-output))) (force-output)))
#:report-compilation (lambda (file total completed) #:report-compilation (lambda (file total completed)
(when file (when file
(format #t " GUILEC ~a~%" (format #t "[~3d%] GUILEC ~a~%"
(% (+ total completed 1)
(* 2 total))
(scm->go file)) (scm->go file))
(force-output)))))) (force-output))))))

View File

@ -202,7 +202,6 @@ else
AC_MSG_RESULT([not found]) AC_MSG_RESULT([not found])
fi fi
LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no" LIBGCRYPT_LIBDIR="no"
LIBGCRYPT_PREFIX="no" LIBGCRYPT_PREFIX="no"
@ -212,7 +211,6 @@ AC_ARG_WITH([libgcrypt-prefix],
yes|no) yes|no)
;; ;;
*) *)
LIBGCRYPT="$withval/lib/libgcrypt"
LIBGCRYPT_PREFIX="$withval" LIBGCRYPT_PREFIX="$withval"
LIBGCRYPT_LIBDIR="$withval/lib" LIBGCRYPT_LIBDIR="$withval/lib"
;; ;;
@ -223,11 +221,9 @@ AC_ARG_WITH([libgcrypt-libdir],
[search for GNU libgcrypt's shared library in DIR])], [search for GNU libgcrypt's shared library in DIR])],
[case "$withval" in [case "$withval" in
yes|no) yes|no)
LIBGCRYPT="libgcrypt"
LIBGCRYPT_LIBDIR="no" LIBGCRYPT_LIBDIR="no"
;; ;;
*) *)
LIBGCRYPT="$withval/libgcrypt"
LIBGCRYPT_LIBDIR="$withval" LIBGCRYPT_LIBDIR="$withval"
;; ;;
esac]) esac])
@ -240,10 +236,6 @@ case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in
;; ;;
esac 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_PREFIX])
AC_SUBST([LIBGCRYPT_LIBDIR]) 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 @example
(service qemu-binfmt-service-type (service qemu-binfmt-service-type
(qemu-binfmt-configuration (qemu-binfmt-configuration
(platforms (lookup-qemu-platforms "arm" "aarch64" "ppc" "mips64el")) (platforms (lookup-qemu-platforms "arm" "aarch64" "mips64el"))
(guix-support? #t))) (guix-support? #t)))
@end example @end example
@ -835,12 +835,11 @@ Then reconfigure your system.
You can then build packages for different platforms by specifying the You can then build packages for different platforms by specifying the
@code{--system} option. For example, to build the "hello" package for @code{--system} option. For example, to build the "hello" package for
the armhf, aarch64, powerpc, or mips64 architectures, you would run the the armhf, aarch64, or mips64 architectures, you would run the following
following commands, respectively: commands, respectively:
@example @example
guix build --system=armhf-linux --rounds=2 hello guix build --system=armhf-linux --rounds=2 hello
guix build --system=aarch64-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 guix build --system=mips64el-linux --rounds=2 hello
@end example @end example

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # 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. # This file is part of GNU Guix.
# #
@ -167,6 +167,15 @@ _guix_complete ()
else else
_guix_complete_available_package "$word_at_point" _guix_complete_available_package "$word_at_point"
fi 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" elif _guix_is_command "build"
then then
if _guix_is_dash_L 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 ;;; 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 © 2015 Joshua S. Grant <jgrant@parenthetical.io>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
@ -45,6 +45,7 @@
(gnu system file-systems) (gnu system file-systems)
(gnu bootloader) (gnu bootloader)
(gnu bootloader grub) (gnu bootloader grub)
(gnu system keyboard)
(gnu system pam) (gnu system pam)
(gnu system shadow) ; 'user-account' (gnu system shadow) ; 'user-account'
(gnu system linux-initrd) (gnu system linux-initrd)

View File

@ -47,6 +47,7 @@
bootloader-configuration-menu-entries bootloader-configuration-menu-entries
bootloader-configuration-default-entry bootloader-configuration-default-entry
bootloader-configuration-timeout bootloader-configuration-timeout
bootloader-configuration-keyboard-layout
bootloader-configuration-theme bootloader-configuration-theme
bootloader-configuration-terminal-outputs bootloader-configuration-terminal-outputs
bootloader-configuration-terminal-inputs bootloader-configuration-terminal-inputs
@ -104,27 +105,27 @@
(define-record-type* <bootloader-configuration> (define-record-type* <bootloader-configuration>
bootloader-configuration make-bootloader-configuration bootloader-configuration make-bootloader-configuration
bootloader-configuration? bootloader-configuration?
(bootloader bootloader-configuration-bootloader) ; <bootloader> (bootloader bootloader-configuration-bootloader) ;<bootloader>
(target bootloader-configuration-target ; string (target bootloader-configuration-target ;string
(default #f)) (default #f))
(menu-entries bootloader-configuration-menu-entries ; list of <boot-parameters> (menu-entries bootloader-configuration-menu-entries ;list of <boot-parameters>
(default '())) (default '()))
(default-entry bootloader-configuration-default-entry ; integer (default-entry bootloader-configuration-default-entry ;integer
(default 0)) (default 0))
(timeout bootloader-configuration-timeout ; seconds as integer (timeout bootloader-configuration-timeout ;seconds as integer
(default 5)) (default 5))
(theme bootloader-configuration-theme ; bootloader-specific theme (keyboard-layout bootloader-configuration-keyboard-layout ;<keyboard-layout> | #f
(default #f)) (default #f))
(terminal-outputs bootloader-configuration-terminal-outputs ; list of symbols (theme bootloader-configuration-theme ;bootloader-specific theme
(default '(gfxterm))) (default #f))
(terminal-inputs bootloader-configuration-terminal-inputs ; list of symbols (terminal-outputs bootloader-configuration-terminal-outputs ;list of symbols
(default '())) (default '(gfxterm)))
(serial-unit bootloader-configuration-serial-unit ; integer | #f (terminal-inputs bootloader-configuration-terminal-inputs ;list of symbols
(default #f)) (default '()))
(serial-speed bootloader-configuration-serial-speed ; integer | #f (serial-unit bootloader-configuration-serial-unit ;integer | #f
(default #f)) (default #f))
(additional-configuration bootloader-configuration-additional-configuration ; record (serial-speed bootloader-configuration-serial-speed ;integer | #f
(default #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 bootloader)
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:use-module (gnu system file-systems) #:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
#:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg) #:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -219,6 +221,26 @@ fi~%"
;;; Configuration file. ;;; 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) (define (grub-setup-io config)
"Return GRUB commands to configure the input / output interfaces. The result "Return GRUB commands to configure the input / output interfaces. The result
is a string that can be inserted in grub.cfg." is a string that can be inserted in grub.cfg."
@ -330,6 +352,18 @@ entries corresponding to old generations of the system."
#:system system #:system system
#:port #~port)) #: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 (define builder
#~(call-with-output-file #$output #~(call-with-output-file #$output
(lambda (port) (lambda (port)
@ -338,6 +372,7 @@ entries corresponding to old generations of the system."
# will be lost upon reconfiguration. # will be lost upon reconfiguration.
") ")
#$sugar #$sugar
#$keyboard-layout-config
(format port " (format port "
set default=~a set default=~a
set timeout=~a~%" set timeout=~a~%"

View File

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

View File

@ -483,9 +483,12 @@ new UIDs."
(real-name (if previous (real-name (if previous
(password-entry-real-name previous) (password-entry-real-name previous)
real-name)) real-name))
(shell (if previous
(password-entry-shell previous) ;; Do not reuse the shell of PREVIOUS since (1)
shell))) ;; 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) result)
allocation)))) allocation))))
'() '()

View File

@ -575,6 +575,8 @@ corresponds to the symbols listed in FLAGS."
(logior MS_NODEV (loop rest))) (logior MS_NODEV (loop rest)))
(('no-exec rest ...) (('no-exec rest ...)
(logior MS_NOEXEC (loop rest))) (logior MS_NOEXEC (loop rest)))
(('no-atime rest ...)
(logior MS_NOATIME (loop rest)))
(() (()
0)))) 0))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -437,6 +437,7 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
(define* (boot-system #:key (define* (boot-system #:key
(linux-modules '()) (linux-modules '())
linux-module-directory linux-module-directory
keymap-file
qemu-guest-networking? qemu-guest-networking?
volatile-root? volatile-root?
pre-mount pre-mount
@ -444,7 +445,8 @@ bailing out.~%root contents: ~s~%" (scandir "/"))
(on-error 'debug)) (on-error 'debug))
"This procedure is meant to be called from an initrd. Boot a system by "This procedure is meant to be called from an initrd. Boot a system by
first loading LINUX-MODULES (a list of module names) from 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 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 specified in MOUNTS, and finally booting into the new root if any. The initrd
supports kernel command-line options '--load', '--root', and '--repl'. supports kernel command-line options '--load', '--root', and '--repl'.
@ -491,6 +493,15 @@ upon error."
#:lookup-module lookup-module) #:lookup-module lookup-module)
(map lookup-module linux-modules)) (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? (when qemu-guest-networking?
(unless (configure-qemu-networking) (unless (configure-qemu-networking)
(display "network interface is DOWN\n"))) (display "network interface is DOWN\n")))

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -168,9 +168,12 @@ for the process."
(umount "real-root" MNT_DETACH) (umount "real-root" MNT_DETACH)
(rmdir "real-root"))) (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 "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 (define proc-dir
(string-append "/proc/" (number->string pid))) (string-append "/proc/" (number->string pid)))
@ -191,10 +194,10 @@ host user identifiers to map into the user namespace."
;; within the container. ;; within the container.
(call-with-output-file (scope "/uid_map") (call-with-output-file (scope "/uid_map")
(lambda (port) (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") (call-with-output-file (scope "/gid_map")
(lambda (port) (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) (define (namespaces->bit-mask namespaces)
"Return the number suitable for the 'flags' argument of 'clone' that "Return the number suitable for the 'flags' argument of 'clone' that
@ -210,13 +213,17 @@ corresponds to the symbols in NAMESPACES."
('net CLONE_NEWNET)) ('net CLONE_NEWNET))
namespaces))) 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 "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> the root directory for the container. MOUNTS is a list of <file-system>
objects that specify file systems to mount inside the container. NAMESPACES objects that specify file systems to mount inside the container. NAMESPACES
is a list of symbols that correspond to the possible Linux namespaces: mnt, is a list of symbols that correspond to the possible Linux namespaces: mnt,
ipc, uts, user, and net. HOST-UIDS specifies the number of ipc, uts, user, and net.
host user identifiers to map into the user namespace."
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 ;; 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 ;; before it can boot. To negotiate this, a pipe is used such that the
;; child process blocks until the parent writes to it. ;; child process blocks until the parent writes to it.
@ -254,7 +261,9 @@ host user identifiers to map into the user namespace."
(pid (pid
(close-port child) (close-port child)
(when (memq 'user namespaces) (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. ;; TODO: Initialize cgroups.
(write 'ready parent) (write 'ready parent)
(newline parent) (newline parent)
@ -271,23 +280,30 @@ host user identifiers to map into the user namespace."
#f))))))))) #f)))))))))
(define* (call-with-container mounts thunk #:key (namespaces %namespaces) (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. "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 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 inside the container. NAMESPACES is a list of symbols corresponding to
the identifiers for Linux namespaces: mnt, ipc, uts, pid, user, and net. By 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 default, all namespaces are used.
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 HOST-UIDS is the number of host user identifiers to map into the container's
container. The host user that creates the container is the root user (uid/gid user namespace, if there is one. By default, only a single uid/gid, that of
0) within the container. Only root can map more than a single uid/gid. 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 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 module files must be present in one of the mappings in MOUNTS and the Guile
load path must be adjusted as needed." load path must be adjusted as needed."
(call-with-temporary-directory (call-with-temporary-directory
(lambda (root) (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. ;; Catch SIGINT and kill the container process.
(sigaction SIGINT (sigaction SIGINT
(lambda (signum) (lambda (signum)

View File

@ -37,6 +37,7 @@
#:use-module (ice-9 popen) #:use-module (ice-9 popen)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:export (qemu-command #:export (qemu-command
load-in-linux-vm load-in-linux-vm
@ -144,6 +145,7 @@ the #:references-graphs parameter of 'derivation'."
(_ #f)) (_ #f))
(apply invoke qemu "-nographic" "-no-reboot" (apply invoke qemu "-nographic" "-no-reboot"
"-smp" (number->string (parallel-job-count))
"-m" (number->string memory-size) "-m" (number->string memory-size)
"-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng" "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
"-device" "virtio-rng-pci,rng=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) closures)
(register-bootcfg-root "/tmp/root" config-file)) (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 (let ((pipe
(apply open-pipe* OPEN_WRITE (apply open-pipe* OPEN_WRITE
grub-mkrescue "-o" target grub-mkrescue "-o" target
@ -472,9 +497,8 @@ GRUB configuration and OS-DRV as the stuff in it."
"-path-list" "-" "-path-list" "-"
"--" "--"
;; XXX: Add padding to avoid I/O errors on i686: ;; Set all timestamps to 1.
;; <https://bugs.gnu.org/33639>. "-volume_date" "all_file_dates" "=1"
"-padding" "10m"
"-volid" (string-upcase volume-id) "-volid" (string-upcase volume-id)
(if volume-uuid (if volume-uuid

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -42,13 +43,17 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:export (installer-program)) #:export (installer-program))
(define not-config? (define module-to-import?
;; Select (guix …) and (gnu …) modules, except (guix config). ;; 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 (match-lambda
(('guix 'config) #f) (('guix 'config) #f)
(('guix rest ...) #t) (('gnu 'installer _ ...) #t)
(('gnu rest ...) #t) (('gnu 'build _ ...) #t)
(rest #f))) (('guix 'build _ ...) #t)
(_ #f)))
(define* (build-compiled-file name locale-builder) (define* (build-compiled-file name locale-builder)
"Return a file-like object that evalutes the gexp LOCALE-BUILDER and store "Return a file-like object that evalutes the gexp LOCALE-BUILDER and store
@ -86,9 +91,17 @@ version of this file."
(define apply-locale (define apply-locale
;; Install the specified locale. ;; Install the specified locale.
#~(lambda (locale-name) (with-imported-modules (source-module-closure '((gnu services herd)))
(false-if-exception #~(lambda (locale)
(setlocale LC_ALL locale-name)))) (false-if-exception
(setlocale LC_ALL locale))
;; Restart the documentation viewer so it displays the manual in
;; language that corresponds to LOCALE.
(with-error-to-port (%make-void-port "w")
(lambda ()
(stop-service 'term-tty2)
(start-service 'term-tty2 (list locale)))))))
(define* (compute-locale-step #:key (define* (compute-locale-step #:key
locales-name locales-name
@ -156,7 +169,8 @@ selected keymap."
(lambda (models layouts) (lambda (models layouts)
((installer-keymap-page current-installer) ((installer-keymap-page current-installer)
layouts))))) layouts)))))
(#$apply-keymap result)))) (#$apply-keymap result)
result)))
(define (installer-steps) (define (installer-steps)
(let ((locale-step (compute-locale-step (let ((locale-step (compute-locale-step
@ -168,14 +182,6 @@ selected keymap."
"/share/zoneinfo/zone.tab"))) "/share/zoneinfo/zone.tab")))
#~(lambda (current-installer) #~(lambda (current-installer)
(list (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 ;; Ask the user to choose a locale among those supported by
;; the glibc. Install the selected locale right away, so that ;; the glibc. Install the selected locale right away, so that
;; the user may benefit from any available translation for the ;; the user may benefit from any available translation for the
@ -187,6 +193,14 @@ selected keymap."
(#$locale-step current-installer))) (#$locale-step current-installer)))
(configuration-formatter locale->configuration)) (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. ;; Ask the user to select a timezone under glibc format.
(installer-step (installer-step
(id 'timezone) (id 'timezone)
@ -208,7 +222,8 @@ selected keymap."
(id 'keymap) (id 'keymap)
(description (G_ "Keyboard mapping selection")) (description (G_ "Keyboard mapping selection"))
(compute (lambda _ (compute (lambda _
(#$keymap-step current-installer)))) (#$keymap-step current-installer)))
(configuration-formatter keyboard-layout->configuration))
;; Run a partitioning tool allowing the user to modify ;; Run a partitioning tool allowing the user to modify
;; partition tables, partitions and their mount points. ;; partition tables, partitions and their mount points.
@ -249,8 +264,7 @@ selected keymap."
(description (G_ "Services")) (description (G_ "Services"))
(compute (lambda _ (compute (lambda _
((installer-services-page current-installer)))) ((installer-services-page current-installer))))
(configuration-formatter (configuration-formatter system-services->configuration))
desktop-environments->configuration))
(installer-step (installer-step
(id 'final) (id 'final)
@ -293,13 +307,16 @@ selected keymap."
"gnu/installer")) "gnu/installer"))
(define installer-builder (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 (with-extensions (list guile-gcrypt guile-newt
guile-parted guile-bytestructures guile-parted guile-bytestructures
guile-json) guile-json guile-git guix)
(with-imported-modules `(,@(source-module-closure (with-imported-modules `(,@(source-module-closure
`(,@modules `(,@modules
(gnu services herd)
(guix build utils)) (guix build utils))
#:select? not-config?) #:select? module-to-import?)
((guix config) => ,(make-config.scm))) ((guix config) => ,(make-config.scm)))
#~(begin #~(begin
(use-modules (gnu installer record) (use-modules (gnu installer record)
@ -313,6 +330,9 @@ selected keymap."
(gnu installer timezone) (gnu installer timezone)
(gnu installer user) (gnu installer user)
(gnu installer newt) (gnu installer newt)
((gnu installer newt keymap)
#:select (keyboard-layout->configuration))
(gnu services herd)
(guix i18n) (guix i18n)
(guix build utils) (guix build utils)
(ice-9 match)) (ice-9 match))
@ -324,16 +344,40 @@ selected keymap."
;; Add some binaries used by the installers to PATH. ;; Add some binaries used by the installers to PATH.
#$set-installer-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) (let* ((current-installer newt-installer)
(steps (#$steps current-installer))) (steps (#$steps current-installer)))
((installer-init current-installer)) ((installer-init current-installer))
(catch #t (catch #t
(lambda () (lambda ()
(run-installer-steps (define results
#:rewind-strategy 'menu (run-installer-steps
#:menu-proc (installer-menu-page current-installer) #:rewind-strategy 'menu
#:steps steps)) #: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) (const #f)
(lambda (key . args) (lambda (key . args)
(let ((error-file "/tmp/last-installer-error")) (let ((error-file "/tmp/last-installer-error"))
@ -356,4 +400,5 @@ selected keymap."
;; some reason, unicode support is not correctly installed ;; some reason, unicode support is not correctly installed
;; when calling this in 'installer-builder'. ;; when calling this in 'installer-builder'.
(setenv "LANG" "en_US.UTF-8") (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,17 +21,98 @@
#:use-module (gnu installer newt page) #:use-module (gnu installer newt page)
#:use-module (gnu installer steps) #:use-module (gnu installer steps)
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer user)
#:use-module (gnu services herd) #:use-module (gnu services herd)
#:use-module (guix build utils) #: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)) #:export (install-system))
(define (install-system) (define %seed
"Start COW-STORE service on target directory and launch guix install command (seed->random-state
in a subshell." (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 (let ((install-command
(format #f "guix system init ~a ~a" (format #f "guix system init ~a ~a"
(%installer-configuration-file) (%installer-configuration-file)
(%installer-target-dir)))) (%installer-target-dir))))
(mkdir-p (%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))) (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 make-x11-keymap-layout
x11-keymap-layout? x11-keymap-layout?
x11-keymap-layout-name x11-keymap-layout-name
x11-keymap-layout-synopsis
x11-keymap-layout-description x11-keymap-layout-description
x11-keymap-layout-variants x11-keymap-layout-variants
@ -60,7 +61,8 @@
x11-keymap-layout make-x11-keymap-layout x11-keymap-layout make-x11-keymap-layout
x11-keymap-layout? x11-keymap-layout?
(name x11-keymap-layout-name) ;string (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> (variants x11-keymap-layout-variants)) ;list of <x11-keymap-variant>
(define-record-type* <x11-keymap-variant> (define-record-type* <x11-keymap-variant>
@ -117,6 +119,8 @@ Configuration Database, describing possible XKB configurations."
(variantList ,[variant -> v] ...)) (variantList ,[variant -> v] ...))
(x11-keymap-layout (x11-keymap-layout
(name name) (name name)
(synopsis (car
(assoc-ref rest-layout 'shortDescription)))
(description (car (description (car
(assoc-ref rest-layout 'description))) (assoc-ref rest-layout 'description)))
(variants (list v ...)))] (variants (list v ...)))]
@ -126,6 +130,8 @@ Configuration Database, describing possible XKB configurations."
. ,rest-layout)) . ,rest-layout))
(x11-keymap-layout (x11-keymap-layout
(name name) (name name)
(synopsis (car
(assoc-ref rest-layout 'shortDescription)))
(description (car (description (car
(assoc-ref rest-layout 'description))) (assoc-ref rest-layout 'description)))
(variants '()))])) (variants '()))]))

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -69,6 +70,24 @@
(codeset . ,(match:substring matches 5)) (codeset . ,(match:substring matches 5))
(modifier . ,(match:substring matches 7))))) (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) (define (locale->locale-string locale)
"Reverse operation of locale-string->locale." "Reverse operation of locale-string->locale."
(let ((language (locale-language locale)) (let ((language (locale-language locale))
@ -81,7 +100,7 @@
`("_" ,territory) `("_" ,territory)
'()) '())
,@(if codeset ,@(if codeset
`("." ,codeset) `("." ,(normalize-codeset codeset))
'()) '())
,@(if modifier ,@(if modifier
`("@" ,modifier) `("@" ,modifier)

View File

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

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,7 +28,10 @@
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #: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) (define (run-layout-page layouts layout->text)
(let ((title (G_ "Layout"))) (let ((title (G_ "Layout")))
@ -61,14 +65,29 @@
(define (sort-layouts layouts) (define (sort-layouts layouts)
"Sort LAYOUTS list by putting the US layout ahead and return it." "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 (call-with-values
(lambda () (lambda ()
(partition (partition
(lambda (layout) (lambda (layout)
(let ((name (x11-keymap-layout-name layout))) ;; The 'synopsis' field is usually a language code (e.g., "en")
(string=? name "us"))) ;; 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)) layouts))
(cut append <> <>))) (lambda (main others)
(append (sort main layout<?)
(sort others layout<?)))))
(define (sort-variants variants) (define (sort-variants variants)
"Sort VARIANTS list by putting the international variant ahead and return it." "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 (run-layout-page
(sort-layouts layouts) (sort-layouts layouts)
(lambda (layout) (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 ;; Propose the user to select a variant among those supported by the
;; previously selected layout. ;; previously selected layout.
(installer-step (installer-step
@ -108,15 +128,24 @@ names of the selected keyboard layout and variant."
(run-variant-page (run-variant-page
(sort-variants variants) (sort-variants variants)
(lambda (variant) (lambda (variant)
(x11-keymap-variant-description (gettext (x11-keymap-variant-description variant)
variant)))))))))) "xkeyboard-config"))))))))))
(define (format-result result) (define (format-result result)
(let ((layout (x11-keymap-layout-name (let ((layout (x11-keymap-layout-name
(result-step result 'layout))) (result-step result 'layout)))
(variant (and=> (result-step result 'variant) (variant (and=> (result-step result 'variant)
(lambda (variant) (lambda (variant)
(x11-keymap-variant-name variant))))) (gettext (x11-keymap-variant-name variant)
"xkeyboard-config")))))
(list layout (or variant "")))) (list layout (or variant ""))))
(format-result (format-result
(run-installer-steps #:steps keymap-steps))) (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -30,17 +31,11 @@
#:export (run-locale-page)) #:export (run-locale-page))
(define (run-language-page languages language->text) (define (run-language-page languages language->text)
(let ((title (G_ "Locale language"))) (define result
(run-listbox-selection-page (run-listbox-selection-page
#:title title #:title (G_ "Locale language")
#:info-text (G_ "Choose the locale's language to be used for the \ #:info-text (G_ "Choose the language to use for the \
installation process. A locale is a regional variant of your language \ installation process and for the installed system.")
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.")
#:info-textbox-width 70 #:info-textbox-width 70
#:listbox-items languages #:listbox-items languages
#:listbox-item->text language->text #:listbox-item->text language->text
@ -50,14 +45,19 @@ installed system.")
(lambda _ (lambda _
(raise (raise
(condition (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) (define (run-territory-page territories territory->text)
(let ((title (G_ "Locale location"))) (let ((title (G_ "Locale location")))
(run-listbox-selection-page (run-listbox-selection-page
#:title title #:title title
#:info-text (G_ "Choose your locale's location. This is a shortlist of \ #:info-text (G_ "Choose a territory for this language.")
locations based on the language you selected.")
#:listbox-items territories #:listbox-items territories
#:listbox-item->text territory->text #:listbox-item->text territory->text
#:button-text (G_ "Back") #:button-text (G_ "Back")
@ -71,8 +71,7 @@ locations based on the language you selected.")
(let ((title (G_ "Locale codeset"))) (let ((title (G_ "Locale codeset")))
(run-listbox-selection-page (run-listbox-selection-page
#:title title #:title title
#:info-text (G_ "Choose your locale's codeset. If UTF-8 is available, \ #:info-text (G_ "Choose the locale encoding.")
it should be preferred.")
#:listbox-items codesets #:listbox-items codesets
#:listbox-item->text identity #:listbox-item->text identity
#:listbox-default-item "UTF-8" #:listbox-default-item "UTF-8"
@ -163,7 +162,13 @@ glibc locale string and return it."
(run-language-page (run-language-page
(sort-languages (sort-languages
(delete-duplicates (map locale-language supported-locales))) (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 (installer-step
(id 'territory) (id 'territory)
(compute (compute
@ -177,10 +182,11 @@ glibc locale string and return it."
;; supported by the previously selected language. ;; supported by the previously selected language.
(run-territory-page (run-territory-page
(delete-duplicates (map locale-territory locales)) (delete-duplicates (map locale-territory locales))
(lambda (territory-code) (lambda (territory)
(if territory-code (if territory
(territory-code->territory-name iso3166-territories (let ((english (territory-code->territory-name
territory-code) iso3166-territories territory)))
(gettext english "iso_3166-1"))
(G_ "No location")))))))) (G_ "No location"))))))))
(installer-step (installer-step
(id 'codeset) (id 'codeset)
@ -191,9 +197,11 @@ glibc locale string and return it."
;; narrow down the search of a locale. ;; narrow down the search of a locale.
(break-on-locale-found locales) (break-on-locale-found locales)
;; Otherwise, ask for a codeset. ;; Otherwise, choose a codeset.
(run-codeset-page (let ((codesets (delete-duplicates (map locale-codeset locales))))
(delete-duplicates (map locale-codeset locales))))))) (if (member "UTF-8" codesets)
"UTF-8" ;don't even ask
(run-codeset-page codesets)))))))
(installer-step (installer-step
(id 'modifier) (id 'modifier)
(compute (compute

View File

@ -59,7 +59,7 @@ Internet and return the selected technology. For now, only technologies with
(G_ "Internet access") (G_ "Internet access")
(G_ "Continue") (G_ "Continue")
(G_ "Exit") (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?")) network device were found. Do you want to continue anyway?"))
((1) (raise ((1) (raise
(condition (condition
@ -68,7 +68,7 @@ network device were found. Do you want to continue anyway?"))
(condition (condition
(&installer-step-abort))))) (&installer-step-abort)))))
(run-listbox-selection-page (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.") Please select a network device.")
#:title (G_ "Internet access") #:title (G_ "Internet access")
#:listbox-items items #:listbox-items items
@ -93,7 +93,8 @@ network device were found. Do you want to continue anyway?"))
(full-value 5)) (full-value 5))
(run-scale-page (run-scale-page
#:title (G_ "Powering technology") #: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-full-value full-value
#:scale-update-proc #:scale-update-proc
(lambda (value) (lambda (value)

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,6 +21,7 @@
#:use-module (gnu installer utils) #:use-module (gnu installer utils)
#:use-module (gnu installer newt utils) #:use-module (gnu installer newt utils)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (ice-9 i18n)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 receive) #:use-module (ice-9 receive)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -29,6 +31,7 @@
draw-connecting-page draw-connecting-page
run-input-page run-input-page
run-error-page run-error-page
run-confirmation-page
run-listbox-selection-page run-listbox-selection-page
run-scale-page run-scale-page
run-checkbox-tree-page run-checkbox-tree-page
@ -72,17 +75,20 @@ this page to TITLE."
#:key #:key
(allow-empty-input? #f) (allow-empty-input? #f)
(default-text #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 "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 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 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 (let* ((text-box
(make-reflowed-textbox -1 -1 text (make-reflowed-textbox -1 -1 text
input-field-width input-field-width
#:flags FLAG-BORDER)) #:flags FLAG-BORDER))
(grid (make-grid 1 3)) (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"))) (ok-button (make-button -1 -1 (G_ "OK")))
(form (make-form))) (form (make-form)))
@ -141,6 +147,42 @@ of the page is set to TITLE."
(newt-set-color COLORSET-ROOT "white" "blue") (newt-set-color COLORSET-ROOT "white" "blue")
(destroy-form-and-pop form))) (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 (define* (run-listbox-selection-page #:key
info-text info-text
title title
@ -185,7 +227,7 @@ be selected (using the <SPACE> key). It that case, a list containing the
selected items will be returned. selected items will be returned.
If SORT-LISTBOX-ITEMS? is set to #t, the listbox items are sorted using 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, If ALLOW-DELETE? is #t, the form will return if the <DELETE> key is pressed,
otherwise nothing will happen. otherwise nothing will happen.
@ -211,7 +253,7 @@ ITEM was inserted into LISTBOX."
items)) items))
(define (sort-listbox-items 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." corresponding to each item in the list."
(let* ((items (map (lambda (item) (let* ((items (map (lambda (item)
(cons item (listbox-item->text item))) (cons item (listbox-item->text item)))
@ -220,7 +262,7 @@ corresponding to each item in the list."
(sort items (lambda (a b) (sort items (lambda (a b)
(let ((text-a (cdr a)) (let ((text-a (cdr a))
(text-b (cdr b))) (text-b (cdr b)))
(string<= text-a text-b)))))) (string-locale<? text-a text-b))))))
(map car sorted-items))) (map car sorted-items)))
;; Store the last selected listbox item's key. ;; Store the last selected listbox item's key.
@ -395,10 +437,14 @@ error is raised if the MAX-SCALE-UPDATE limit is reached."
(lambda () (lambda ()
(destroy-form-and-pop form))))) (destroy-form-and-pop form)))))
(define %none-selected
(circular-list #f))
(define* (run-checkbox-tree-page #:key (define* (run-checkbox-tree-page #:key
info-text info-text
title title
items items
(selection %none-selected)
item->text item->text
(info-textbox-width 50) (info-textbox-width 50)
(checkbox-tree-height 10) (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 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 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 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 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. 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 This procedure returns the list of checked items in the checkbox list among
ITEMS when 'Ok' is pressed." ITEMS when 'Ok' is pressed."
(define (fill-checkbox-tree checkbox-tree items) (define (fill-checkbox-tree checkbox-tree items)
(map (map (lambda (item selected?)
(lambda (item) (let* ((item-text (item->text item))
(let* ((item-text (item->text item)) (key (add-entry-to-checkboxtree checkbox-tree item-text
(key (add-entry-to-checkboxtree checkbox-tree item-text 0))) (if selected?
(cons key item))) FLAG-SELECTED
items)) 0))))
(cons key item)))
items
selection))
(let* ((checkbox-tree (let* ((checkbox-tree
(make-checkboxtree -1 -1 (make-checkboxtree -1 -1

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,8 +42,8 @@
(define (run-scheme-page) (define (run-scheme-page)
"Run a page asking the user for a partitioning scheme." "Run a page asking the user for a partitioning scheme."
(let* ((items (let* ((items
'((root . "Everything is one partition") `((root . ,(G_ "Everything is one partition"))
(root-home . "Separate /home partition"))) (root-home . ,(G_ "Separate /home partition"))))
(result (run-listbox-selection-page (result (run-listbox-selection-page
#:info-text (G_ "Please select a partitioning scheme.") #:info-text (G_ "Please select a partitioning scheme.")
#:title (G_ "Partition scheme") #:title (G_ "Partition scheme")
@ -53,7 +54,12 @@
(car result))) (car result)))
(define (draw-formatting-page) (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 (draw-info-page
(format #f (G_ "Partition formatting is in progress, please wait.")) (format #f (G_ "Partition formatting is in progress, please wait."))
(G_ "Preparing partitions"))) (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)) (file-name (user-partition-file-name user-part))
(password-page (password-page
(lambda () (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 (run-input-page
(format #f (G_ "Please enter the password for the \ (format #f (G_ "Please enter the password for the \
encryption of partition ~a (label: ~a).") file-name crypt-label) 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 (run-input-page
(format #f (G_ "Please confirm the password for the \ (format #f (G_ "Please confirm the password for the \
encryption of partition ~a (label: ~a).") file-name crypt-label) 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 (if crypt-label
(let loop () (let loop ()
(let ((password (password-page)) (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 (run-listbox-selection-page
#:info-text #:info-text
(if creation? (if creation?
(G_ (format #f "Creating ~a partition starting at ~a of ~a." (format #f (G_ "Creating ~a partition starting at ~a of ~a.")
type-str start file-name)) type-str start file-name)
(G_ (format #f "You are currently editing partition ~a." (format #f (G_ "You are currently editing partition ~a.")
number-str))) number-str))
#:title (if creation? #:title (if creation?
(G_ "Partition creation") (G_ "Partition creation")
(G_ "Partition edit")) (G_ "Partition edit"))
@ -662,7 +673,8 @@ by pressing the Exit button.~%~%")))
#:title (if guided? #:title (if guided?
(G_ "Guided partitioning") (G_ "Guided partitioning")
(G_ "Manual 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-items (disk-items)
#:listbox-item->text cdr #:listbox-item->text cdr
#:sort-listbox-items? #f #:sort-listbox-items? #f
@ -713,9 +725,9 @@ by pressing the Exit button.~%~%")))
"Run a page asking the user for a partitioning method." "Run a page asking the user for a partitioning method."
(define (run-page devices) (define (run-page devices)
(let* ((items (let* ((items
'((entire . "Guided - using the entire disk") `((entire . ,(G_ "Guided - using the entire disk"))
(entire-encrypted . "Guided - using the entire disk with encryption") (entire-encrypted . ,(G_ "Guided - using the entire disk with encryption"))
(manual . "Manual"))) (manual . ,(G_ "Manual"))))
(result (run-listbox-selection-page (result (run-listbox-selection-page
#:info-text (G_ "Please select a partitioning method.") #:info-text (G_ "Please select a partitioning method.")
#:title (G_ "Partitioning method") #:title (G_ "Partitioning method")

View File

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

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,18 +29,31 @@
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:export (run-user-page)) #: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) (define (pad-label label)
(string-pad-right label 20)) (string-pad-right label 20))
(let* ((label-name (let* ((label-name
(make-label -1 -1 (pad-label (G_ "Name")))) (make-label -1 -1 (pad-label (G_ "Name"))))
(label-real-name
(make-label -1 -1 (pad-label (G_ "Real name"))))
(label-home-directory (label-home-directory
(make-label -1 -1 (pad-label (G_ "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-width 30)
(entry-name (make-entry -1 -1 entry-width)) (entry-name (make-entry -1 -1 entry-width
(entry-home-directory (make-entry -1 -1 entry-width)) #:initial-value name))
(entry-grid (make-grid 2 2)) (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)) (button-grid (make-grid 1 1))
(ok-button (make-button -1 -1 (G_ "OK"))) (ok-button (make-button -1 -1 (G_ "OK")))
(grid (make-grid 1 2)) (grid (make-grid 1 2))
@ -50,8 +64,12 @@
(set-entry-grid-field 0 0 label-name) (set-entry-grid-field 0 0 label-name)
(set-entry-grid-field 1 0 entry-name) (set-entry-grid-field 1 0 entry-name)
(set-entry-grid-field 0 1 label-home-directory) (set-entry-grid-field 0 1 label-real-name)
(set-entry-grid-field 1 1 entry-home-directory) (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) (set-grid-field button-grid 0 0 GRID-ELEMENT-COMPONENT ok-button)
@ -59,11 +77,17 @@
entry-name entry-name
(lambda (component) (lambda (component)
(set-entry-text entry-home-directory (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 (add-components-to-form form
label-name label-home-directory label-name label-real-name
entry-name entry-home-directory label-home-directory label-password
entry-name entry-real-name
entry-home-directory entry-password
ok-button) ok-button)
(make-wrapped-grid-window (vertically-stacked-grid (make-wrapped-grid-window (vertically-stacked-grid
@ -82,19 +106,57 @@
(when (eq? exit-reason 'exit-component) (when (eq? exit-reason 'exit-component)
(cond (cond
((components=? argument ok-button) ((components=? argument ok-button)
(let ((name (entry-value entry-name)) (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 "") (if (or (string=? name "")
(string=? home-directory "")) (string=? home-directory ""))
(begin (begin
(error-page) (error-page)
(run-user-add-page)) (run-user-add-page))
(user (let ((password (confirm-password password)))
(name name) (if password
(home-directory home-directory)))))))) (user
(name name)
(real-name real-name)
(home-directory home-directory)
(password password))
(run-user-add-page #:name name
#:real-name real-name
#:home-directory
home-directory)))))))))
(lambda () (lambda ()
(destroy-form-and-pop form))))))) (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-user-page)
(define (run users) (define (run users)
(let* ((listbox (make-listbox (let* ((listbox (make-listbox
@ -169,7 +231,12 @@
(run-error-page (G_ "Please create at least one user.") (run-error-page (G_ "Please create at least one user.")
(G_ "No user")) (G_ "No user"))
(run users)) (run users))
users)))) (reverse users)))))
(lambda () (lambda ()
(destroy-form-and-pop form)))))) (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_ "GNU Guix install")
(G_ "Welcome to GNU Guix system installer! (G_ "Welcome to GNU Guix system installer!
Please note that the present graphical installer is still under heavy \ You will be guided through a graphical installation program.
development, so you might want to prefer using the shell based process. \
The documentation is accessible at any time by pressing CTRL-ALT-F2.") 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 logo
#:listbox-items #:listbox-items
`((,(G_ "Graphical install using a terminal based interface") `((,(G_ "Graphical install using a terminal based interface")

View File

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

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -24,6 +25,10 @@
#:use-module ((gnu build file-systems) #:use-module ((gnu build file-systems)
#:select (read-partition-uuid #:select (read-partition-uuid
read-luks-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 syscalls)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix records) #:use-module (guix records)
@ -1243,22 +1248,51 @@ from (gnu system mapped-devices) and return it."
(target ,label) (target ,label)
(type luks-device-mapping)))) (type luks-device-mapping))))
(define (root-user-partition? partition)
"Return true if PARTITION is the root partition."
(let ((mount-point (user-partition-mount-point partition)))
(and mount-point
(string=? mount-point "/"))))
(define (bootloader-configuration user-partitions) (define (bootloader-configuration user-partitions)
"Return the bootloader configuration field for USER-PARTITIONS." "Return the bootloader configuration field for USER-PARTITIONS."
(let* ((root-partition (let* ((root-partition (find root-user-partition?
(find (lambda (user-partition) user-partitions))
(let ((mount-point
(user-partition-mount-point user-partition)))
(and mount-point
(string=? mount-point "/"))))
user-partitions))
(root-partition-disk (user-partition-disk-file-name root-partition))) (root-partition-disk (user-partition-disk-file-name root-partition)))
`((bootloader-configuration `((bootloader-configuration
,@(if (efi-installation?) ,@(if (efi-installation?)
`((bootloader grub-efi-bootloader) `((bootloader grub-efi-bootloader)
(target ,(default-esp-mount-point))) (target ,(default-esp-mount-point)))
`((bootloader grub-bootloader) `((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) (define (user-partitions->configuration user-partitions)
"Return the configuration field for 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)) (swap-devices (map user-partition-file-name swap-user-partitions))
(encrypted-partitions (encrypted-partitions
(filter user-partition-crypt-label user-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)))) `((swap-devices (list ,@swap-devices))))
(bootloader ,@(bootloader-configuration user-partitions))
,@(if (null? encrypted-partitions) ,@(if (null? encrypted-partitions)
'() '()
`((mapped-devices `((mapped-devices

View File

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

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -113,16 +113,24 @@ return the accumalated result so far."
(define* (skip-to-step step result (define* (skip-to-step step result
#:key todo-steps done-steps) #:key todo-steps done-steps)
(match (list todo-steps done-steps) (match todo-steps
(((todo . rest-todo) (prev-done ... last-done)) ((todo . rest-todo)
(if (eq? (installer-step-id todo) (let ((found? (eq? (installer-step-id todo)
(installer-step-id step)) (installer-step-id step))))
(cond
(found?
(run result (run result
#:todo-steps todo-steps #:todo-steps todo-steps
#:done-steps done-steps) #:done-steps done-steps))
(skip-to-step step (pop-result result) ((and (not found?)
#:todo-steps (cons last-done todo-steps) (null? done-steps))
#:done-steps prev-done))))) (error (format #f "Step ~a not found" (installer-step-id step))))
(else
(match done-steps
((prev-done ... last-done)
(skip-to-step step (pop-result result)
#:todo-steps (cons last-done todo-steps)
#:done-steps prev-done)))))))))
(define* (run result #:key todo-steps done-steps) (define* (run result #:key todo-steps done-steps)
(match todo-steps (match todo-steps
@ -215,7 +223,7 @@ found in RESULTS."
'()))) '())))
steps)) steps))
(modules '((use-modules (gnu)) (modules '((use-modules (gnu))
(use-service-modules desktop)))) (use-service-modules desktop networking ssh xorg))))
`(,@modules `(,@modules
() ()
(operating-system ,@configuration)))) (operating-system ,@configuration))))

View File

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

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -19,6 +20,8 @@
(define-module (gnu installer utils) (define-module (gnu installer utils)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix i18n)
#:use-module (srfi srfi-34)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (ice-9 textual-ports) #:use-module (ice-9 textual-ports)
@ -54,10 +57,37 @@ number. If no percentage is found, return #f"
(and result (and result
(string->number (match:substring result 1))))) (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 (call-with-temporary-output-file
(lambda (file port) (lambda (file port)
(format port "~a~%" command) (when locale
;; (format port "exit~%") (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) (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/grub.scm \
%D%/bootloader/extlinux.scm \ %D%/bootloader/extlinux.scm \
%D%/bootloader/u-boot.scm \ %D%/bootloader/u-boot.scm \
%D%/bootloader/depthcharge.scm \
%D%/ci.scm \ %D%/ci.scm \
%D%/packages.scm \ %D%/packages.scm \
%D%/packages/abduco.scm \ %D%/packages/abduco.scm \
@ -230,6 +231,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gxmessage.scm \ %D%/packages/gxmessage.scm \
%D%/packages/hardware.scm \ %D%/packages/hardware.scm \
%D%/packages/haskell.scm \ %D%/packages/haskell.scm \
%D%/packages/haskell-apps.scm \
%D%/packages/haskell-check.scm \ %D%/packages/haskell-check.scm \
%D%/packages/haskell-crypto.scm \ %D%/packages/haskell-crypto.scm \
%D%/packages/haskell-web.scm \ %D%/packages/haskell-web.scm \
@ -341,6 +343,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ninja.scm \ %D%/packages/ninja.scm \
%D%/packages/node.scm \ %D%/packages/node.scm \
%D%/packages/noweb.scm \ %D%/packages/noweb.scm \
%D%/packages/nss.scm \
%D%/packages/ntp.scm \ %D%/packages/ntp.scm \
%D%/packages/nutrition.scm \ %D%/packages/nutrition.scm \
%D%/packages/nvi.scm \ %D%/packages/nvi.scm \
@ -371,6 +374,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/php.scm \ %D%/packages/php.scm \
%D%/packages/pkg-config.scm \ %D%/packages/pkg-config.scm \
%D%/packages/plotutils.scm \ %D%/packages/plotutils.scm \
%D%/packages/poedit.scm \
%D%/packages/polkit.scm \ %D%/packages/polkit.scm \
%D%/packages/popt.scm \ %D%/packages/popt.scm \
%D%/packages/printers.scm \ %D%/packages/printers.scm \
@ -538,6 +542,7 @@ GNU_SYSTEM_MODULES = \
%D%/system/accounts.scm \ %D%/system/accounts.scm \
%D%/system/file-systems.scm \ %D%/system/file-systems.scm \
%D%/system/install.scm \ %D%/system/install.scm \
%D%/system/keyboard.scm \
%D%/system/linux-container.scm \ %D%/system/linux-container.scm \
%D%/system/linux-initrd.scm \ %D%/system/linux-initrd.scm \
%D%/system/locale.scm \ %D%/system/locale.scm \
@ -582,9 +587,7 @@ GNU_SYSTEM_MODULES = \
%D%/tests/virtualization.scm \ %D%/tests/virtualization.scm \
%D%/tests/web.scm %D%/tests/web.scm
if ENABLE_INSTALLER INSTALLER_MODULES = \
GNU_SYSTEM_MODULES += \
%D%/installer.scm \ %D%/installer.scm \
%D%/installer/connman.scm \ %D%/installer/connman.scm \
%D%/installer/final.scm \ %D%/installer/final.scm \
@ -616,13 +619,19 @@ GNU_SYSTEM_MODULES += \
%D%/installer/newt/welcome.scm \ %D%/installer/newt/welcome.scm \
%D%/installer/newt/wifi.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 installerdir = $(guilemoduledir)/%D%/installer
dist_installer_DATA = \ dist_installer_DATA = \
%D%/installer/aux-files/logo.txt \ %D%/installer/aux-files/logo.txt \
%D%/installer/aux-files/SUPPORTED %D%/installer/aux-files/SUPPORTED
endif ENABLE_INSTALLER
# Modules that do not need to be compiled. # Modules that do not need to be compiled.
MODULES_NOT_COMPILED += \ MODULES_NOT_COMPILED += \
%D%/build/shepherd.scm \ %D%/build/shepherd.scm \
@ -674,6 +683,7 @@ dist_patch_DATA = \
%D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/binutils-boot-2.20.1a.patch \ %D%/packages/patches/binutils-boot-2.20.1a.patch \
%D%/packages/patches/biber-fix-encoding-write.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/binutils-loongson-workaround.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.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/doc++-segfault-fix.patch \
%D%/packages/patches/docker-engine-test-noinstall.patch \ %D%/packages/patches/docker-engine-test-noinstall.patch \
%D%/packages/patches/docker-fix-tests.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/dovecot-trees-support-dovecot-2.3.patch \
%D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/doxygen-test.patch \
%D%/packages/patches/dvd+rw-tools-add-include.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-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \
%D%/packages/patches/emacs-realgud-fix-configure-ac.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-wordnut-require-adaptive-wrap.patch \
%D%/packages/patches/emacs-zones-called-interactively.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \ %D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/eudev-rules-directory.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-localstatedir.patch \
%D%/packages/patches/findutils-makedev.patch \ %D%/packages/patches/findutils-makedev.patch \
%D%/packages/patches/findutils-test-xargs.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/flann-cmake-3.11.patch \
%D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/flint-ldconfig.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.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/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-binutils-compat.patch \ %D%/packages/patches/grub-binutils-compat.patch \
%D%/packages/patches/grub-check-error-efibootmgr.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/gsl-test-i686.patch \
%D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/gst-plugins-good-libvpx-compat.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-6-hotspot-gcc-segfault-workaround.patch \
%D%/packages/patches/icedtea-7-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/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/idris-test-no-node.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inkscape-poppler-compat3.patch \ %D%/packages/patches/inkscape-poppler-compat3.patch \
%D%/packages/patches/intltool-perl-compatibility.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/kdbusaddons-kinit-file-name.patch \
%D%/packages/patches/khmer-use-libraries.patch \ %D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/libziparchive-add-includes.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-level-selection-crash.patch \
%D%/packages/patches/kiki-makefile.patch \ %D%/packages/patches/kiki-makefile.patch \
%D%/packages/patches/kiki-missing-includes.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/kio-search-smbd-on-PATH.patch \
%D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/kmscon-runtime-keymap-switch.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/kpackage-allow-external-paths.patch \
%D%/packages/patches/kobodeluxe-paths.patch \ %D%/packages/patches/kobodeluxe-paths.patch \
%D%/packages/patches/kobodeluxe-enemies-pipe-decl.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-manpage-minus-not-hyphen.patch \
%D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \ %D%/packages/patches/kobodeluxe-midicon-segmentation-fault.patch \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.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/kodi-skip-test-449.patch \
%D%/packages/patches/laby-make-install.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-bootstrap-disable-tests.patch \
%D%/packages/patches/ldc-disable-phobos-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-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \ %D%/packages/patches/liba52-link-with-libm.patch \
%D%/packages/patches/liba52-set-soname.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/libffi-3.2.1-complex-alpha.patch \
%D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \
%D%/packages/patches/libjxr-fix-typos.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/libotr-test-auth-fix.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \
%D%/packages/patches/libmad-armv7-thumb-pt2.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-newer-libconfig.patch \
%D%/packages/patches/lierolibre-remove-arch-warning.patch \ %D%/packages/patches/lierolibre-remove-arch-warning.patch \
%D%/packages/patches/lierolibre-try-building-other-arch.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/linux-pam-no-setfsuid.patch \
%D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.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/mozjs38-version-detection.patch \
%D%/packages/patches/mrrescue-support-love-11.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/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/mumble-1.2.19-abs.patch \
%D%/packages/patches/mumps-build-parallelism.patch \ %D%/packages/patches/mumps-build-parallelism.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.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/ngircd-handle-zombies.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.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-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \ %D%/packages/patches/nvi-dbpagesize-binpower.patch \
%D%/packages/patches/nvi-db4.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-CVE-2015-8869.patch \
%D%/packages/patches/ocaml-Add-a-.file-directive.patch \ %D%/packages/patches/ocaml-Add-a-.file-directive.patch \
%D%/packages/patches/ocaml-enable-ocamldoc-reproducibility.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/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.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/openjdk-10-idlj-reproducibility.patch \
%D%/packages/patches/openocd-nrf52.patch \ %D%/packages/patches/openocd-nrf52.patch \
%D%/packages/patches/opensmtpd-fix-crash.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-runpath.patch \
%D%/packages/patches/openssl-1.1-c-rehash-in.patch \ %D%/packages/patches/openssl-1.1-c-rehash-in.patch \
%D%/packages/patches/openssl-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/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-configobj-setuptools.patch \
%D%/packages/patches/python-faker-fix-build-32bit.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-flint-includes.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \ %D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.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/python-pycrypto-CVE-2013-7459.patch \
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.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-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/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \
%D%/packages/patches/python-unittest2-remove-argparse.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/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \ %D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.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/qtwebkit-pbutils-include.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \ %D%/packages/patches/randomjungle-disable-static-build.patch \
%D%/packages/patches/rapicorn-isnan.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/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch \ %D%/packages/patches/red-eclipse-remove-gamma-name-hack.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.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/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.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/snappy-add-O2-flag-in-CmakeLists.txt.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/soundconverter-remove-gconf-dependency.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/sssd-curl-compat.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/streamlink-update-test.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/swig-guile-gc.patch \
%D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.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/stumpwm-fix-broken-read-one-line.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.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/teensy-loader-cli-help.patch \
%D%/packages/patches/teeworlds-use-latest-wavpack.patch \ %D%/packages/patches/teeworlds-use-latest-wavpack.patch \
%D%/packages/patches/texinfo-5-perl-compat.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-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/telegram-purple-adjust-test.patch \
%D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.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/totem-meson-easy-codec.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-include-qregexpvalidator.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-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \
%D%/packages/patches/unzip-CVE-2014-8141.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-6767.patch \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \ %D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \ %D%/packages/patches/wavpack-CVE-2018-7254.patch \
%D%/packages/patches/webkitgtk-sse2.patch \
%D%/packages/patches/weechat-python.patch \ %D%/packages/patches/weechat-python.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \

View File

@ -32,6 +32,7 @@
mkdir-p)) mkdir-p))
#:autoload (guix profiles) (packages->manifest) #:autoload (guix profiles) (packages->manifest)
#:use-module (guix describe) #:use-module (guix describe)
#:use-module (guix deprecation)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:autoload (ice-9 binary-ports) (put-bytevector) #:autoload (ice-9 binary-ports) (put-bytevector)
@ -55,6 +56,7 @@
fold-packages fold-packages
fold-available-packages fold-available-packages
find-newest-available-packages
find-packages-by-name find-packages-by-name
find-package-locations find-package-locations
find-best-packages-by-name find-best-packages-by-name
@ -190,6 +192,29 @@ flags."
directory)) directory))
%load-path))) %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) (define (fold-available-packages proc init)
"Fold PROC over the list of available packages. For each available package, "Fold PROC over the list of available packages. For each available package,
PROC is called along these lines: PROC is called along these lines:

View File

@ -181,14 +181,14 @@ and provides a \"top-like\" mode (monitoring).")
(define-public shepherd (define-public shepherd
(package (package
(name "shepherd") (name "shepherd")
(version "0.5.0") (version "0.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/shepherd/shepherd-" (uri (string-append "mirror://gnu/shepherd/shepherd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1wmciqml9yplnx1s4ynn00giqyk06rbrcsgvpjj2df47sawk2jp8")))) "1ys2w83vm62spr8bx38sccfdpy9fqmj7wfywm5k8ihsy2k61da2i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--localstatedir=/var"))) '(#: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 typical init systems. It provides dependency-handling through a convenient
interface and is based on GNU Guile.") interface and is based on GNU Guile.")
(license license:gpl3+) (license license:gpl3+)
(home-page "https://www.gnu.org/software/shepherd/") (home-page "https://www.gnu.org/software/shepherd/")))
(properties '((ftp-server . "alpha.gnu.org")))))
(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 (define-public daemontools
(package (package
@ -475,8 +535,8 @@ login, passwd, su, groupadd, and useradd.")
(synopsis "Getty for the text console") (synopsis "Getty for the text console")
(description (description
"Small console getty that is started on the Linux text console, "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 asks for a login name and then transfers over to @code{login}. It is extended
allow automatic login and starting any app.") to allow automatic login and starting any app.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public net-base (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 and it controls the roaming and IEEE 802.11 authentication/association of the
WLAN driver. 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+. ;; In practice, this is linked against Readline, which makes it GPLv3+.
(license license:bsd-3) (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 (define-public acpica
(package (package
(name "acpica") (name "acpica")
(version "20190215") (version "20190405")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1294,7 +1355,7 @@ module slots, and the list of I/O ports (e.g. serial, parallel, USB).")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1iy2zwi8aicq0b5a0phfacvk1f9z1d89cx43adcf0qh82gb9m4wg")))) "0hv6r65l8vk3f6i3by7i47vc1917qm47838bpq80lfn22784y53y"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("flex" ,flex) (native-inputs `(("flex" ,flex)
("bison" ,bison))) ("bison" ,bison)))
@ -1598,13 +1659,13 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible (define-public ansible
(package (package
(name "ansible") (name "ansible")
(version "2.7.9") (version "2.7.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "ansible" version)) (uri (pypi-uri "ansible" version))
(sha256 (sha256
(base32 "19vyf60zfmnv7frwm96bzqzvia69dysy9apk8bl84vr03ib9vrbf")))) (base32 "15721d0bxymghxnlnknq43lszlxg3ybbcp2p5v424hhw6wg2v944"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-bcrypt" ,python-bcrypt) `(("python-bcrypt" ,python-bcrypt)
@ -1735,18 +1796,18 @@ limits.")
(define-public autojump (define-public autojump
(package (package
(name "autojump") (name "autojump")
(version "22.5.1") (version "22.5.3")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/wting/autojump/archive/" (uri (git-reference
"release-v" version ".tar.gz")) (url "https://github.com/wting/autojump.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "release-v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32 "1rgpsh70manr2dydna9da4x7p8ahii7dgdgwir5fka340n1wrcws"))))
"17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs ;for tests (native-inputs ; for tests
`(("python-mock" ,python-mock) `(("python-mock" ,python-mock)
("python-pytest" ,python-pytest))) ("python-pytest" ,python-pytest)))
(inputs (inputs
@ -1754,6 +1815,11 @@ limits.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-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 'configure)
(delete 'build) (delete 'build)
(replace 'check (replace 'check
@ -2076,7 +2142,7 @@ a new command using the matched rule, and runs it.")
(home-page "https://www.gentoo.com/di/") (home-page "https://www.gentoo.com/di/")
(synopsis "Advanced df like disk information utility") (synopsis "Advanced df like disk information utility")
(description (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 @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 usage in whatever format you prefer. It is designed to be highly portable and
produce uniform output across heterogeneous networks.") produce uniform output across heterogeneous networks.")
@ -2699,7 +2765,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi")) (let ((real-name "inxi"))
(package (package
(name "inxi-minimal") (name "inxi-minimal")
(version "3.0.32-1") (version "3.0.33-1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2708,7 +2774,7 @@ Python loading in HPC environments.")
(commit version))) (commit version)))
(file-name (git-file-name real-name version)) (file-name (git-file-name real-name version))
(sha256 (sha256
(base32 "171xdip2alkp3g0k0sanaavvdcz6d0wlldj9lgj11xsdbhaaknnv")))) (base32 "19bfdid4zp39irsdq3m6yyqf2336c30da35qgslrzcr2vh815g8c"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(inputs (inputs
`(("bash" ,bash-minimal) `(("bash" ,bash-minimal)
@ -2918,7 +2984,8 @@ Logitech Unifying Receiver.")
(define-public lynis (define-public lynis
(package (package
(name "lynis") (name "lynis")
(version "2.7.2") ;; Also update the lynis-sdk input to the commit matching this release.
(version "2.7.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2927,7 +2994,7 @@ Logitech Unifying Receiver.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0dbbfk47dpxx7zpb98n4w3ls3z5di57qnr2nsgxjvp49gk9j3f6k")) (base32 "1jjk5hcxmp4f4ppsljiq95l2ln6b03azydap3b35lsvxkjybv88k"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -2944,11 +3011,10 @@ Logitech Unifying Receiver.")
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/CISOfy/lynis-sdk") (url "https://github.com/CISOfy/lynis-sdk")
(commit "3310aef4f2b3dd97d166c96ad0253c89c4ad390d"))) (commit "90f301e21c204792cf372f1cf05890a562f2e31b")))
(file-name (git-file-name "lynis-sdk" version)) (file-name (git-file-name "lynis-sdk" version))
(sha256 (sha256
(base32 (base32 "1d0smr1fxrvbc3hl8lzy33im9ahzr0hgs3kk09r8g8xccjkcm52l"))))))
"0sqsrm5wal742yrwps8bqb8a8lxd93n4b93n3kkm1b30nbs25g7y"))))))
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View File

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

View File

@ -538,7 +538,7 @@ that is safe to use for user space. It also includes
(native-inputs (native-inputs
`(("android-core" ,(android-platform-system-core version)))) `(("android-core" ,(android-platform-system-core version))))
(home-page "https://developer.android.com/") (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 (description "@code{android-ext4-utils} is a library in common use by the
Android core.") Android core.")
(license license:asl2.0))) (license license:asl2.0)))

View File

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

View File

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

View File

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

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,6 +23,7 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages autotools)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
@ -103,7 +104,7 @@ header.")
(define-public gnuastro (define-public gnuastro
(package (package
(name "gnuastro") (name "gnuastro")
(version "0.8") (version "0.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -111,7 +112,7 @@ header.")
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"0gx6iar3z07k9sdvpa6kchsz6fpk94xn5vcvbcigssl2dwqmlnkb")))) "1c1894ixz3l8p1nmzkysgl9lz8vpqbfw1dd404kh6lvrpml7jzig"))))
(inputs (inputs
`(("cfitsio" ,cfitsio) `(("cfitsio" ,cfitsio)
("gsl" ,gsl) ("gsl" ,gsl)
@ -120,7 +121,8 @@ header.")
("wcslib" ,wcslib) ("wcslib" ,wcslib)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(("lzip" ,lzip))) `(("libtool" ,libtool)
("lzip" ,lzip)))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.gnu.org/software/gnuastro/") (home-page "https://www.gnu.org/software/gnuastro/")
(synopsis "Astronomy utilities") (synopsis "Astronomy utilities")
@ -131,7 +133,7 @@ programs for the manipulation and analysis of astronomical data.")
(define-public stellarium (define-public stellarium
(package (package
(name "stellarium") (name "stellarium")
(version "0.18.3") (version "0.19.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/Stellarium/" name (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")) "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mm8rjcb8j56m3kfigpix5vxviw1616kvl9ws2s3s5gdyngljrc3")))) "1mjjqcpgm5a1022x0mpqj3v6qkvpm9wqm1hqyg0mlypc5681va8a"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)
@ -161,13 +163,6 @@ programs for the manipulation and analysis of astronomical data.")
(assoc-ref %build-inputs "qtserialport") (assoc-ref %build-inputs "qtserialport")
"/include/qt5")) "/include/qt5"))
#:phases (modify-phases %standard-phases #: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 (add-before 'check 'set-offscreen-display
(lambda _ (lambda _
;; make Qt render "offscreen", required for tests ;; make Qt render "offscreen", required for tests

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; 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, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 ng0 <ng0@n0.is> ;;; Copyright © 2016 ng0 <ng0@n0.is>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
@ -547,14 +547,14 @@ plugins are provided.")
(define-public calf (define-public calf
(package (package
(name "calf") (name "calf")
(version "0.90.1") (version "0.90.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://calf-studio-gear.org/files/calf-" (uri (string-append "https://calf-studio-gear.org/files/calf-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0znwx5gidr5n503gya9n8gagr8cfym6cwlbiv2r6iksji7jc4fpb")))) "0bn4j1klw2yfxz8clbmasaydifq25rdfsv0n6iisxrzcj1lx7sgh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("fluidsynth" ,fluidsynth) `(("fluidsynth" ,fluidsynth)
@ -713,7 +713,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(define-public csound (define-public csound
(package (package
(name "csound") (name "csound")
(version "6.12.0") (version "6.12.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -722,7 +722,7 @@ emulation (valve, tape), bit fiddling (decimator, pointer-cast), etc.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0pv4s54cayvavdp6y30n3r1l5x83x9whyyd2v24y0dh224v3hbxi")))) "01krxcf0alw9k7p5sv0s707600an4sl7lhw3bymbwgqrj0v2p9z2"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("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 The 2nd order resonant filters are implemented using a Mitra-Regalia style
lattice filter, which is stable even while parameters are being changed. 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 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 in systems that allow automation of plugin control ports, such as Ardour, or
for stage use.") for stage use.")
@ -1104,7 +1104,7 @@ follower.")
(define-public fluidsynth (define-public fluidsynth
(package (package
(name "fluidsynth") (name "fluidsynth")
(version "2.0.4") (version "2.0.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1113,7 +1113,7 @@ follower.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0")))) "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target
@ -1307,7 +1307,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(define-public guitarix (define-public guitarix
(package (package
(name "guitarix") (name "guitarix")
(version "0.37.3") (version "0.38.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1315,7 +1315,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac")))) "0bw7xnrx062nwb1bfj9x660h7069ncmz77szcs8icpqxrvhs7z80"))))
(build-system waf-build-system) (build-system waf-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:tests? #f ; no "check" target
@ -2120,21 +2120,17 @@ different audio devices such as ALSA or PulseAudio.")
(define-public qjackctl (define-public qjackctl
(package (package
(name "qjackctl") (name "qjackctl")
(version "0.5.6") (version "0.5.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/" (uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
version "/qjackctl-" version ".tar.gz")) version "/qjackctl-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0wlmbb9m7cf3wr7c2h2hji18592x2b119m7mx85wksjs6rjaq2mj")))) "1g6a5j74p45yisl28bw4fcc9nr6b710ikk459p4mp6djh9gs8v95"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#: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")))
(inputs (inputs
`(("jack" ,jack-1) `(("jack" ,jack-1)
("alsa-lib" ,alsa-lib) ("alsa-lib" ,alsa-lib)
@ -2320,7 +2316,7 @@ aimed at audio/musical applications.")
(define-public rubberband (define-public rubberband
(package (package
(name "rubberband") (name "rubberband")
(version "1.8.1") (version "1.8.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -2330,9 +2326,19 @@ aimed at audio/musical applications.")
(file-name (string-append name "-" version ".tar.bz2")) (file-name (string-append name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386")))) "0462fmjnfqpv2qi0s6ny42drqarkr0xy9lw8frjmfgzyzl5n9294"))))
(build-system gnu-build-system) (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 (inputs
`(("ladspa" ,ladspa) `(("ladspa" ,ladspa)
("libsamplerate" ,libsamplerate) ("libsamplerate" ,libsamplerate)
@ -2685,18 +2691,16 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(define-public soundtouch (define-public soundtouch
(package (package
(name "soundtouch") (name "soundtouch")
(version "2.0.0") (version "2.1.1")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (uri (git-reference
(string-append (url "https://gitlab.com/soundtouch/soundtouch.git")
"http://www.surina.net/soundtouch/soundtouch-" version ".tar.gz")) (commit version)))
(patches (search-patches "soundtouch-CVE-2018-14044-14045.patch" (file-name (git-file-name name version))
"soundtouch-CVE-2018-1000223.patch"))
(sha256 (sha256
(base32 (base32 "0p6jzgfgqw061702dmd2b6r4arz48ac3mmx2qkvvzf8s5jjzykdh"))))
"09cxr02mfyj2bg731bj0i9hh565x8l9p91aclxs8wpqv8b8zf96j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -2865,14 +2869,14 @@ interface.")
(define-public qsynth (define-public qsynth
(package (package
(name "qsynth") (name "qsynth")
(version "0.5.5") (version "0.5.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/qsynth/qsynth/" version (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
"/qsynth-" version ".tar.gz")) "/qsynth-" version ".tar.gz"))
(sha256 (sha256
(base32 "08x7znvbwi9miavcarymi7dsv8njmxzwzma20dbmz8j2aswm53w5")))) (base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" phase `(#:tests? #f ; no "check" phase
@ -3379,14 +3383,14 @@ on the ALSA software PCM plugin.")
(define-public snd (define-public snd
(package (package
(name "snd") (name "snd")
(version "19.2") (version "19.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/" (uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz")) "snd-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1a6ls2hyvggss12idca22hq5vsq4jw2xkwrx22dx29i9926gdr6h")))) "16j3fqyw361wdsr1076f0p3va2y7wdzq1lvr4ijz1ajmbxdlc723"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
@ -3662,7 +3666,7 @@ surround).")
(define-public libopenshot-audio (define-public libopenshot-audio
(package (package
(name "libopenshot-audio") (name "libopenshot-audio")
(version "0.1.7") (version "0.1.8")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3671,7 +3675,7 @@ surround).")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys")))) "1fvp6nmf30xzkmcznakh8dv5vn9d7nq051pqcqv638hsfppkmcrl"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
@ -3697,7 +3701,7 @@ library.")
(define-public faudio (define-public faudio
(package (package
(name "faudio") (name "faudio")
(version "19.03") (version "19.04")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3706,7 +3710,7 @@ library.")
(commit version))) (commit version)))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 "0v5l67ixr5kd9jz5sza8xgzxamqnlgn3gs1q8gg6ir60g0jvzbd4")))) (base32 "00lqf8bjcwm4k8yky9jmqghkxijcm2lxspb9zyl1270yqmj05kiw"))))
(arguments (arguments
'(#:tests? #f ; No tests. '(#:tests? #f ; No tests.
#:configure-flags '("-DFFMPEG=ON"))) #:configure-flags '("-DFFMPEG=ON")))

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -553,9 +553,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'."
#t))))) #t)))))
(synopsis "The linker wrapper") (synopsis "The linker wrapper")
(description (description
"The linker wrapper (or 'ld-wrapper') wraps the linker to add any "The linker wrapper (or @code{ld-wrapper}) wraps the linker to add any
missing '-rpath' flags, and to detect any misuse of libraries outside of the missing @code{-rpath} flags, and to detect any misuse of libraries outside of
store.") the store.")
(home-page "https://www.gnu.org/software/guix//") (home-page "https://www.gnu.org/software/guix//")
(license gpl3+))) (license gpl3+)))
@ -961,8 +961,8 @@ with the Linux kernel.")
(synopsis "All the locales supported by the GNU C Library") (synopsis "All the locales supported by the GNU C Library")
(description (description
"This package provides all the locales supported by the GNU C Library, "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 more than 400 in total. To use them set the @code{LOCPATH} environment variable
the 'share/locale' sub-directory of this package.") to the @code{share/locale} sub-directory of this package.")
(outputs '("out")) ;110+ MiB (outputs '("out")) ;110+ MiB
(native-search-paths '()) (native-search-paths '())
(arguments (arguments
@ -1099,7 +1099,7 @@ command.")
(define-public tzdata (define-public tzdata
(package (package
(name "tzdata") (name "tzdata")
(version "2018i") (version "2019a")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1107,7 +1107,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1n80ih8agibagic401smqscz3xxqvs5bm5x3lk803g539kw5xi42")))) "0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -1157,7 +1157,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1p1jxlnryaxknj0l768h3dmlk2jpqz5n5d24w9c9vyx6dj3xpb5a")))))) "1x9z8fpgnhzlsnps0hamb54ymaskjab7ys9m4i4gpk9hpiig2fc7"))))))
(home-page "https://www.iana.org/time-zones") (home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones") (synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo) (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 (define-public cutadapt
(package (package
(name "cutadapt") (name "cutadapt")
(version "1.18") (version "2.1")
(source (origin (source (origin
(method git-fetch) (method url-fetch)
(uri (git-reference (uri (pypi-uri "cutadapt" version))
(url "https://github.com/marcelm/cutadapt.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"08bbfwyc0kvcd95jf2s95xiv9s3cbsxm39ydl0qck3fw3cviwxpg")))) "1vqmsfkm6llxzmsz9wcfcvzx9a9f8iabvwik2rbyn7nc4wm25z89"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("python-dnaio" ,python-dnaio) `(("python-dnaio" ,python-dnaio)
("python-xopen" ,python-xopen))) ("python-xopen" ,python-xopen)))
(native-inputs (native-inputs
`(("python-cython" ,python-cython) `(("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/") (home-page "https://cutadapt.readthedocs.io/en/stable/")
(synopsis "Remove adapter sequences from nucleotide sequencing reads") (synopsis "Remove adapter sequences from nucleotide sequencing reads")
(description (description
@ -6792,14 +6790,14 @@ databases. Packages produced are intended to be used with AnnotationDbi.")
(define-public r-rbgl (define-public r-rbgl
(package (package
(name "r-rbgl") (name "r-rbgl")
(version "1.58.1") (version "1.58.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "RBGL" version)) (uri (bioconductor-uri "RBGL" version))
(sha256 (sha256
(base32 (base32
"1l5x2icv9di1lr3gqfi0vjnyd9xc3l77yc42ippqd4cadj3d1pzf")))) "0vhnh47pswnp27c0zqcbnnsayfmq3cxcgrs9g860555ldqfl4cyl"))))
(properties `((upstream-name . "RBGL"))) (properties `((upstream-name . "RBGL")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs `(("r-graph" ,r-graph))) (propagated-inputs `(("r-graph" ,r-graph)))
@ -7014,29 +7012,6 @@ annotation infrastructure.")
"This package provides a pipeline for the analysis of GRO-seq data.") "This package provides a pipeline for the analysis of GRO-seq data.")
(license license:gpl3+))) (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 (define-public vsearch
(package (package
(name "vsearch") (name "vsearch")
@ -7243,32 +7218,6 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+) ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
(license (list license:ruby license:lgpl2.1+ license: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 (define-public r-biocinstaller
(package (package
(name "r-biocinstaller") (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.") also known as views, in a controlled vocabulary.")
(license license:artistic2.0))) (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 (define-public r-biocstyle
(package (package
(name "r-biocstyle") (name "r-biocstyle")
@ -7412,29 +7337,6 @@ functionality.")
checks on R packages that are to be submitted to the Bioconductor repository.") checks on R packages that are to be submitted to the Bioconductor repository.")
(license license:artistic2.0))) (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 (define-public r-s4vectors
(package (package
(name "r-s4vectors") (name "r-s4vectors")
@ -7462,31 +7364,6 @@ In addition, a few low-level concrete subclasses of general interest (e.g.
S4Vectors package itself.") S4Vectors package itself.")
(license license:artistic2.0))) (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 (define-public r-iranges
(package (package
(name "r-iranges") (name "r-iranges")
@ -7888,10 +7765,10 @@ biological sequences or sets of sequences.")
(home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html") (home-page "https://bioconductor.org/packages/release/bioc/html/Rsamtools.html")
(synopsis "Interface to samtools, bcftools, and tabix") (synopsis "Interface to samtools, bcftools, and tabix")
(description (description
"This package provides an interface to the 'samtools', 'bcftools', and "This package provides an interface to the @code{samtools},
'tabix' utilities for manipulating SAM (Sequence Alignment / Map), FASTA, @code{bcftools}, and @code{tabix} utilities for manipulating SAM (Sequence
binary variant call (BCF) and compressed indexed tab-delimited (tabix) Alignment / Map), FASTA, binary variant call (BCF) and compressed indexed
files.") tab-delimited (tabix) files.")
(license license:expat))) (license license:expat)))
(define-public r-delayedarray (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 (define-public r-genomicfeatures
(package (package
(name "r-genomicfeatures") (name "r-genomicfeatures")
(version "1.34.6") (version "1.34.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version)) (uri (bioconductor-uri "GenomicFeatures" version))
(sha256 (sha256
(base32 (base32
"1cz7qx324dmsrkzyhm956cfgr08gpily5rpym7hc8zz5kbl6i3ra")))) "1sxp86hdsg32l2c85jgic65gy92d8kxsm01264hrx6yikdhicjax"))))
(properties (properties
`((upstream-name . "GenomicFeatures"))) `((upstream-name . "GenomicFeatures")))
(build-system r-build-system) (build-system r-build-system)
@ -8413,6 +8290,9 @@ secondary structure and comparative analysis in R.")
"13fv78sk5g0gqfl3ks3rps3zc1k66a4lzxvgn36r7ix43yxk7hnr")))) "13fv78sk5g0gqfl3ks3rps3zc1k66a4lzxvgn36r7ix43yxk7hnr"))))
(properties `((upstream-name . "Rhtslib"))) (properties `((upstream-name . "Rhtslib")))
(build-system r-build-system) (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 (propagated-inputs
`(("r-zlibbioc" ,r-zlibbioc))) `(("r-zlibbioc" ,r-zlibbioc)))
(inputs (inputs
@ -8467,6 +8347,7 @@ paired-end data.")
(sha256 (sha256
(base32 (base32
"0ss5hcg2m7gjji6dd23zxa5bd5a7knwcnada4qs5q2l4clgk39ad")))) "0ss5hcg2m7gjji6dd23zxa5bd5a7knwcnada4qs5q2l4clgk39ad"))))
(properties `((upstream-name . "RCAS")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi) `(("r-annotationdbi" ,r-annotationdbi)
@ -8587,45 +8468,6 @@ characterization and visualization of a wide range of mutational patterns
in SNV base substitution data.") in SNV base substitution data.")
(license license:expat))) (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 (define-public r-chipkernels
(let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372") (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
(revision "1")) (revision "1"))
@ -8693,39 +8535,6 @@ bound and non bound genomic regions to accurately identify transcription
factors bound at the specific regions.") factors bound at the specific regions.")
(license license:gpl2+))) (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 (define-public r-tximport
(package (package
(name "r-tximport") (name "r-tximport")
@ -9632,40 +9441,33 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat (define-public r-seurat
(package (package
(name "r-seurat") (name "r-seurat")
(version "2.3.4") (version "3.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "Seurat" version)) (uri (cran-uri "Seurat" version))
(sha256 (sha256
(base32 (base32
"0l8bv4i9nzz26mirnva10mq6pimibj24vk7vpvfypgn7xk4942hd")))) "183lm2wk0i3g114jbdf7pb4ssizr48qzqv3cknbsiackr8kvpsvc"))))
(properties `((upstream-name . "Seurat"))) (properties `((upstream-name . "Seurat")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ape" ,r-ape) `(("r-ape" ,r-ape)
("r-cluster" ,r-cluster) ("r-cluster" ,r-cluster)
("r-cowplot" ,r-cowplot) ("r-cowplot" ,r-cowplot)
("r-dosnow" ,r-dosnow)
("r-dplyr" ,r-dplyr)
("r-dtw" ,r-dtw)
("r-fitdistrplus" ,r-fitdistrplus) ("r-fitdistrplus" ,r-fitdistrplus)
("r-foreach" ,r-foreach) ("r-future" ,r-future)
("r-fpc" ,r-fpc) ("r-future-apply" ,r-future-apply)
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-ggrepel" ,r-ggrepel)
("r-ggridges" ,r-ggridges) ("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-ica" ,r-ica)
("r-igraph" ,r-igraph) ("r-igraph" ,r-igraph)
("r-irlba" ,r-irlba) ("r-irlba" ,r-irlba)
("r-lars" ,r-lars) ("r-kernsmooth" ,r-kernsmooth)
("r-lmtest" ,r-lmtest) ("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass) ("r-mass" ,r-mass)
("r-matrix" ,r-matrix) ("r-matrix" ,r-matrix)
("r-metap" ,r-metap) ("r-metap" ,r-metap)
("r-mixtools" ,r-mixtools)
("r-pbapply" ,r-pbapply) ("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly) ("r-plotly" ,r-plotly)
("r-png" ,r-png) ("r-png" ,r-png)
@ -9674,12 +9476,14 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-rcpp" ,r-rcpp) ("r-rcpp" ,r-rcpp)
("r-rcppeigen" ,r-rcppeigen) ("r-rcppeigen" ,r-rcppeigen)
("r-rcppprogress" ,r-rcppprogress) ("r-rcppprogress" ,r-rcppprogress)
("r-reshape2" ,r-reshape2)
("r-reticulate" ,r-reticulate) ("r-reticulate" ,r-reticulate)
("r-rlang" ,r-rlang)
("r-rocr" ,r-rocr) ("r-rocr" ,r-rocr)
("r-rsvd" ,r-rsvd)
("r-rtsne" ,r-rtsne) ("r-rtsne" ,r-rtsne)
("r-scales" ,r-scales)
("r-sctransform" ,r-sctransform)
("r-sdmtools" ,r-sdmtools) ("r-sdmtools" ,r-sdmtools)
("r-tidyr" ,r-tidyr)
("r-tsne" ,r-tsne))) ("r-tsne" ,r-tsne)))
(home-page "http://www.satijalab.org/seurat") (home-page "http://www.satijalab.org/seurat")
(synopsis "Seurat is an R toolkit for single cell genomics") (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 (define-public r-ensembldb
(package (package
(name "r-ensembldb") (name "r-ensembldb")
(version "2.6.7") (version "2.6.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ensembldb" version)) (uri (bioconductor-uri "ensembldb" version))
(sha256 (sha256
(base32 (base32
"1wqq0m1fgvgkzq5zr2s9cj2s7qkg9lx3dwwsqixzs5fn52p4dn7f")))) "0gijx2l2y00h6gfj3gfr7rd4vva6qf2vkfdfy5gdmvqlxy84ka38"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi) `(("r-annotationdbi" ,r-annotationdbi)
@ -10152,6 +9956,16 @@ effort and encourages consistency.")
(base32 (base32
"0wq49qqzkcn8s19xgaxf2s1j1a563d7pbhhvris6fhxfdjsz4934")))) "0wq49qqzkcn8s19xgaxf2s1j1a563d7pbhhvris6fhxfdjsz4934"))))
(build-system r-build-system) (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 (propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi) `(("r-annotationdbi" ,r-annotationdbi)
("r-annotationfilter" ,r-annotationfilter) ("r-annotationfilter" ,r-annotationfilter)
@ -10352,14 +10166,14 @@ by Ernst and Kellis.")
(define-public r-ldblock (define-public r-ldblock
(package (package
(name "r-ldblock") (name "r-ldblock")
(version "1.12.0") (version "1.12.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ldblock" version)) (uri (bioconductor-uri "ldblock" version))
(sha256 (sha256
(base32 (base32
"0xbf4pmhrk5fnd1iz5wzjvdr75v114bwpznhcig4wiqmxc27sips")))) "01lf74pby7si2g3kgc10qzr6lkcbigqcgqs2j3anc38vzxv0zhwv"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics) `(("r-biocgenerics" ,r-biocgenerics)
@ -10384,14 +10198,14 @@ defining LD blocks.")
(define-public r-gqtlstats (define-public r-gqtlstats
(package (package
(name "r-gqtlstats") (name "r-gqtlstats")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "gQTLstats" version)) (uri (bioconductor-uri "gQTLstats" version))
(sha256 (sha256
(base32 (base32
"1sg9kw59dlayj7qxql9pd93d4hmml504sa3kkfpzfh3xri7m5pxf")))) "1rkbnb3h02fdksc4nacqvmq4jgbj9fz4hm7j51yr2ggcgcykwraa"))))
(properties `((upstream-name . "gQTLstats"))) (properties `((upstream-name . "gQTLstats")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10625,14 +10439,14 @@ block processing.")
(define-public r-rhdf5lib (define-public r-rhdf5lib
(package (package
(name "r-rhdf5lib") (name "r-rhdf5lib")
(version "1.4.2") (version "1.4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version)) (uri (bioconductor-uri "Rhdf5lib" version))
(sha256 (sha256
(base32 (base32
"06bxd3wz8lrvh2hzvmjpdv4lvzj5lz9353bw5b3zb98cb8w9r2j5")) "0hjhjvg2kss71fkmxlbgnyyy1agwzgq57rxkgkm4riw82x2rvw7q"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -10861,14 +10675,14 @@ memory usage and processing time is minimized.")
(define-public r-phangorn (define-public r-phangorn
(package (package
(name "r-phangorn") (name "r-phangorn")
(version "2.4.0") (version "2.5.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "phangorn" version)) (uri (cran-uri "phangorn" version))
(sha256 (sha256
(base32 (base32
"0xc8k552nxczy19jr0xjjagrzc8x6lafasgk2c099ls8bc1yml1i")))) "1bv86yfk5r015s7ij6v4zz7bagwrw9m13yfs5853drxb19d5h1m3"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-ape" ,r-ape) `(("r-ape" ,r-ape)
@ -11075,23 +10889,31 @@ with narrow binding events such as transcription factor ChIP-seq.")
(define-public trim-galore (define-public trim-galore
(package (package
(name "trim-galore") (name "trim-galore")
(version "0.4.5") (version "0.6.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/FelixKrueger/TrimGalore.git") (url "https://github.com/FelixKrueger/TrimGalore.git")
(commit version))) (commit version)))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71")))) "1y31wbxwkm9xqzr5zv1pk5q418whnmlmgmfyxxpnl12h83m2i9iv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:phases #:phases
(modify-phases %standard-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) (delete 'build)
(add-after 'unpack 'hardcode-tool-references (add-after 'unpack 'hardcode-tool-references
(lambda* (#:key inputs #:allow-other-keys) (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 = '" (string-append "$path_to_cutadapt = '"
(assoc-ref inputs "cutadapt") (assoc-ref inputs "cutadapt")
"/bin/cutadapt'")) "/bin/cutadapt'"))
(("\\| gzip") (("\\$compression_path = \"gzip\"")
(string-append "| " (string-append "$compression_path = \""
(assoc-ref inputs "gzip") (assoc-ref inputs "gzip")
"/bin/gzip")) "/bin/gzip\""))
(("\"gunzip") (("\"gunzip")
(string-append "\"" (string-append "\""
(assoc-ref inputs "gzip") (assoc-ref inputs "gzip")
"/bin/gunzip"))) "/bin/gunzip"))
(("\"pigz")
(string-append "\""
(assoc-ref inputs "pigz")
"/bin/pigz")))
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -11119,6 +10945,7 @@ with narrow binding events such as transcription factor ChIP-seq.")
(inputs (inputs
`(("gzip" ,gzip) `(("gzip" ,gzip)
("perl" ,perl) ("perl" ,perl)
("pigz" ,pigz)
("cutadapt" ,cutadapt))) ("cutadapt" ,cutadapt)))
(native-inputs (native-inputs
`(("unzip" ,unzip))) `(("unzip" ,unzip)))
@ -12220,6 +12047,23 @@ graphs. This library makes it easy to work with @file{.loom} files for
single-cell RNA-seq data.") single-cell RNA-seq data.")
(license license:bsd-3))) (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. ;; We cannot use the latest commit because it requires Java 9.
(define-public java-forester (define-public java-forester
(let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6") (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
@ -12833,7 +12677,7 @@ expression report comparing samples in an easily configurable manner.")
(define-public pigx-chipseq (define-public pigx-chipseq
(package (package
(name "pigx-chipseq") (name "pigx-chipseq")
(version "0.0.31") (version "0.0.40")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/" (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")) "/pigx_chipseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0l3vd9xwqzap3mmyj8xwqp84kj7scbq308diqnwg2albphl75xqs")))) "0y9x62cfwzhsp82imnawyamxp58bcb00yjxdy44spylqnjdlsaj8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; parts of the tests rely on access to the network ;; parts of the tests rely on access to the network
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
@ -12990,7 +12834,7 @@ methylation and segmentation.")
("python-pandas" ,python-pandas) ("python-pandas" ,python-pandas)
("python-magic" ,python-magic) ("python-magic" ,python-magic)
("python-numpy" ,python-numpy) ("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy) ("python-loompy" ,python-loompy-for-pigx-scrnaseq)
("ghc-pandoc" ,ghc-pandoc) ("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("samtools" ,samtools) ("samtools" ,samtools)
@ -13461,31 +13305,57 @@ in RNA-seq data.")
(define-public python-scanpy (define-public python-scanpy
(package (package
(name "python-scanpy") (name "python-scanpy")
(version "1.2.2") (version "1.4")
;; Fetch from git because the pypi tarball does not include tests.
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (pypi-uri "scanpy" version)) (uri (git-reference
(url "https://github.com/theislab/scanpy.git")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ak7bxms5a0yvf65prppq2g38clkv7c7jnjbnfpkh3xxv7q512jz")))) "0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
(build-system python-build-system) (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 (propagated-inputs
`(("python-anndata" ,python-anndata) `(("python-anndata" ,python-anndata)
("python-h5py" ,python-h5py)
("python-igraph" ,python-igraph) ("python-igraph" ,python-igraph)
("python-numba" ,python-numba)
("python-joblib" ,python-joblib) ("python-joblib" ,python-joblib)
("python-louvain" ,python-louvain)
("python-matplotlib" ,python-matplotlib)
("python-natsort" ,python-natsort) ("python-natsort" ,python-natsort)
("python-networkx" ,python-networkx) ("python-networkx" ,python-networkx)
("python-statsmodels" ,python-statsmodels) ("python-numba" ,python-numba)
("python-scikit-learn" ,python-scikit-learn)
("python-matplotlib" ,python-matplotlib)
("python-pandas" ,python-pandas) ("python-pandas" ,python-pandas)
("python-scikit-learn" ,python-scikit-learn)
("python-scipy" ,python-scipy) ("python-scipy" ,python-scipy)
("python-seaborn" ,python-seaborn) ("python-seaborn" ,python-seaborn)
("python-h5py" ,python-h5py) ("python-statsmodels" ,python-statsmodels)
("python-tables" ,python-tables))) ("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.") (synopsis "Single-Cell Analysis in Python.")
(description "Scanpy is a scalable toolkit for analyzing single-cell gene (description "Scanpy is a scalable toolkit for analyzing single-cell gene
expression data. It includes preprocessing, visualization, clustering, expression data. It includes preprocessing, visualization, clustering,
@ -13494,6 +13364,38 @@ Python-based implementation efficiently deals with datasets of more than one
million cells.") million cells.")
(license license:bsd-3))) (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 (define-public gffcompare
(let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41") (let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
(revision "1")) (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 Additionally, the AdapterRemoval may be used to recover a consensus adapter
sequence for paired-ended data, for which this information is not available.") sequence for paired-ended data, for which this information is not available.")
(license license:gpl3+))) (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 (base32
"03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1")) "03vvdfhdmf16121v7xs8is2krwnv15wpkhkf16a4yf8nsfc3f2w1"))
(patches (search-patches "grub-check-error-efibootmgr.patch" (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) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#: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 (define u-boot
(package (package
(name "u-boot") (name "u-boot")
(version "2019.01") (version "2019.04")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (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")) "u-boot-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"08hwsmh5xsb1gcxsv8gvx00bai938dm5y3889n8jif3a8rd7xgah")))) "1vwv4bgbl7fjcm073zrphn17hnz5h5h778f88ivdsgbb2lnpgdvn"))
(patches
(search-patches
"u-boot-fix-mkimage-header-verification.patch"))))
(native-inputs (native-inputs
`(("bc" ,bc) `(("bc" ,bc)
("bison" ,bison) ("bison" ,bison)
@ -441,6 +445,10 @@ also initializes the boards (RAM etc).")
(("def test_ctrl_c") (("def test_ctrl_c")
"@pytest.mark.skip(reason='Guix has problems with SIGINT') "@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c")) 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) (for-each (lambda (file)
(substitute* file (substitute* file
;; Disable signatures, due to GPL/Openssl ;; Disable signatures, due to GPL/Openssl
@ -483,12 +491,19 @@ def test_ctrl_c"))
(delete 'check) (delete 'check)
(add-after 'install 'check (add-after 'install 'check
(lambda* (#:key make-flags test-target #:allow-other-keys) (lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags) (invoke "test/image/test-imagetools.sh")))
(setenv "SDL_VIDEODRIVER" "dummy") ;; Only run full test suite on x86_64 systems, as many tests
(setenv "PAGER" "cat") ;; assume x86_64.
(apply invoke "make" test-target make-flags) ,@(if (string-match "^x86_64-linux"
(symlink "build-sandbox_spl" "sandbox") (or (%current-target-system)
(invoke "test/image/test-imagetools.sh")))))) (%current-system)))
'((add-after 'check 'check-x86
(lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags)
(setenv "SDL_VIDEODRIVER" "dummy")
(setenv "PAGER" "cat")
(apply invoke "make" test-target make-flags))))
'()))))
(description "U-Boot is a bootloader used mostly for ARM boards. It (description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc). This package provides its also initializes the boards (RAM etc). This package provides its
board-independent tools."))) board-independent tools.")))
@ -577,8 +592,32 @@ board-independent tools.")))
(define-public u-boot-malta (define-public u-boot-malta
(make-u-boot-package "malta" "mips64el-linux-gnuabi64")) (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
(define-public u-boot-beagle-bone-black (define-public u-boot-am335x-boneblack
(make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf")) (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) (define-public (make-u-boot-sunxi64-package board triplet)
(let ((base (make-u-boot-package board triplet))) (let ((base (make-u-boot-package board triplet)))
@ -637,7 +676,7 @@ board-independent tools.")))
also initializes the boards (RAM etc). also initializes the boards (RAM etc).
This U-Boot is built for Novena. Be advised that this version, contrary 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 (arguments
(substitute-keyword-arguments (package-arguments base) (substitute-keyword-arguments (package-arguments base)
((#:phases phases) ((#: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. ;; allowing it to be installed at a device offset.
(lambda _ (lambda _
(substitute* "configs/novena_defconfig" (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))))))))) #t)))))))))
(define-public u-boot-cubieboard (define-public u-boot-cubieboard

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; 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 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
@ -38,7 +38,8 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages gettext) #: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 (define-public tcc
(package (package
@ -257,3 +258,32 @@ typing conventions?
every project that needs to deal with sizes in bytes. It is written in the C every project that needs to deal with sizes in bytes. It is written in the C
language with thin bindings for other languages.") language with thin bindings for other languages.")
(license license:lgpl2.1+))) (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 (define-public khal
(package (package
(name "khal") (name "khal")
(version "0.9.10") (version "0.10.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "khal" version)) (uri (pypi-uri "khal" version))
(sha256 (sha256
(base32 (base32
"03h0j0d3xyqh98x5v2gv63wv3g91hip3vsaxvybsn5iz331d23h4")))) "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -122,22 +122,14 @@ data units.")
(setenv "TZ" (setenv "TZ"
(string-append (assoc-ref inputs "tzdata") (string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo/Zulu")) "/share/zoneinfo/Zulu"))
(invoke "py.test" "tests" "-k" (invoke "py.test" "tests"))))))
(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")))))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest) `(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov) ("python-pytest-cov" ,python-pytest-cov)
("python-setuptools-scm" ,python-setuptools-scm) ("python-setuptools-scm" ,python-setuptools-scm)
;; Required for tests ;; Required for tests
("python-freezegun" ,python-freezegun) ("python-freezegun" ,python-freezegun)
("tzdata" ,tzdata) ("tzdata" ,tzdata-for-tests)
("vdirsyncer" ,vdirsyncer) ("vdirsyncer" ,vdirsyncer)
;; Required to build manpage ;; Required to build manpage
("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed) ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
@ -154,7 +146,7 @@ data units.")
(synopsis "Console calendar program") (synopsis "Console calendar program")
(description "Khal is a standards based console calendar program, (description "Khal is a standards based console calendar program,
able to synchronize with CalDAV servers through vdirsyncer.") able to synchronize with CalDAV servers through vdirsyncer.")
(home-page "http://lostpackets.de/khal/") (home-page "https://lostpackets.de/khal/")
(license license:expat))) (license license:expat)))
(define-public remind (define-public remind

View File

@ -8,7 +8,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 John Darrington <jmd@gnu.org> ;;; Copyright © 2017 John Darrington <jmd@gnu.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; 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 © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
@ -336,13 +336,15 @@ or @command{xorrisofs} to create ISO 9660 images.")
(package (package
(name "dvdisaster") (name "dvdisaster")
(version "0.79.5") (version "0.79.5")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-" (method url-fetch)
version ".tar.bz2")) ;; Update this (and update HOME-PAGE) when/if one reappears.
(sha256 (uri (string-append "https://web.archive.org/web/20180428070843/"
(base32 "http://dvdisaster.net/downloads/dvdisaster-"
"0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w")))) version ".tar.bz2"))
(sha256
(base32 "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gtk+" ,gtk+-2))) `(("gtk+" ,gtk+-2)))
@ -384,7 +386,8 @@ or @command{xorrisofs} to create ISO 9660 images.")
(copy-file "contrib/dvdisaster48.xpm" (copy-file "contrib/dvdisaster48.xpm"
(string-append datadir "/pixmaps/dvdisaster.xpm")) (string-append datadir "/pixmaps/dvdisaster.xpm"))
#t)))))) #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") (synopsis "Error correcting codes for optical media images")
(description "Optical media (CD,DVD,BD) keep their data only for a (description "Optical media (CD,DVD,BD) keep their data only for a
finite time (typically for many years). After that time, data loss develops 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 (define-public asunder
(package (package
(name "asunder") (name "asunder")
(version "2.8") (version "2.9.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -665,7 +668,7 @@ information is written to standard error.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1nq9kd4rd4k2kibf57gdbm0zw2gxa234vvvdhxkm8g5bhx5h3iyq")))) "1630i1df06y840v3fgdf75jxw1s8kwbfn5bhi0686viah0scccw5"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
'(#:out-of-source? #f '(#: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 blanking CD-RW media, creating ISO-9660 file system images, extracting audio
CD data, and more. It's mostly compatible with @code{cdrtools}.") CD data, and more. It's mostly compatible with @code{cdrtools}.")
(license gpl2+))) (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 © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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") (version "1.8.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/google/googletest/archive/" (uri (git-reference
"release-" version ".tar.gz")) (url "https://github.com/google/googletest.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1n5p1m2m3fjrjdj752lf92f9wq3pl5cbsfrb49jqbg52ghkz99jq")))) "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) `(#: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 (define-public python-nose-timer
(package (package
(name "python-nose-timer") (name "python-nose-timer")
(version "0.7.4") (version "0.7.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "nose-timer" version)) (uri (pypi-uri "nose-timer" version))
(sha256 (sha256
(base32 "04inck7l1sgkjbiinhifxk45wk2b3czbwh1x2a390hi183fq1q12")))) (base32 "05wzkc88vbzw62pqkvhl33211b90kns0lny70b7qw62rcg4flzk4"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-nose" ,python-nose) `(("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 program or test suite under a test bed with the previously recorded devices
loaded.") loaded.")
(license license:lgpl2.1+))) (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") (synopsis "MIT/GNU Scheme compatibility library for Chez Scheme")
(description "This package provides a set of MIT/GNU Scheme compatibility (description "This package provides a set of MIT/GNU Scheme compatibility
libraries for Chez Scheme. The main goal was to provide the functionality 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+))) (license gpl3+)))
(define-public chez-scmutils (define-public chez-scmutils

View File

@ -40,7 +40,6 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
@ -51,6 +50,7 @@
#:use-module (gnu packages kerberos) #:use-module (gnu packages kerberos)
#:use-module (gnu packages ninja) #:use-module (gnu packages ninja)
#:use-module (gnu packages node) #:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages pciutils) #:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
@ -80,11 +80,9 @@
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+ "chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license "courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat "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/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"net/third_party/nss" ;MPL-2.0 "net/third_party/nss" ;MPL-2.0
"net/third_party/quic" ;BSD-3 "net/third_party/quic" ;BSD-3
"net/third_party/spdy" ;BSD-3
"net/third_party/uri_template" ;ASL2.0 "net/third_party/uri_template" ;ASL2.0
"third_party/abseil-cpp" ;ASL2.0 "third_party/abseil-cpp" ;ASL2.0
"third_party/adobe/flash/flapper_version.h" ;no license, trivial "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/compiler" ;BSD-2
"third_party/angle/src/third_party/libXNVCtrl" ;Expat "third_party/angle/src/third_party/libXNVCtrl" ;Expat
"third_party/angle/src/third_party/trace_event" ;BSD-3 "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-headers" ;ASL2.0
"third_party/angle/third_party/vulkan-loader" ;ASL2.0 "third_party/angle/third_party/vulkan-loader" ;ASL2.0
"third_party/angle/third_party/vulkan-tools" ;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/crashpad/crashpad/third_party/zlib/zlib_crashpad.h" ;Zlib
"third_party/crc32c" ;BSD-3 "third_party/crc32c" ;BSD-3
"third_party/cros_system_api" ;BSD-3 "third_party/cros_system_api" ;BSD-3
"third_party/dav1d" ;BSD-2
"third_party/dom_distiller_js" ;BSD-3 "third_party/dom_distiller_js" ;BSD-3
"third_party/emoji-segmenter" ;ASL2.0
"third_party/fips181" ;BSD-3 "third_party/fips181" ;BSD-3
"third_party/flatbuffers" ;ASL2.0 "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" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library" ;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 "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/yasm/run_yasm.py" ;BSD-2 or BSD-3
"third_party/zlib/google" ;BSD-3 "third_party/zlib/google" ;BSD-3
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+ "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/utf8-decoder" ;Expat
"v8/src/third_party/valgrind" ;BSD-4 "v8/src/third_party/valgrind" ;BSD-4
"v8/third_party/inspector_protocol" ;BSD-3 "v8/third_party/inspector_protocol" ;BSD-3
@ -224,8 +223,9 @@ from forcing GEXP-PROMISE."
#:system system #:system system
#:guile-for-build guile))) #:guile-for-build guile)))
(define %chromium-version "72.0.3626.121") (define %chromium-version "74.0.3729.131")
(define %ungoogled-revision "a80839c418de8843dfcd6c13a557f12d26a0a17a") (define %ungoogled-revision "9e33022f3ac7de2a12e3c7a7923799c9bbbf8194")
(define %debian-revision "debian/74.0.3729.108-1")
(define package-revision "0") (define package-revision "0")
(define %package-version (string-append %chromium-version "-" (define %package-version (string-append %chromium-version "-"
@ -233,29 +233,43 @@ from forcing GEXP-PROMISE."
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
;; This is a "computed" origin that does the following: ;; This is a "computed" origin that does the following:
;; 1) Runs the Ungoogled scripts on a pristine Chromium tarball. ;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
;; 2) Prunes all third_party folders that are not explicitly preserved. ;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
;; 3) Adjusts "GN" build files such that system libraries are preferred. ;; *) Prunes all third_party directories that are not explicitly preserved.
;; *) Adjusts "GN" build files such that system libraries are preferred.
(define ungoogled-chromium-source (define ungoogled-chromium-source
(let* ((chromium-source (let ((chromium-source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://commondatastorage.googleapis.com" (uri (string-append "https://commondatastorage.googleapis.com"
"/chromium-browser-official/chromium-" "/chromium-browser-official/chromium-"
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"07xwmlvmzfga61nrimqmzl7s29jb4kc94nkzwwlb7sh6nr55a7jc")))) "11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i"))))
(ungoogled-source (ungoogled-source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium") (uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
(commit %ungoogled-revision))) (commit %ungoogled-revision)))
(file-name (git-file-name "ungoogled-chromium" (file-name (git-file-name "ungoogled-chromium"
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
(sha256 (sha256
(base32 (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 (origin
(method computed-origin-method) (method computed-origin-method)
@ -265,7 +279,10 @@ from forcing GEXP-PROMISE."
(delay (delay
(with-imported-modules '((guix build utils)) (with-imported-modules '((guix build utils))
#~(begin #~(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)) (let ((chromium-dir (string-append "chromium-" #$%chromium-version))
(preserved-files (list #$@%preserved-third-party-files))) (preserved-files (list #$@%preserved-third-party-files)))
@ -281,41 +298,62 @@ from forcing GEXP-PROMISE."
(with-directory-excursion "/tmp/ungoogled" (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...~%") (format #t "Unpacking chromium tarball...~%")
(force-output) (force-output)
(invoke "tar" "xf" #+chromium-source) (invoke "tar" "xf" #+chromium-source)
(format #t "Ungooglifying...~%") (format #t "Ungooglifying...~%")
(force-output) (force-output)
(invoke "python3" "run_buildkit_cli.py" "prune" (invoke "python3" "utils/prune_binaries.py" chromium-dir
"-b" "config_bundles/guix" chromium-dir) "pruning.list")
(invoke "python3" "run_buildkit_cli.py" "patches" "apply" (invoke "python3" "utils/patches.py" "apply"
"-b" "config_bundles/guix" chromium-dir) chromium-dir "patches")
(invoke "python3" "run_buildkit_cli.py" "domains" "apply" (invoke "python3" "utils/domain_substitution.py" "apply" "-r"
"-b" "config_bundles/linux_rooted" "domain_regex.list" "-f" "domain_substitution.list"
"-c" "/tmp/domainscache.tar.gz" chromium-dir) "-c" "/tmp/domainscache.tar.gz" chromium-dir)
(with-directory-excursion 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...~%") (format #t "Pruning third party files...~%")
(force-output) (force-output)
(apply invoke "python" (apply invoke "python"
"build/linux/unbundle/remove_bundled_libraries.py" "build/linux/unbundle/remove_bundled_libraries.py"
"--do-remove" preserved-files) "--do-remove" preserved-files)
(format #t "Replacing GN files...~%") (format #t "Replacing GN files...~%")
(force-output) (force-output)
@ -421,13 +459,19 @@ depends = linux_rooted\n")))
"use_system_lcms2=true" "use_system_lcms2=true"
"use_system_libdrm=true" "use_system_libdrm=true"
"use_system_libjpeg=true" "use_system_libjpeg=true"
"use_system_libopenjpeg2=true"
"use_system_libpng=true" "use_system_libpng=true"
"use_system_zlib=true" "use_system_zlib=true"
"use_gnome_keyring=false" ;deprecated by libsecret "use_gnome_keyring=false" ;deprecated by libsecret
"use_openh264=true" "use_openh264=true"
"use_pulseaudio=true" "use_pulseaudio=true"
"link_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. ;; Don't arbitrarily restrict formats supported by system ffmpeg.
"proprietary_codecs=true" "proprietary_codecs=true"
@ -502,12 +546,13 @@ depends = linux_rooted\n")))
(substitute* "third_party/webrtc/rtc_base/strings/json.h" (substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/") "#include \"json/")) (("#include \"third_party/jsoncpp/") "#include \"json/"))
(substitute* "media/base/decode_capabilities.cc" (substitute* '("ui/gfx/skia_util.h"
(("third_party/libvpx/source/libvpx/") "")) "components/viz/common/resources/resource_format_utils.h")
(substitute* "ui/gfx/skia_util.h"
(("third_party/vulkan/include/") "")) (("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 ;; Building chromedriver embeds some files using the ZIP
;; format which doesn't support timestamps before ;; format which doesn't support timestamps before
;; 1980. Therefore, advance the timestamps of the files ;; 1980. Therefore, advance the timestamps of the files

View File

@ -2449,7 +2449,7 @@ COREUTILS-FINAL vs. COREUTILS, etc."
(description (description
"This package provides a complete GCC tool chain for C/C++ development to "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 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/") (home-page "https://gcc.gnu.org/")
(outputs '("out" "debug" "static")) (outputs '("out" "debug" "static"))

View File

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

View File

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

View File

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

View File

@ -72,16 +72,14 @@ operating system functions.")
(define-public rct (define-public rct
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a") (let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "2") (revision "2"))
(version (git-version "0.0.0" revision commit)))
(package (package
(name "rct") (name "rct")
(version version) (version (git-version "0.0.0" revision commit))
(home-page "https://github.com/Andersbakken/rct")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url home-page) (url "https://github.com/Andersbakken/rct")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
@ -99,6 +97,7 @@ operating system functions.")
(inputs (inputs
`(("openssl" ,openssl) `(("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://github.com/Andersbakken/rct")
(synopsis "C++ library providing Qt-like APIs on top of the STL") (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) (description "Rct is a set of C++ tools that provide nicer (more Qt-like)
APIs on top of Standard Template Library (@dfn{STL}) classes.") 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 (define-public signify
(package (package
(name "signify") (name "signify")
(version "24") (version "25")
(home-page "https://github.com/aperezdc/signify")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/aperezdc/signify/" (uri (git-reference (url home-page)
"archive/v" version ".tar.gz")) (commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0594vyvkq176xxzaz9xbq8qs0xdnr8s9gkd1prblwpdvnzmw0xvc")))) "0zg0rffxwj2a71s1bllhrn491xsmirg9sshpq8f3vl25lv4c2cnq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO Build with libwaive (described in README.md), to implement something ;; TODO Build with libwaive (described in README.md), to implement something
;; like OpenBSD's pledge(). ;; like OpenBSD's pledge().
@ -159,7 +160,6 @@ communication, encryption, decryption, signatures, etc.")
(description "The signify utility creates and verifies cryptographic (description "The signify utility creates and verifies cryptographic
signatures using the elliptic curve Ed25519. This is a Linux port of the signatures using the elliptic curve Ed25519. This is a Linux port of the
OpenBSD tool of the same name.") OpenBSD tool of the same name.")
(home-page "https://github.com/aperezdc/signify")
;; This package includes third-party code that was originally released under ;; This package includes third-party code that was originally released under
;; various non-copyleft licenses. See the source files for clarification. ;; various non-copyleft licenses. See the source files for clarification.
(license (list license:bsd-3 license:bsd-4 license:expat license:isc (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 (add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "vendor/github.com/google/googletest") (mkdir-p "vendor/github.com/google/googletest")
(invoke "tar" "xvf" (assoc-ref inputs "googletest-source") (copy-recursively (assoc-ref inputs "googletest-source")
"-C" "vendor/github.com/google/googletest" "vendor/github.com/google/googletest")
"--strip-components=1"))) #t))
(add-before 'check 'make-unittests (add-before 'check 'make-unittests
(lambda _ (lambda _
(invoke "make" "unittests")))))) (invoke "make" "unittests"))))))

View File

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

View File

@ -48,24 +48,6 @@
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web)) #: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 (define-public curl
(package (package
(name "curl") (name "curl")

View File

@ -82,6 +82,7 @@
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages perl-check) #:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -239,32 +240,19 @@ ElasticSearch server")
(define-public leveldb (define-public leveldb
(package (package
(name "leveldb") (name "leveldb")
(version "1.20") (version "1.21")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/google/leveldb" (uri (git-reference
"/archive/v" version ".tar.gz")) (url "https://github.com/google/leveldb")
(file-name (string-append name "-" version ".tar.gz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0r36bcrj6b2afsp4aw1gjai3jbs1c7734pxpc1jz7hh9nasyiazm")))) "00v0w6883z7a6204894j59nd5v6dazn3c8hvh3sbczv4wiabppw2"))))
(build-system gnu-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:make-flags (list "CC=gcc") `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DLEVELDB_BUILD_TESTS=ON")))
#: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))))))
(inputs (inputs
`(("snappy" ,snappy))) `(("snappy" ,snappy)))
(home-page "http://leveldb.org/") (home-page "http://leveldb.org/")
@ -277,14 +265,14 @@ mapping from string keys to string values.")
(define-public memcached (define-public memcached
(package (package
(name "memcached") (name "memcached")
(version "1.5.12") (version "1.5.13")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://memcached.org/files/memcached-" version ".tar.gz")) "https://memcached.org/files/memcached-" version ".tar.gz"))
(sha256 (sha256
(base32 "0aav15f0lh8k4i62aza2bdv4s8vv65j38pz2zc4v45snd3arfby0")))) (base32 "0qsdkjrns4f02lmabq8c7mzl5n4382q2p6a0dvmsjdcpjisagqb1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libevent" ,libevent) `(("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/") (home-page "https://github.com/tialaramex/sparql-query/")
(synopsis "Command-line tool for accessing SPARQL endpoints over HTTP") (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP")
(description "Sparql-query is a command-line tool for accessing SPARQL (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 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 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 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. ;; others (like sparql-query.c) contain a GPLv2+ license header.
(license (list license:gpl3+)))) (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 (define-public sqlcrush
;; Unfortunately, there is no proper upstream release and may never be. ;; Unfortunately, there is no proper upstream release and may never be.
(let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a") (let ((commit "b5f6868f189566a26eecc78d0f0659813c1aa98a")
@ -1332,6 +1406,29 @@ module, and nothing else.")
(license license:perl-license) (license license:perl-license)
(home-page "https://metacpan.org/release/DBD-SQLite"))) (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 (define-public perl-sql-abstract
(package (package
(name "perl-sql-abstract") (name "perl-sql-abstract")
@ -1845,13 +1942,13 @@ for ODBC.")
(define-public python-pyodbc (define-public python-pyodbc
(package (package
(name "python-pyodbc") (name "python-pyodbc")
(version "4.0.25") (version "4.0.26")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyodbc" version)) (uri (pypi-uri "pyodbc" version))
(sha256 (sha256
(base32 "1bbwrb812w5i0x56jfn0l86mxc2ck904hl8y87mziay96znwia0f")) (base32 "1qrxnf7ji5hml7z4y669k4wmk3iz2pcsr05bnn1n912asash09z5"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
@ -2092,13 +2189,13 @@ Database API 2.0T.")
(define-public python-sqlalchemy (define-public python-sqlalchemy
(package (package
(name "python-sqlalchemy") (name "python-sqlalchemy")
(version "1.3.1") (version "1.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "SQLAlchemy" version)) (uri (pypi-uri "SQLAlchemy" version))
(sha256 (sha256
(base32 "12sr36646sipf9ac3n2xh8z0w5pz4d3dvw5qjv2kzvcls6wvf7vq")))) (base32 "06c3lcv7nijsgqsjaaa4djrwlzgh9f910zlqxkmgq22h6jl4rici"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-cython" ,python-cython) ; for C extensions `(("python-cython" ,python-cython) ; for C extensions
@ -2474,15 +2571,15 @@ reasonable substitute.")
(define-public python-redis (define-public python-redis
(package (package
(name "python-redis") (name "python-redis")
(version "3.2.0") (version "3.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "redis" version)) (uri (pypi-uri "redis" version))
(sha256 (sha256
(base32 "0m1b88wg1w6xdwg0siky5k86x8sh6smhbr42ixz41ra81lv34jbj")))) (base32 "0wwj8il4c3aff15xwwcjfci367zxsakq05ps1a2il6yavp91i94c"))))
(build-system python-build-system) (build-system python-build-system)
;; Tests require a running Redis server ;; Tests require a running Redis server.
(arguments '(#:tests? #f)) (arguments '(#:tests? #f))
;; As long as we are not running test, we do not need this input :-) ;; As long as we are not running test, we do not need this input :-)
;;(native-inputs ;;(native-inputs

View File

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

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; 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. ;; home-page pointing to a bsd-2 license.
(license bsd-3))) (license bsd-3)))
;; Newer versions depend on LLVM and Clang >= 4, which have yet to be packaged.
(define-public c-reduce (define-public c-reduce
(package (package
(name "c-reduce") (name "c-reduce")
(version "2.6.0") (version "2.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -105,12 +104,12 @@ program to exhibit a bug.")
"creduce-" version ".tar.gz"))) "creduce-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0pf5q0n8vkdcr1wrkxn2jzxv0xkrir13bwmqfw3jpbm3dh2c3b6d")))) "1vqx73ymfscvlyig03972a5m7ar3gx2yv6m8c6h2mibz792j5xkp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("astyle" ,astyle) `(("astyle" ,astyle)
("llvm" ,llvm-3.9.1) ("llvm" ,llvm-6)
("clang" ,clang-3.9.1) ("clang" ,clang-6)
("flex" ,flex) ("flex" ,flex)
("indent" ,indent) ("indent" ,indent)
("perl" ,perl) ("perl" ,perl)
@ -118,11 +117,16 @@ program to exhibit a bug.")
("file-which" ,perl-file-which) ("file-which" ,perl-file-which)
("getopt-tabular" ,perl-getopt-tabular) ("getopt-tabular" ,perl-getopt-tabular)
("regex-common" ,perl-regexp-common) ("regex-common" ,perl-regexp-common)
("sys-cpu" ,perl-sys-cpu)
("term-readkey" ,perl-term-readkey))) ("term-readkey" ,perl-term-readkey)))
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-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 (add-after 'install 'set-load-paths
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; Tell creduce where to find the perl modules it needs. ;; Tell creduce where to find the perl modules it needs.
@ -137,7 +141,7 @@ program to exhibit a bug.")
,(package-version perl))) ,(package-version perl)))
'("term-readkey" "exporter-lite" '("term-readkey" "exporter-lite"
"file-which" "getopt-tabular" "file-which" "getopt-tabular"
"regex-common" "sys-cpu"))))) "regex-common")))))
#t))))) #t)))))
(home-page "https://embed.cs.utah.edu/creduce") (home-page "https://embed.cs.utah.edu/creduce")
(synopsis "Reducer for interesting code") (synopsis "Reducer for interesting code")

View File

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

View File

@ -46,11 +46,11 @@
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gnuzilla)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages nss)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt) #:use-module (gnu packages popt)
@ -808,9 +808,9 @@ LVM D-Bus API).")
("json-glib" ,json-glib) ("json-glib" ,json-glib)
("libblkid" ,util-linux))) ("libblkid" ,util-linux)))
(home-page "https://rmlint.rtfd.org") (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 (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 @itemize
@item duplicate files and duplicate directories, @item duplicate files and duplicate directories,

View File

@ -49,92 +49,10 @@
#:use-module (gnu packages xfce) #:use-module (gnu packages xfce)
#:use-module (gnu packages xorg)) #: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 (define-public sddm
(package (package
(name "sddm") (name "sddm")
(version "0.18.0") (version "0.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -143,7 +61,7 @@ Qt-style API for Wayland clients.")
"sddm-" version ".tar.xz")) "sddm-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87")))) "0nilrhwlyvkngjgxfc08n73c16azgmw80pvx0a78xqww9y3hv4xh"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules) `(("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 (replace 'check
(lambda _ (lambda _
;; the next version will need "make test" ;; the next version will need "make test"
(and (zero? (system* "flake8" "contact_form")) (invoke "flake8" "contact_form")
(zero? (system* "coverage" "run" "contact_form/runtests.py")) (invoke "coverage" "run" "contact_form/runtests.py")
(zero? (system* "coverage" "report" "-m" "--fail-under" "0")))))))) (invoke "coverage" "report" "-m" "--fail-under" "0"))))))
(native-inputs (native-inputs
`(("python-coverage" ,python-coverage) `(("python-coverage" ,python-coverage)
("python-flake8" ,python-flake8))) ("python-flake8" ,python-flake8)))
@ -577,8 +577,7 @@ entries, photos, book chapters, or anything else.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "./test_project/manage.py" "test"))))))
(zero? (system* "./test_project/manage.py" "test")))))))
(propagated-inputs (propagated-inputs
`(("python-django" ,python-django))) `(("python-django" ,python-django)))
(native-inputs (native-inputs

View File

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

View File

@ -11,6 +11,7 @@
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -51,6 +52,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages web) #:use-module (gnu packages web)
@ -106,7 +108,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind (define-public isc-bind
(package (package
(name "bind") (name "bind")
(version "9.12.3-P4") (version "9.12.4-P1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -114,7 +116,9 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.gz")) "/bind-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"01pj47z5582rd538dmbzf1msw4jc8j4zr0zx4ciy88r6qr9l80fi")))) "1if7zc5gzrfd28csc63v9bjwrc0rgvm1x9yx058946hc5gp5lyp2"))
(patches
(search-patches "bind-fix-unused-pk11-ecc-constants.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -122,7 +126,9 @@ and BOOTP/TFTP for network booting of diskless machines.")
`(("libcap" ,libcap) `(("libcap" ,libcap)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("openssl" ,openssl) ("openssl" ,openssl)
("p11-kit" ,p11-kit))) ("p11-kit" ,p11-kit)
("python" ,python)
("python-ply" ,python-ply)))
(native-inputs `(("perl" ,perl) (native-inputs `(("perl" ,perl)
("net-tools" ,net-tools))) ("net-tools" ,net-tools)))
(arguments (arguments
@ -294,14 +300,14 @@ asynchronous fashion.")
(define-public nsd (define-public nsd
(package (package
(name "nsd") (name "nsd")
(version "4.1.26") (version "4.1.27")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-" (uri (string-append "https://www.nlnetlabs.nl/downloads/nsd/nsd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "1x0mvj4872dzj1rr9adnchdm4dhn41xmc459p5j4s0r13m1l32lz")))) (base32 "1sjfbwr4vq25304hr9vmd9j821g2vzv8lpy95hpsravc80q5zaqv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -569,23 +575,21 @@ Extensions} (DNSSEC).")
(define-public knot (define-public knot
(package (package
(name "knot") (name "knot")
(version "2.8.0") (version "2.8.1")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "https://secure.nic.cz/files/knot-dns/" (method url-fetch)
"knot-" version ".tar.xz")) (uri (string-append "https://secure.nic.cz/files/knot-dns/"
(sha256 "knot-" version ".tar.xz"))
(base32 (sha256
"1vw7xx7bm440jwrpvdd04vrp6ccz2b11swcn9msvs62hf0kdjjj9")) (base32 "1im2wb8hl394mzni1wavmvfqd7il8s28kcz8w3s4v05nbhzg06xj"))
(patches (modules '((guix build utils)))
(search-patches "knot-include-system-lmdb-header.patch")) (snippet
(modules '((guix build utils))) '(begin
(snippet ;; Delete bundled libraries.
'(begin (with-directory-excursion "src/contrib"
;; Delete bundled libraries. (delete-file-recursively "lmdb"))
(with-directory-excursion "src/contrib" #t))))
(delete-file-recursively "lmdb"))
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -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 a zero-config service that allows one to resolve host names to IP addresses in
local networks.") local networks.")
(license license:lgpl2.1))) (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 version-control)
#:use-module (gnu packages virtualization)) #:use-module (gnu packages virtualization))
(define %docker-version "18.09.3") (define %docker-version "18.09.5")
(define-public python-docker-py (define-public python-docker-py
(package (package
@ -227,6 +227,8 @@ network attachments.")
(home-page "http://containerd.io/") (home-page "http://containerd.io/")
(license license:asl2.0))) (license license:asl2.0)))
;; TODO: Patch out modprobes for ip_vs, nf_conntrack,
;; brige, nf_conntrack_netlink, aufs.
(define-public docker (define-public docker
(package (package
(name "docker") (name "docker")
@ -239,10 +241,11 @@ network attachments.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "06yr5xwr181lalh8z1lk07nxlp7hn38aq8cyqjk617dfy4lz0ixx")) (base32 "0cirpd9l2qazp2jyanwzvrkx2m98nksjdvn43ff38p89w6133ipb"))
(patches (patches
(search-patches "docker-engine-test-noinstall.patch" (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) (build-system gnu-build-system)
(arguments (arguments
`(#:modules `(#:modules
@ -484,7 +487,7 @@ provisioning etc.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "09j1i668p330gjz5vw5pss8ghxh1mz7rl2q9ykp02q9p112zhy4j")))) (base32 "0mxxjzkwdny8p2dmyjich7x1gn7hdlfppzjy2skk2k5bwv7nxpmi"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/docker/cli" `(#:import-path "github.com/docker/cli"

View File

@ -73,6 +73,6 @@
(synopsis "Customizable and lightweight notification daemon") (synopsis "Customizable and lightweight notification daemon")
(description (description
"Dunst is a highly configurable and minimalistic notification daemon. "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.") started automatically on the first call via D-Bus.")
(license license:bsd-3))) (license license:bsd-3)))

View File

@ -96,14 +96,14 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld},
(package (package
(name "libabigail") (name "libabigail")
(home-page "https://sourceware.org/libabigail/") (home-page "https://sourceware.org/libabigail/")
(version "1.5") (version "1.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://sourceware.org/pub/" name (uri (string-append "https://sourceware.org/pub/libabigail/"
"/" name "-" version ".tar.gz")) "libabigail-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0srfnkbm386sl2n85686nl28da6ksbs7jgnfks9k0n61c772aas4")))) "04j07lhvwbp6qp8pdwbf7iqnr7kgpabmqylsw4invpmzwnyp6g6g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--disable-static" `(#: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, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Taylan Ulrich Bayirli/Kammer <taylanbayirli@gmail.com> ;;; 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 © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
@ -68,14 +68,14 @@
(define-public emacs (define-public emacs
(package (package
(name "emacs") (name "emacs")
(version "26.1") (version "26.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-" (uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0b6k1wq44rc8gkvxhi1bbjxbz3cwg29qbq8mklq2az6p1hjgrx0w")) "13n5m60i47k96mpv5pp6km2ph9rv2m5lmbpzj929v02vpsfyc70m"))
(patches (search-patches "emacs-exec-path.patch" (patches (search-patches "emacs-exec-path.patch"
"emacs-fix-scheme-indent-function.patch" "emacs-fix-scheme-indent-function.patch"
"emacs-source-date-epoch.patch")) "emacs-source-date-epoch.patch"))

View File

@ -1013,6 +1013,8 @@ SPI, I2C, JTAG.")
"uptools/atcmd/atinterf.c") "uptools/atcmd/atinterf.c")
(("/opt/freecalypso/loadtools") (("/opt/freecalypso/loadtools")
(string-append (assoc-ref outputs "out") "/lib/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") (("/opt/freecalypso")
(assoc-ref outputs "out"))) (assoc-ref outputs "out")))
#t))))) #t)))))

View File

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

View File

@ -9,7 +9,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; 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> ;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -85,6 +85,7 @@
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets) #:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
@ -554,43 +555,65 @@ multipole-accelerated algorithm.")
(define-public fritzing (define-public fritzing
(package (package
(name "fritzing") (name "fritzing")
(version "0.9.2b") (version "0.9.3b")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/fritzing/" (uri (git-reference
"fritzing-app/archive/" version ".tar.gz")) (url "https://github.com/fritzing/fritzing-app.git")
(file-name (string-append name "-" version ".tar.gz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"15rwjp4xdj9w1z9f709rz9p0k2mi9k9idma9hvzkj5j8p04mg7yd")))) "0hpyc550xfhr6gmnc85nq60w00rm0ljm0y744dp0z88ikl04f4s3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(and (zero? (system* "tar" (copy-recursively (assoc-ref inputs "fritzing-parts-db")
"-xvf" (assoc-ref inputs "fritzing-parts-db") "parts")
"-C" "parts")) ;; Make compatible with libgit2 > 0.24
(zero? (system* "qmake" (substitute* "src/version/partschecker.cpp"
(string-append "PREFIX=" (("error = git_remote_connect\\(remote, GIT_DIRECTION_FETCH, &callbacks\\)")
(assoc-ref outputs "out")) "error = git_remote_connect(remote, GIT_DIRECTION_FETCH, &callbacks, NULL, NULL)"))
"phoenix.pro"))))))))
;; 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 (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)
("qtserialport" ,qtserialport) ("qtserialport" ,qtserialport)
("qtsvg" ,qtsvg) ("qtsvg" ,qtsvg)
("libgit2" ,libgit2)
("boost" ,boost) ("boost" ,boost)
("zlib" ,zlib) ("zlib" ,zlib)
("fritzing-parts-db" ("fritzing-parts-db"
,(origin ,(origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/fritzing/" (uri (git-reference
"fritzing-parts/archive/" version ".tar.gz")) (url "https://github.com/fritzing/fritzing-parts.git")
(file-name (string-append "fritzing-parts-" version ".tar.gz")) (commit version)))
(file-name (git-file-name "fritzing-parts" version))
(sha256 (sha256
(base32 (base32
"0jqr8yjg7177f3pk1fcns584r0qavwpr280nggsi2ff3pwk5wpsz")))))) "1d2v8k7p176j0lczx4vx9n9gbg3vw09n2c4b6w0wj5wqmifywhc1"))))))
(home-page "http://fritzing.org") (home-page "http://fritzing.org")
(synopsis "Electronic circuit design") (synopsis "Electronic circuit design")
(description (description
@ -1916,15 +1939,15 @@ simulator backends @code{Qucsator}, @code{ngspice} and @code{Xyce}.")
(define-public librepcb (define-public librepcb
(package (package
(name "librepcb") (name "librepcb")
(version "0.1.0") (version "0.1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.librepcb.org/releases/0.1.0/librepcb-" (uri (string-append "https://download.librepcb.org/releases/"
version "-source.zip")) version "/librepcb-" version "-source.zip"))
(sha256 (sha256
(base32 (base32
"0affvwwgs1j2wx6bb3zfa2jbfxpckklr8cka2nkswca0p82wd3dv")))) "08lm95kr5gqyqyy4hcii0micqa6ryhbv0harvdndmpvi4ix1ggi8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)
@ -1985,3 +2008,57 @@ editors.")
slicing software to x3g files for standalone 3D printing on common 3D slicing software to x3g files for standalone 3D printing on common 3D
printers.") printers.")
(license license:gpl2+))) (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 (define-public terminology
(package (package
(name "terminology") (name "terminology")
(version "1.3.2") (version "1.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -193,7 +193,7 @@ removable devices or support for multimedia.")
"terminology/terminology-" version ".tar.xz")) "terminology/terminology-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm")) "0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Remove the bundled fonts. ;; Remove the bundled fonts.
(snippet (snippet
@ -204,11 +204,24 @@ removable devices or support for multimedia.")
#t)))) #t))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
'(#:phases `(#:configure-flags '("-Dtests=true")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'set-home-directory (add-after 'unpack 'set-home-directory
;; FATAL: Cannot create run dir '/homeless-shelter/.run' - errno=2 ;; 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 (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
("perl" ,perl) ("perl" ,perl)

View File

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

View File

@ -23,6 +23,7 @@
(define-module (gnu packages erlang) (define-module (gnu packages erlang)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system emacs)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #: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. ;; have other licenses. See 'system/COPYRIGHT' in the source distribution.
(license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat (license (list license:asl2.0 license:bsd-2 license:bsd-3 license:expat
license:lgpl2.0+ license:tcl/tk license:zlib)))) 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) `(("bzip2" ,bzip2)
("fuse" ,fuse) ("fuse" ,fuse)
("zlib" ,zlib))) ("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 (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 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 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 ;; When cross-compiling, this package depends upon a native install of
;; itself. ;; itself.
(self-native-input? #t) (native-inputs (if (%current-target-system)
`(("self" ,this-package))
'()))
(synopsis "File type guesser") (synopsis "File type guesser")
(description (description

View File

@ -6,7 +6,7 @@
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; 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 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@ -139,7 +139,7 @@ line client and a client based on Qt.")
(define-public ledger (define-public ledger
(package (package
(name "ledger") (name "ledger")
(version "3.1.2") (version "3.1.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -148,8 +148,7 @@ line client and a client based on Qt.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0hwnipj2m9p95hhyv6kyq54m27g14r58gnsy2my883kxhpcyb2vc")) (base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3"))))
(patches (search-patches "ledger-fix-uninitialized.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -242,6 +241,13 @@ in ability, and easy to use.")
#:tests? #f ; there are none #:tests? #f ; there are none
#:phases #:phases
(modify-phases %standard-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 (add-after 'build 'build-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out") (let ((target (string-append (assoc-ref outputs "out")
@ -261,6 +267,8 @@ in ability, and easy to use.")
(rename-file orig-dir dest-dir) (rename-file orig-dir dest-dir)
(emacs-generate-autoloads ,name dest-dir) (emacs-generate-autoloads ,name dest-dir)
#t)))))) #t))))))
(inputs
`(("ledger" ,ledger)))
(native-inputs (native-inputs
`(("emacs-minimal" ,emacs-minimal) `(("emacs-minimal" ,emacs-minimal)
("texinfo" ,texinfo))) ("texinfo" ,texinfo)))
@ -391,7 +399,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(package (package
(inherit electrum) (inherit electrum)
(name "electron-cash") (name "electron-cash")
(version "3.3.6") (version "4.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -402,7 +410,7 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"110apc376wm4yd9ghpffiipwdn8rzyr3z7ncpp2516wbz4mmyhxc")) "16fi03f23yb5r9s64x1a9wrxnvivlbawvrbq4d486yclzl1r7y48"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -628,7 +636,7 @@ Monero GUI client.")
(define-public python-trezor-agent (define-public python-trezor-agent
(package (package
(name "python-trezor-agent") (name "python-trezor-agent")
(version "0.13.0") (version "0.13.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -637,7 +645,7 @@ Monero GUI client.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0i4igkxi8fwdlbhg6nx27lhnc9v9nmrw4j5fvpnc202n6yjlc7x7")))) (base32 "0q99vbfd3h85s8rnjipnmldixabqmmlk5w9karv6f0rhyi54f4zv"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -734,14 +742,14 @@ Ledger Blue/Nano S.")
(define-public python-trezor (define-public python-trezor
(package (package
(name "python-trezor") (name "python-trezor")
(version "0.11.1") (version "0.11.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "trezor" version)) (uri (pypi-uri "trezor" version))
(sha256 (sha256
(base32 (base32
"064yds8f4px0c6grkkanpdjx022g4q87ihzhkmdv9qanv0hz6hv0")))) "1f0zfki12mnhidkfxpx2lpq1xim8f35i2d64bx9lf4m26xxv9x56"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -780,14 +788,14 @@ TREZOR Hardware Wallet.")
(define-public python-keepkey (define-public python-keepkey
(package (package
(name "python-keepkey") (name "python-keepkey")
(version "6.0.2") (version "6.0.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "keepkey" version)) (uri (pypi-uri "keepkey" version))
(sha256 (sha256
(base32 (base32
"16j8hnxj9r4b2w6kfncmny09pb1al8ppmn59qxzl3qmh1xhpy45g")))) "0z3d0m6364v9dv0njs4cd5m5ai6j6v35xaaxfxl90m9vmyxy81vd"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -926,7 +934,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(define-public python-duniterpy (define-public python-duniterpy
(package (package
(name "python-duniterpy") (name "python-duniterpy")
(version "0.52.0") (version "0.53.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -937,7 +945,7 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07liba2d21hb8m3n6yccfamq9yq0ryywh18vs9g2sgywfsnv82lh")))) "1km585xlv6dm693s5x6apcnx3ixvz08g8yjfclszhy4jakhpv0ya"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; Tests fail with "AttributeError: module 'attr' has no attribute 's'". ;; 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