Archived
1
0
Fork 0

Merge remote-tracking branch 'origin/master' into staging

This commit is contained in:
Efraim Flashner 2020-09-05 21:56:34 +03:00
commit de3c03a471
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351
424 changed files with 70881 additions and 9809 deletions

View file

@ -40,6 +40,7 @@
(eval . (put 'with-writable-file 'scheme-indent-function 1)) (eval . (put 'with-writable-file 'scheme-indent-function 1))
(eval . (put 'package 'scheme-indent-function 0)) (eval . (put 'package 'scheme-indent-function 0))
(eval . (put 'package/inherit 'scheme-indent-function 1))
(eval . (put 'origin 'scheme-indent-function 0)) (eval . (put 'origin 'scheme-indent-function 0))
(eval . (put 'build-system 'scheme-indent-function 0)) (eval . (put 'build-system 'scheme-indent-function 0))
(eval . (put 'bag 'scheme-indent-function 0)) (eval . (put 'bag 'scheme-indent-function 0))

View file

@ -101,6 +101,9 @@
(name "ngz")) (name "ngz"))
("CEF4 CB91 4856 BA38 0A20 A7E2 3008 88CB 39C6 3817" ("CEF4 CB91 4856 BA38 0A20 A7E2 3008 88CB 39C6 3817"
(name "pelzflorian")) (name "pelzflorian"))
(;; primary: "41CA 12EA DE0C F33F 6885 A58F 5719 6E37 E00B 77FD"
"72D5 3D81 8CB6 F4A1 7258 374C A8FC 9E44 7F4F 7D54"
(name "planglois"))
(;; primary: "B68B DF22 73F9 DA0E 63C1 8A32 515B F416 9242 D600" (;; primary: "B68B DF22 73F9 DA0E 63C1 8A32 515B F416 9242 D600"
"C699 ED09 E51B CE89 FD1D A078 AAC7 E891 896B 568A" "C699 ED09 E51B CE89 FD1D A078 AAC7 E891 896B 568A"
(name "pgarlick")) (name "pgarlick"))

View file

@ -80,6 +80,7 @@ MODULES = \
guix/modules.scm \ guix/modules.scm \
guix/download.scm \ guix/download.scm \
guix/discovery.scm \ guix/discovery.scm \
guix/android-repo-download.scm \
guix/bzr-download.scm \ guix/bzr-download.scm \
guix/git-download.scm \ guix/git-download.scm \
guix/hg-download.scm \ guix/hg-download.scm \
@ -109,8 +110,6 @@ MODULES = \
guix/cache.scm \ guix/cache.scm \
guix/cve.scm \ guix/cve.scm \
guix/workers.scm \ guix/workers.scm \
guix/zlib.scm \
guix/lzlib.scm \
guix/build-system.scm \ guix/build-system.scm \
guix/build-system/android-ndk.scm \ guix/build-system/android-ndk.scm \
guix/build-system/ant.scm \ guix/build-system/ant.scm \
@ -172,6 +171,7 @@ MODULES = \
guix/build/minify-build-system.scm \ guix/build/minify-build-system.scm \
guix/build/font-build-system.scm \ guix/build/font-build-system.scm \
guix/build/go-build-system.scm \ guix/build/go-build-system.scm \
guix/build/android-repo.scm \
guix/build/asdf-build-system.scm \ guix/build/asdf-build-system.scm \
guix/build/bzr.scm \ guix/build/bzr.scm \
guix/build/copy-build-system.scm \ guix/build/copy-build-system.scm \
@ -333,6 +333,10 @@ dist_noinst_DATA = \
AUX_FILES = \ AUX_FILES = \
gnu/packages/aux-files/chromium/master-preferences.json \ gnu/packages/aux-files/chromium/master-preferences.json \
gnu/packages/aux-files/emacs/guix-emacs.el \ gnu/packages/aux-files/emacs/guix-emacs.el \
gnu/packages/aux-files/linux-libre/5.8-arm.conf \
gnu/packages/aux-files/linux-libre/5.8-arm64.conf \
gnu/packages/aux-files/linux-libre/5.8-i686.conf \
gnu/packages/aux-files/linux-libre/5.8-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.4-arm.conf \ gnu/packages/aux-files/linux-libre/5.4-arm.conf \
gnu/packages/aux-files/linux-libre/5.4-arm64.conf \ gnu/packages/aux-files/linux-libre/5.4-arm64.conf \
gnu/packages/aux-files/linux-libre/5.4-i686.conf \ gnu/packages/aux-files/linux-libre/5.4-i686.conf \
@ -423,11 +427,11 @@ SCM_TESTS = \
tests/import-utils.scm \ tests/import-utils.scm \
tests/inferior.scm \ tests/inferior.scm \
tests/lint.scm \ tests/lint.scm \
tests/lzlib.scm \
tests/modules.scm \ tests/modules.scm \
tests/monads.scm \ tests/monads.scm \
tests/nar.scm \ tests/nar.scm \
tests/networking.scm \ tests/networking.scm \
tests/offload.scm \
tests/opam.scm \ tests/opam.scm \
tests/openpgp.scm \ tests/openpgp.scm \
tests/packages.scm \ tests/packages.scm \
@ -462,8 +466,7 @@ SCM_TESTS = \
tests/upstream.scm \ tests/upstream.scm \
tests/utils.scm \ tests/utils.scm \
tests/uuid.scm \ tests/uuid.scm \
tests/workers.scm \ tests/workers.scm
tests/zlib.scm
SH_TESTS = \ SH_TESTS = \
tests/guix-build.sh \ tests/guix-build.sh \
@ -649,11 +652,10 @@ commit_v1_0_0 = 6298c3ffd9654d3231a6f25390b056483e8f407c
channel_intro_commit = 9edb3f66fd807b096b48283debdcddccfea34bad channel_intro_commit = 9edb3f66fd807b096b48283debdcddccfea34bad
channel_intro_signer = BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA channel_intro_signer = BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA
# Authenticate the current Git checkout by checking signatures on every commit # Authenticate the current Git checkout by checking signatures on every commit.
# starting from $(commit_v1_0_0). authenticate:
authenticate: guix/openpgp.go guix/git-authenticate.go guix/git.go
$(AM_V_at)echo "Authenticating Git checkout..." ; \ $(AM_V_at)echo "Authenticating Git checkout..." ; \
"$(top_builddir)/pre-inst-env" guix git authenticate \ guix git authenticate \
--cache-key=channels/guix --stats \ --cache-key=channels/guix --stats \
"$(channel_intro_commit)" "$(channel_intro_signer)" "$(channel_intro_commit)" "$(channel_intro_signer)"
@ -834,6 +836,7 @@ release: dist-with-updated-version
image=`$(top_builddir)/pre-inst-env \ image=`$(top_builddir)/pre-inst-env \
guix system disk-image \ guix system disk-image \
--file-system-type=iso9660 \ --file-system-type=iso9660 \
--label="GUIX_$${system}_$(VERSION)" \
--system=$$system --fallback \ --system=$$system --fallback \
gnu/system/install.scm` ; \ gnu/system/install.scm` ; \
if [ ! -f "$$image" ] ; then \ if [ ! -f "$$image" ] ; then \

View file

@ -71,7 +71,7 @@
(variables rest ...)))))) (variables rest ...))))))
(variables %localstatedir %storedir %sysconfdir %system))) (variables %localstatedir %storedir %sysconfdir %system)))
(define* (make-config.scm #:key zlib gzip xz bzip2 (define* (make-config.scm #:key gzip xz bzip2
(package-name "GNU Guix") (package-name "GNU Guix")
(package-version "0") (package-version "0")
(bug-report-address "bug-guix@gnu.org") (bug-report-address "bug-guix@gnu.org")
@ -133,11 +133,7 @@
(define %bzip2 (define %bzip2
#+(and bzip2 (file-append bzip2 "/bin/bzip2"))) #+(and bzip2 (file-append bzip2 "/bin/bzip2")))
(define %xz (define %xz
#+(and xz (file-append xz "/bin/xz"))) #+(and xz (file-append xz "/bin/xz")))))))
(define %libz
#+(and zlib
(file-append zlib "/lib/libz")))))))
;;; ;;;

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# GNU Guix --- Functional package management for GNU # GNU Guix --- Functional package management for GNU
# Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2017 Eric Bavier <bavier@cray.com> # Copyright © 2017 Eric Bavier <bavier@cray.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
@ -46,13 +46,6 @@ export PATH
GUIX="$abs_top_builddir/scripts/guix" GUIX="$abs_top_builddir/scripts/guix"
export GUIX export GUIX
# The following variables need only be defined when compiling Guix
# modules, but we define them to be on the safe side in case of
# auto-compilation.
NIX_HASH="@NIX_HASH@"
export NIX_HASH
# Define $GUIX_UNINSTALLED to prevent `guix' from # Define $GUIX_UNINSTALLED to prevent `guix' from
# prepending @guilemoduledir@ to the Guile load paths. # prepending @guilemoduledir@ to the Guile load paths.

View file

@ -141,6 +141,18 @@ if test "x$guix_cv_have_recent_guile_gcrypt" != "xyes"; then
AC_MSG_ERROR([A recent Guile-Gcrypt could not be found; please install it.]) AC_MSG_ERROR([A recent Guile-Gcrypt could not be found; please install it.])
fi fi
dnl Check for Guile-zlib.
GUILE_MODULE_AVAILABLE([have_guile_zlib], [(zlib)])
if test "x$have_guile_zlib" != "xyes"; then
AC_MSG_ERROR([Guile-zlib is missing; please install it.])
fi
dnl Check for Guile-lzlib.
GUILE_MODULE_AVAILABLE([have_guile_lzlib], [(lzlib)])
if test "x$have_guile_lzlib" != "xyes"; then
AC_MSG_ERROR([Guile-lzlib is missing; please install it.])
fi
dnl Guile-newt is used by the graphical installer. dnl Guile-newt is used by the graphical installer.
GUILE_MODULE_AVAILABLE([have_guile_newt], [(newt)]) GUILE_MODULE_AVAILABLE([have_guile_newt], [(newt)])
@ -159,10 +171,6 @@ AM_CONDITIONAL([ENABLE_INSTALLER],
dnl Make sure we have a full-fledged Guile. dnl Make sure we have a full-fledged Guile.
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads]) GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
dnl Make sure we don't suffer from the bug in 'equal?' wrt. syntax objects
dnl found in 2.2.1. See <https://bugs.gnu.org/29903>.
GUIX_ASSERT_SYNTAX_OBJECT_EQUAL
AC_PROG_SED AC_PROG_SED
dnl Decompressors, for use by the substituter and other modules. dnl Decompressors, for use by the substituter and other modules.
@ -186,11 +194,6 @@ AC_ARG_WITH([nix-prefix],
esac], esac],
[]) [])
AC_PATH_PROG([NIX_HASH], [nix-hash])
if test "x$guix_build_daemon$NIX_HASH" = "xno"; then
AC_MSG_ERROR([Nix programs not found; please install Nix or use `--with-nix-prefix'.])
fi
AC_ARG_WITH([nixpkgs], AC_ARG_WITH([nixpkgs],
[AS_HELP_STRING([--with-nixpkgs=DIR], [AS_HELP_STRING([--with-nixpkgs=DIR],
[search for Nixpkgs in DIR (for testing purposes only)])], [search for Nixpkgs in DIR (for testing purposes only)])],
@ -245,27 +248,6 @@ esac
AC_SUBST([LIBGCRYPT_PREFIX]) AC_SUBST([LIBGCRYPT_PREFIX])
AC_SUBST([LIBGCRYPT_LIBDIR]) AC_SUBST([LIBGCRYPT_LIBDIR])
dnl Library name of zlib suitable for 'dynamic-link'.
GUIX_LIBZ_LIBDIR([libz_libdir])
if test "x$libz_libdir" = "x"; then
LIBZ="libz"
else
LIBZ="$libz_libdir/libz"
fi
AC_MSG_CHECKING([for zlib's shared library name])
AC_MSG_RESULT([$LIBZ])
AC_SUBST([LIBZ])
dnl Library name of lzlib suitable for 'dynamic-link'.
GUIX_LIBLZ_FILE_NAME([LIBLZ])
if test "x$LIBLZ" = "x"; then
LIBLZ="liblz"
else
# Strip the .so or .so.1 extension since that's what 'dynamic-link' expects.
LIBLZ="`echo $LIBLZ | sed -es'/\.so\(\.[[0-9.]]\+\)\?//g'`"
fi
AC_SUBST([LIBLZ])
dnl Check for Guile-SSH, for the (guix ssh) module. dnl Check for Guile-SSH, for the (guix ssh) module.
GUIX_CHECK_GUILE_SSH GUIX_CHECK_GUILE_SSH
AM_CONDITIONAL([HAVE_GUILE_SSH], AM_CONDITIONAL([HAVE_GUILE_SSH],

View file

@ -310,6 +310,8 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(loop rest (cons (entity->string entity) strings))) (loop rest (cons (entity->string entity) strings)))
((('span _ lst ...) . rest) ;for <span class="roman"> ((('span _ lst ...) . rest) ;for <span class="roman">
(loop (append lst rest) strings)) (loop (append lst rest) strings))
((('var name) . rest) ;for @var{name} within @lisp
(loop rest (cons name strings))) ;XXX: losing formatting
(something (something
(pk 'unsupported-code-snippet something) (pk 'unsupported-code-snippet something)
(primitive-exit 1))))) (primitive-exit 1)))))

View file

@ -42,13 +42,14 @@ git clone https://git.savannah.gnu.org/git/guix.git
@cindex authentication, of a Guix checkout @cindex authentication, of a Guix checkout
How do you ensure that you obtained a genuine copy of the repository? How do you ensure that you obtained a genuine copy of the repository?
To do that, run @command{guix git authenticate}, passing if the commit To do that, run @command{guix git authenticate}, passing it the commit
and OpenPGP fingerprint of the @dfn{channel introduction} and OpenPGP fingerprint of the @dfn{channel introduction}
(@pxref{Invoking guix git authenticate}): (@pxref{Invoking guix git authenticate}):
@c The commit and fingerprint below must match those of the channel @c The commit and fingerprint below must match those of the channel
@c introduction in '%default-channels'. @c introduction in '%default-channels'.
@example @example
git fetch origin keyring:keyring
guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \ guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
@end example @end example

View file

@ -64,6 +64,7 @@ Translation Project}.
* Packaging:: Packaging tutorials * Packaging:: Packaging tutorials
* System Configuration:: Customizing the GNU System * System Configuration:: Customizing the GNU System
* Advanced package management:: Power to the users! * Advanced package management:: Power to the users!
* Environment management:: Control environment
* Acknowledgments:: Thanks! * Acknowledgments:: Thanks!
* GNU Free Documentation License:: The license of this document. * GNU Free Documentation License:: The license of this document.
@ -2268,6 +2269,130 @@ mkdir -p "$GUIX_EXTRA_PROFILES/my-project"
It's safe to delete the Guix channel profile you've just installed with the It's safe to delete the Guix channel profile you've just installed with the
channel specification, the project profile does not depend on it. channel specification, the project profile does not depend on it.
@c *********************************************************************
@node Environment management
@chapter Environment management
Guix provides multiple tools to manage environment. This chapter
demonstrate such utilities.
@menu
* Guix environment via direnv:: Setup Guix environment with direnv
@end menu
@node Guix environment via direnv
@section Guix environment via direnv
Guix provides a @samp{direnv} package, which could extend shell after
directory change. This tool could be used to prepare a pure Guix
environment.
The following example provides a shell function for @file{~/.direnvrc}
file, which could be used from Guix Git repository in
@file{~/src/guix/.envrc} file to setup a build environment similar to
described in @pxref{Building from Git,,, guix, GNU Guix Reference
Manual}.
Create a @file{~/.direnvrc} with a Bash code:
@example
# Thanks <https://github.com/direnv/direnv/issues/73#issuecomment-152284914>
export_function()
@{
local name=$1
local alias_dir=$PWD/.direnv/aliases
mkdir -p "$alias_dir"
PATH_add "$alias_dir"
local target="$alias_dir/$name"
if declare -f "$name" >/dev/null; then
echo "#!$SHELL" > "$target"
declare -f "$name" >> "$target" 2>/dev/null
# Notice that we add shell variables to the function trigger.
echo "$name \$*" >> "$target"
chmod +x "$target"
fi
@}
use_guix()
@{
# Set GitHub token.
export GUIX_GITHUB_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Unset 'GUIX_PACKAGE_PATH'.
export GUIX_PACKAGE_PATH=""
# Recreate a garbage collector root.
gcroots="$HOME/.config/guix/gcroots"
mkdir -p "$gcroots"
gcroot="$gcroots/guix"
if [ -L "$gcroot" ]
then
rm -v "$gcroot"
fi
# Miscellaneous packages.
PACKAGES_MAINTENANCE=(
direnv
git
git:send-email
git-cal
gnupg
guile-colorized
guile-readline
less
ncurses
openssh
xdot
)
# Environment packages.
PACKAGES=(help2man guile-sqlite3 guile-gcrypt)
# Thanks <https://lists.gnu.org/archive/html/guix-devel/2016-09/msg00859.html>
eval "$(guix environment --search-paths --root="$gcroot" --pure guix --ad-hoc $@{PACKAGES[@@]@} $@{PACKAGES_MAINTENANCE[@@]@} "$@@")"
# Predefine configure flags.
configure()
@{
./configure --localstatedir=/var --prefix=
@}
export_function configure
# Run make and optionally build something.
build()
@{
make -j 2
if [ $# -gt 0 ]
then
./pre-inst-env guix build "$@@"
fi
@}
export_function build
# Predefine push Git command.
push()
@{
git push --set-upstream origin
@}
export_function push
clear # Clean up the screen.
git-cal --author='Your Name' # Show contributions calendar.
# Show commands help.
echo "
build build a package or just a project if no argument provided
configure run ./configure with predefined parameters
push push to upstream Git repository
"
@}
@end example
Every project containing @file{.envrc} with a string @code{use guix}
will have predefined environment variables and procedures.
Run @command{direnv allow} to setup the environment for the first time.
@c ********************************************************************* @c *********************************************************************
@node Acknowledgments @node Acknowledgments
@chapter Acknowledgments @chapter Acknowledgments

View file

@ -144,6 +144,7 @@ Project}.
* Introduction:: What is Guix about? * Introduction:: What is Guix about?
* Installation:: Installing Guix. * Installation:: Installing Guix.
* System Installation:: Installing the whole operating system. * System Installation:: Installing the whole operating system.
* Getting Started:: Your first steps.
* Package Management:: Package installation, upgrade, etc. * Package Management:: Package installation, upgrade, etc.
* Development:: Guix-aided software development. * Development:: Guix-aided software development.
* Programming Interface:: Using Guix in Scheme. * Programming Interface:: Using Guix in Scheme.
@ -196,6 +197,8 @@ System Installation
* Installing Guix in a VM:: Guix System playground. * Installing Guix in a VM:: Guix System playground.
* Building the Installation Image:: How this comes to be. * Building the Installation Image:: How this comes to be.
Getting Started
Manual Installation Manual Installation
* Keyboard Layout and Networking and Partitioning:: Initial setup. * Keyboard Layout and Networking and Partitioning:: Initial setup.
@ -562,6 +565,9 @@ wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
chmod +x guix-install.sh chmod +x guix-install.sh
./guix-install.sh ./guix-install.sh
@end example @end example
When you're done, @pxref{Application Setup} for extra configuration you
might need, and @ref{Getting Started} for your first steps!
@end quotation @end quotation
Installing goes along these lines: Installing goes along these lines:
@ -778,12 +784,13 @@ Guile,, gnutls-guile, GnuTLS-Guile});
@item @item
@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 @uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
or later; or later;
@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};
@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
@item @item
@c FIXME: Specify a version number once a release has been made. @c FIXME: Specify a version number once a release has been made.
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
2017 or later; 2017 or later;
@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x; @item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 3.x;
@item @url{https://zlib.net, zlib};
@item @url{https://www.gnu.org/software/make/, GNU Make}. @item @url{https://www.gnu.org/software/make/, GNU Make}.
@end itemize @end itemize
@ -1042,29 +1049,31 @@ When desired, the build daemon can @dfn{offload} derivation builds to
other machines running Guix, using the @code{offload} @dfn{build other machines running Guix, using the @code{offload} @dfn{build
hook}@footnote{This feature is available only when hook}@footnote{This feature is available only when
@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is @uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is
present.}. When that present.}. When that feature is enabled, a list of user-specified build
feature is enabled, a list of user-specified build machines is read from machines is read from @file{/etc/guix/machines.scm}; every time a build
@file{/etc/guix/machines.scm}; every time a build is requested, for is requested, for instance via @code{guix build}, the daemon attempts to
instance via @code{guix build}, the daemon attempts to offload it to one offload it to one of the machines that satisfy the constraints of the
of the machines that satisfy the constraints of the derivation, in derivation, in particular its system types---e.g., @code{x86_64-linux}.
particular its system type---e.g., @file{x86_64-linux}. Missing A single machine can have multiple system types, either because its
prerequisites for the build are copied over SSH to the target machine, architecture natively supports it, via emulation (@pxref{Transparent
which then proceeds with the build; upon success the output(s) of the Emulation with QEMU}), or both. Missing prerequisites for the build are
build are copied back to the initial machine. copied over SSH to the target machine, which then proceeds with the
build; upon success the output(s) of the build are copied back to the
initial machine.
The @file{/etc/guix/machines.scm} file typically looks like this: The @file{/etc/guix/machines.scm} file typically looks like this:
@lisp @lisp
(list (build-machine (list (build-machine
(name "eightysix.example.org") (name "eightysix.example.org")
(system "x86_64-linux") (systems (list "x86_64-linux" "i686-linux"))
(host-key "ssh-ed25519 AAAAC3Nza@dots{}") (host-key "ssh-ed25519 AAAAC3Nza@dots{}")
(user "bob") (user "bob")
(speed 2.)) ;incredibly fast! (speed 2.)) ;incredibly fast!
(build-machine (build-machine
(name "armeight.example.org") (name "armeight.example.org")
(system "aarch64-linux") (systems (list "aarch64-linux"))
(host-key "ssh-rsa AAAAB3Nza@dots{}") (host-key "ssh-rsa AAAAB3Nza@dots{}")
(user "alice") (user "alice")
(private-key (private-key
@ -1074,8 +1083,8 @@ The @file{/etc/guix/machines.scm} file typically looks like this:
@noindent @noindent
In the example above we specify a list of two build machines, one for In the example above we specify a list of two build machines, one for
the @code{x86_64} architecture and one for the @code{aarch64} the @code{x86_64} and @code{i686} architectures and one for the
architecture. @code{aarch64} architecture.
In fact, this file is---not surprisingly!---a Scheme file that is In fact, this file is---not surprisingly!---a Scheme file that is
evaluated when the @code{offload} hook is started. Its return value evaluated when the @code{offload} hook is started. Its return value
@ -1095,8 +1104,9 @@ builds. The important fields are:
@item name @item name
The host name of the remote machine. The host name of the remote machine.
@item system @item systems
The system type of the remote machine---e.g., @code{"x86_64-linux"}. The system types the remote machine supports---e.g., @code{(list
"x86_64-linux" "i686-linux")}.
@item user @item user
The user account to use when connecting to the remote machine over SSH. The user account to use when connecting to the remote machine over SSH.
@ -2472,7 +2482,8 @@ as. This means that if you choose to use @command{guix system reconfigure} in
root's login shell, you'll need to @command{guix pull} separately. root's login shell, you'll need to @command{guix pull} separately.
@end quotation @end quotation
Join us on @code{#guix} on the Freenode IRC network or on Now, @pxref{Getting Started}, and
join us on @code{#guix} on the Freenode IRC network or on
@email{guix-devel@@gnu.org} to share your experience! @email{guix-devel@@gnu.org} to share your experience!
@ -2559,6 +2570,210 @@ guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-wit
@code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid @code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid
board, a list of possible boards will be printed. board, a list of possible boards will be printed.
@c *********************************************************************
@node Getting Started
@chapter Getting Started
Presumably, you've reached this section because either you have
installed Guix on top of another distribution (@pxref{Installation}), or
you've installed the standalone Guix System (@pxref{System
Installation}). It's time for you to get started using Guix and this
section aims to help you do that and give you a feel of what it's like.
Guix is about installing software, so probably the first thing you'll
want to do is to actually look for software. Let's say you're looking
for a text editor, you can run:
@example
guix search text editor
@end example
This command shows you a number of matching @dfn{packages}, each time
showing the package's name, version, a description, and additional info.
Once you've found out the one you want to use, let's say Emacs (ah ha!),
you can go ahead and install it (run this command as a regular user,
@emph{no need for root privileges}!):
@example
guix install emacs
@end example
You've installed your first package, congrats! In the process, you've
probably noticed that Guix downloaded pre-built binaries; or, if you
explicitly chose to @emph{not} use pre-built binaries, then probably
Guix is still building software (@pxref{Substitutes}, for more info).
Unless you're using Guix System, the @command{guix install} command must
have printed this hint:
@example
hint: Consider setting the necessary environment variables by running:
GUIX_PROFILE="$HOME/.guix-profile"
. "$GUIX_PROFILE/etc/profile"
Alternately, see `guix package --search-paths -p "$HOME/.guix-profile"'.
@end example
Indeed, you must now tell your shell where @command{emacs} and other
programs installed with Guix are to be found. Pasting the two lines
above will do just that: it will add
@code{$HOME/.guix-profile/bin}---which is where the installed package
is---to the @code{PATH} environment variable. You can paste these two
lines in your shell so they take effect right away, but more importantly
you should add them to @file{~/.bash_profile} (or equivalent file if you
do not use Bash) so that environment variables are set next time you
spawn a shell. You only need to do this once and other search paths
environment variables will be taken care of similarly---e.g., if you
eventually install @code{python} and Python libraries, @code{PYTHONPATH}
will be defined.
You can go on installing packages at your will. To list installed
packages, run:
@example
guix package --list-installed
@end example
To remove a package, you would unsurprisingly run @command{guix remove}.
A distinguishing feature is the ability to @dfn{roll back} any operation
you made---installation, removal, upgrade---by simply typing:
@example
guix package --roll-back
@end example
This is because each operation is in fact a @dfn{transaction} that
creates a new @dfn{generation}. These generations and the difference
between them can be displayed by running:
@example
guix package --list-generations
@end example
Now you know the basics of package management!
@quotation Going further
@xref{Package Management}, for more about package management. You may
like @dfn{declarative} package management with @command{guix package
--manifest}, managing separate @dfn{profiles} with @option{--profile},
deleting old generations, collecting garbage, and other nifty features
that will come in handy as you become more familiar with Guix. If you
are a developer, @pxref{Development} for additional tools. And if
you're curious, @pxref{Features}, to peek under the hood.
@end quotation
Once you've installed a set of packages, you will want to periodically
@emph{upgrade} them to the latest and greatest version. To do that, you
will first pull the latest revision of Guix and its package collection:
@example
guix pull
@end example
The end result is a new @command{guix} command, under
@file{~/.config/guix/current/bin}. Unless you're on Guix System, the
first time you run @command{guix pull}, be sure to follow the hint that
the command prints and, similar to what we saw above, paste these two
lines in your terminal and @file{.bash_profile}:
@example
GUIX_PROFILE="$HOME/.config/guix/current/etc/profile"
. "$GUIX_PROFILE/etc/profile"
@end example
@noindent
You must also instruct your shell to point to this new @command{guix}:
@example
hash guix
@end example
At this point, you're running a brand new Guix. You can thus go ahead
and actually upgrade all the packages you previously installed:
@example
guix upgrade
@end example
As you run this command, you will see that binaries are downloaded (or
perhaps some packages are built), and eventually you end up with the
upgraded packages. Should one of these upgraded packages not be to your
liking, remember you can always roll back!
You can display the exact revision of Guix you're currently using by
running:
@example
guix describe
@end example
The information it displays is @emph{all it takes to reproduce the exact
same Guix}, be it at a different point in time or on a different
machine.
@quotation Going further
@xref{Invoking guix pull}, for more information. @xref{Channels}, on
how to specify additional @dfn{channels} to pull packages from, how to
replicate Guix, and more. You may also find @command{time-machine}
handy (@pxref{Invoking guix time-machine}).
@end quotation
If you installed Guix System, one of the first things you'll want to do
is to upgrade your system. Once you've run @command{guix pull} to get
the latest Guix, you can upgrade the system like this:
@example
sudo guix system reconfigure /etc/config.scm
@end example
Upon completion, the system runs the latest versions of its software
packages. When you eventually reboot, you'll notice a sub-menu in the
bootloader that reads ``Old system generations'': it's what allows you
to boot @emph{an older generation of your system}, should the latest
generation be ``broken'' or otherwise unsatisfying. Just like for
packages, you can always @emph{roll back} to a previous generation
@emph{of the whole system}:
@example
sudo guix system roll-back
@end example
There are many things you'll probably want to tweak on your system:
adding new user accounts, adding new system services, fiddling with the
configuration of those services, etc. The system configuration is
@emph{entirely} described in the @file{/etc/config.scm} file.
@xref{Using the Configuration System}, to learn how to change it.
Now you know enough to get started!
@quotation Resources
The rest of this manual provides a reference for all things Guix. Here
are some additional resources you may find useful:
@itemize
@item
@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of
``how-to'' style of recipes for a variety of applications.
@item
The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference
Card} lists in two pages most of the commands and options you'll ever
need.
@item
The web site contains @uref{https://guix.gnu.org/en/videos/,
instructional videos} covering topics such as everyday use of Guix, how
to get help, and how to become a contributor.
@item
@xref{Documentation}, to learn how to access documentation on your
computer.
@end itemize
We hope you will enjoy Guix as much as the community enjoys building it!
@end quotation
@c ********************************************************************* @c *********************************************************************
@node Package Management @node Package Management
@chapter Package Management @chapter Package Management
@ -2598,6 +2813,10 @@ guix install emacs-guix
@node Features @node Features
@section Features @section Features
Here we assume you've already made your first steps with Guix
(@pxref{Getting Started}) and would like to get an overview about what's
going on under the hood.
When using Guix, each package ends up in the @dfn{package store}, in its When using Guix, each package ends up in the @dfn{package store}, in its
own directory---something that resembles own directory---something that resembles
@file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string. @file{/gnu/store/xxx-package-1.2}, where @code{xxx} is a base32 string.
@ -4358,6 +4577,12 @@ something like this:
(body (en "Don't miss the @@code@{hello@} package!")))) (body (en "Don't miss the @@code@{hello@} package!"))))
@end lisp @end lisp
While the news file is using the Scheme syntax, avoid naming it with a
@file{.scm} extension or else it will get picked up when building the
channel and yield an error since it is not a valid module.
Alternatively, you can move the channel module to a subdirectory and
store the news file in another directory.
The file consists of a list of @dfn{news entries}. Each entry is The file consists of a list of @dfn{news entries}. Each entry is
associated with a commit or tag: it describes changes made in this associated with a commit or tag: it describes changes made in this
commit, possibly in preceding commits as well. Users see entries only commit, possibly in preceding commits as well. Users see entries only
@ -4376,7 +4601,7 @@ you write news entries in English first, the command below creates a PO
file containing the strings to translate: file containing the strings to translate:
@example @example
xgettext -o news.po -l scheme -ken etc/news.scm xgettext -o news.po -l scheme -ken etc/news.txt
@end example @end example
To sum up, yes, you could use your channel as a blog. But beware, this To sum up, yes, you could use your channel as a blog. But beware, this
@ -8317,10 +8542,12 @@ This is the declarative counterpart of @code{text-file}.
@end deffn @end deffn
@deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @ @deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @
[#:options '(#:local-build? #t)] [#:local-build? #t]
[#:options '()]
Return an object representing the store item @var{name}, a file or Return an object representing the store item @var{name}, a file or
directory computed by @var{gexp}. @var{options} directory computed by @var{gexp}. When @var{local-build?} is true (the
is a list of additional arguments to pass to @code{gexp->derivation}. default), the derivation is built locally. @var{options} is a list of
additional arguments to pass to @code{gexp->derivation}.
This is the declarative counterpart of @code{gexp->derivation}. This is the declarative counterpart of @code{gexp->derivation}.
@end deffn @end deffn
@ -11938,7 +12165,7 @@ If the @code{users} list lacks a user account with UID@tie{}0, a
``root'' account with UID@tie{}0 is automatically added. ``root'' account with UID@tie{}0 is automatically added.
@item @code{skeletons} (default: @code{(default-skeletons)}) @item @code{skeletons} (default: @code{(default-skeletons)})
A list target file name/file-like object tuples (@pxref{G-Expressions, A list of target file name/file-like object tuples (@pxref{G-Expressions,
file-like objects}). These are the skeleton files that will be added to file-like objects}). These are the skeleton files that will be added to
the home directory of newly-created user accounts. the home directory of newly-created user accounts.
@ -11956,8 +12183,15 @@ A string denoting the contents of the @file{/etc/issue} file, which is
displayed when users log in on a text console. displayed when users log in on a text console.
@item @code{packages} (default: @code{%base-packages}) @item @code{packages} (default: @code{%base-packages})
The set of packages installed in the global profile, which is accessible A list of packages to be installed in the global profile, which is accessible
at @file{/run/current-system/profile}. at @file{/run/current-system/profile}. Each element is either a package
variable or a package/output tuple. Here's a simple example of both:
@lisp
(cons* git ; the default "out" output
(list git "send-email") ; another output of git
%base-packages) ; the default set
@end lisp
The default set includes core utilities and it is good practice to The default set includes core utilities and it is good practice to
install non-core utilities in user profiles (@pxref{Invoking guix install non-core utilities in user profiles (@pxref{Invoking guix
@ -12159,6 +12393,12 @@ errors before being mounted.
@item @code{create-mount-point?} (default: @code{#f}) @item @code{create-mount-point?} (default: @code{#f})
When true, the mount point is created if it does not exist yet. When true, the mount point is created if it does not exist yet.
@item @code{mount-may-fail?} (default: @code{#f})
When true, this indicates that mounting this file system can fail but
that should not be considered an error. This is useful in unusual
cases; an example of this is @code{efivarfs}, a file system that can
only be mounted on EFI/UEFI systems.
@item @code{dependencies} (default: @code{'()}) @item @code{dependencies} (default: @code{'()})
This is a list of @code{<file-system>} or @code{<mapped-device>} objects This is a list of @code{<file-system>} or @code{<mapped-device>} objects
representing file systems that must be mounted or mapped devices that representing file systems that must be mounted or mapped devices that
@ -12173,6 +12413,19 @@ example for an encrypted partition (@pxref{Mapped Devices}).
@end table @end table
@end deftp @end deftp
@deffn {Scheme Procedure} file-system-label @var{str}
This procedure returns an opaque file system label from @var{str}, a
string:
@lisp
(file-system-label "home")
@result{} #<file-system-label "home">
@end lisp
File system labels are used to refer to file systems by label rather
than by device name. See above for examples.
@end deffn
The @code{(gnu system file-systems)} exports the following useful The @code{(gnu system file-systems)} exports the following useful
variables. variables.
@ -12219,6 +12472,29 @@ and unmount user-space FUSE file systems. This requires the
@code{fuse.ko} kernel module to be loaded. @code{fuse.ko} kernel module to be loaded.
@end defvr @end defvr
The @code{(gnu system uuid)} module provides tools to deal with file
system ``unique identifiers'' (UUIDs).
@deffn {Scheme Procedure} uuid @var{str} [@var{type}]
Return an opaque UUID (unique identifier) object of the given @var{type}
(a symbol) by parsing @var{str} (a string):
@lisp
(uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")
@result{} #<<uuid> type: dce bv: @dots{}>
(uuid "1234-ABCD" 'fat)
@result{} #<<uuid> type: fat bv: @dots{}>
@end lisp
@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat},
@code{ntfs}, or one of the commonly found synonyms for these.
UUIDs are another way to unambiguously refer to file systems in
operating system configuration. See the examples above.
@end deffn
@node Btrfs file system @node Btrfs file system
@subsection Btrfs file system @subsection Btrfs file system
@ -12926,6 +13202,7 @@ declaration.
* Scheduled Job Execution:: The mcron service. * Scheduled Job Execution:: The mcron service.
* Log Rotation:: The rottlog service. * Log Rotation:: The rottlog service.
* Networking Services:: Network setup, SSH daemon, etc. * Networking Services:: Network setup, SSH daemon, etc.
* Unattended Upgrades:: Automated system upgrades.
* X Window:: Graphical display. * X Window:: Graphical display.
* Printing Services:: Local and remote printer support. * Printing Services:: Local and remote printer support.
* Desktop Services:: D-Bus and desktop services. * Desktop Services:: D-Bus and desktop services.
@ -15142,7 +15419,7 @@ a positive integer, ports @var{n} and @var{n}+1 are used for
monitoring the connection, such that port @var{n} is the base monitoring the connection, such that port @var{n} is the base
monitoring port and @code{n+1} is the echo port. When set to monitoring port and @code{n+1} is the echo port. When set to
@code{"@var{n}:@var{m}"} where @var{n} and @var{m} are positive @code{"@var{n}:@var{m}"} where @var{n} and @var{m} are positive
integers, the ports @var{n} and @var{n}+1 are used for monitoring the integers, the ports @var{n} and @var{m} are used for monitoring the
connection, such that port @var{n} is the base monitoring port and connection, such that port @var{n} is the base monitoring port and
@var{m} is the echo port. @var{m} is the echo port.
@ -15298,6 +15575,140 @@ Use this to add additional options and manage shared secrets out-of-band.
@end table @end table
@end deftp @end deftp
@node Unattended Upgrades
@subsection Unattended Upgrades
@cindex unattended upgrades
@cindex upgrades, unattended
Guix provides a service to perform @emph{unattended upgrades}:
periodically, the system automatically reconfigures itself from the
latest Guix. Guix System has several properties that make unattended
upgrades safe:
@itemize
@item
upgrades are transactional (either the upgrade succeeds or it fails, but
you cannot end up with an ``in-between'' system state);
@item
the upgrade log is kept---you can view it with @command{guix system
list-generations}---and you can roll back to any previous generation,
should the upgraded system fail to behave as intended;
@item
channel code is authenticated so you know you can only run genuine code
(@pxref{Channels});
@item
@command{guix system reconfigure} prevents downgrades, which makes it
immune to @dfn{downgrade attacks}.
@end itemize
To set up unattended upgrades, add an instance of
@code{unattended-upgrade-service-type} like the one below to the list of
your operating system services:
@lisp
(service unattended-upgrade-service-type)
@end lisp
The defaults above set up weekly upgrades: every Sunday at midnight.
You do not need to provide the operating system configuration file: it
uses @file{/run/current-system/configuration.scm}, which ensures it
always uses your latest configuration---@pxref{provenance-service-type},
for more information about this file.
There are several things that can be configured, in particular the
periodicity and services (daemons) to be restarted upon completion.
When the upgrade is successful, the service takes care of deleting
system generations older that some threshold, as per @command{guix
system delete-generations}. See the reference below for details.
To ensure that upgrades are actually happening, you can run
@command{guix system describe}. To investigate upgrade failures, visit
the unattended upgrade log file (see below).
@defvr {Scheme Variable} unattended-upgrade-service-type
This is the service type for unattended upgrades. It sets up an mcron
job (@pxref{Scheduled Job Execution}) that runs @command{guix system
reconfigure} from the latest version of the specified channels.
Its value must be a @code{unattended-upgrade-configuration} record (see
below).
@end defvr
@deftp {Data Type} unattended-upgrade-configuration
This data type represents the configuration of the unattended upgrade
service. The following fields are available:
@table @asis
@item @code{schedule} (default: @code{"30 01 * * 0"})
This is the schedule of upgrades, expressed as a gexp containing an
mcron job schedule (@pxref{Guile Syntax, mcron job specifications,,
mcron, GNU@tie{}mcron}).
@item @code{channels} (default: @code{#~%default-channels})
This gexp specifies the channels to use for the upgrade
(@pxref{Channels}). By default, the tip of the official @code{guix}
channel is used.
@item @code{operating-system-file} (default: @code{"/run/current-system/configuration.scm"})
This field specifies the operating system configuration file to use.
The default is to reuse the config file of the current configuration.
There are cases, though, where referring to
@file{/run/current-system/configuration.scm} is not enough, for instance
because that file refers to extra files (SSH public keys, extra
configuration files, etc.) @i{via} @code{local-file} and similar
constructs. For those cases, we recommend something along these lines:
@lisp
(unattended-upgrade-configuration
(operating-system-file
(file-append (local-file "." "config-dir" #:recursive? #t)
"/config.scm")))
@end lisp
The effect here is to import all of the current directory into the
store, and to refer to @file{config.scm} within that directory.
Therefore, uses of @code{local-file} within @file{config.scm} will work
as expected. @xref{G-Expressions}, for information about
@code{local-file} and @code{file-append}.
@item @code{services-to-restart} (default: @code{'(mcron)})
This field specifies the Shepherd services to restart when the upgrade
completes.
Those services are restarted right away upon completion, as with
@command{herd restart}, which ensures that the latest version is
running---remember that by default @command{guix system reconfigure}
only restarts services that are not currently running, which is
conservative: it minimizes disruption but leaves outdated services
running.
By default, the @code{mcron} service is restarted. This ensures that
the latest version of the unattended upgrade job will be used next time.
@item @code{system-expiration} (default: @code{(* 3 30 24 3600)})
This is the expiration time in seconds for system generations. System
generations older that this amount of time are deleted with
@command{guix system delete-generations} when an upgrade completes.
@quotation Note
The unattended upgrade service does not run the garbage collector. You
will probably want to set up your own mcron job to run @command{guix gc}
periodically.
@end quotation
@item @code{maximum-duration} (default: @code{3600})
Maximum duration in seconds for the upgrade; past that time, the upgrade
aborts.
This is primarily useful to ensure the upgrade does not end up
rebuilding or re-downloading ``the world''.
@item @code{log-file} (default: @code{"/var/log/unattended-upgrade.log"})
File where unattended upgrades are logged.
@end table
@end deftp
@node X Window @node X Window
@subsection X Window @subsection X Window
@ -17142,6 +17553,24 @@ The PostgreSQL daemon loads its runtime configuration from @var{config-file},
creates a database cluster with @var{locale} as the default creates a database cluster with @var{locale} as the default
locale, stored in @var{data-directory}. It then listens on @var{port}. locale, stored in @var{data-directory}. It then listens on @var{port}.
If the services fails to start, it may be due to an incompatible
cluster already present in @var{data-directory}. Adjust it (or, if you
don't need the cluster anymore, delete @var{data-directory}), then
restart the service.
Peer authentication is used by default and the @code{postgres} user
account has no shell, which prevents the direct execution of @code{psql}
commands as this user. To use @code{psql}, you can temporarily log in
as @code{postgres} using a shell, create a PostgreSQL superuser with the
same name as one of the system users and then create the associated
database.
@example
sudo -u postgres -s /bin/sh
createuser --interactive
createdb $MY_USER_LOGIN # Replace appropriately.
@end example
@cindex postgresql extension-packages @cindex postgresql extension-packages
Additional extensions are loaded from packages listed in Additional extensions are loaded from packages listed in
@var{extension-packages}. Extensions are available at runtime. For instance, @var{extension-packages}. Extensions are available at runtime. For instance,
@ -23508,17 +23937,17 @@ source is detected. More information can be found at
@uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}. @uref{https://linrunner.de/en/tlp/tlp.html, TLP home page}.
@deffn {Scheme Variable} tlp-service-type @deffn {Scheme Variable} tlp-service-type
The service type for the TLP tool. Its value should be a valid The service type for the TLP tool. The default settings are optimised
TLP configuration (see below). To use the default settings, simply for battery life on most systems, but you can tweak them to your heart's
write: content by adding a valid @code{tlp-configuration}:
@lisp @lisp
(service tlp-service-type) (service tlp-service-type
(tlp-configuration
(cpu-scaling-governor-on-ac (list "performance"))
(sched-powersave-on-bat? #t)))
@end lisp @end lisp
@end deffn @end deffn
By default TLP does not need much configuration but most TLP parameters
can be tweaked using @code{tlp-configuration}.
Each parameter definition is preceded by its type; for example, Each parameter definition is preceded by its type; for example,
@samp{boolean foo} indicates that the @code{foo} parameter @samp{boolean foo} indicates that the @code{foo} parameter
should be specified as a boolean. Types starting with should be specified as a boolean. Types starting with
@ -24852,7 +25281,7 @@ Maximum number of backup files to keep.
Defaults to @samp{3} Defaults to @samp{3}
@end deftypevr @end deftypevr
@node Transparent Emulation with QEMU
@subsubheading Transparent Emulation with QEMU @subsubheading Transparent Emulation with QEMU
@cindex emulation @cindex emulation
@ -24943,6 +25372,7 @@ Return the name of @var{platform}---a string such as @code{"arm"}.
@cindex @code{hurd} @cindex @code{hurd}
@cindex the Hurd @cindex the Hurd
@cindex childhurd
Service @code{hurd-vm} provides support for running GNU/Hurd in a Service @code{hurd-vm} provides support for running GNU/Hurd in a
virtual machine (VM), a so-called ``Childhurd''. The virtual machine is virtual machine (VM), a so-called ``Childhurd''. The virtual machine is
@ -25015,15 +25445,41 @@ By default, it produces
@lisp @lisp
'("--device" "rtl8139,netdev=net0" '("--device" "rtl8139,netdev=net0"
"--netdev" "user,id=net0\ "--netdev" "user,id=net0\
,hostfwd=tcp:127.0.0.1:<secrets-port>-:1004\
,hostfwd=tcp:127.0.0.1:<ssh-port>-:2222\ ,hostfwd=tcp:127.0.0.1:<ssh-port>-:2222\
,hostfwd=tcp:127.0.0.1:<vnc-port>-:5900") ,hostfwd=tcp:127.0.0.1:<vnc-port>-:5900")
@end lisp @end lisp
with forwarded ports with forwarded ports
@example @example
<ssh-port>: @code{(+ 11004 (* 1000 @var{ID}))}
<ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))} <ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))}
<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))} <vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
@end example @end example
@item @code{secret-root} (default: @file{/etc/childhurd})
The root directory with out-of-band secrets to be installed into the
childhurd once it runs. Childhurds are volatile which means that on
every startup, secrets such as the SSH host keys and Guix signing key
are recreated.
If the @file{/etc/childhurd} directory does not exist, the
@code{secret-service} running in the Childhurd will be sent an empty
list of secrets.
Typical use to populate @file{"/etc/childhurd"} with a tree of
non-volatile secrets, like so
@example
/etc/childhurd/etc/guix/signing-key.pub
/etc/childhurd/etc/guix/signing-key.sec
/etc/childhurd/etc/ssh/ssh_host_ed25519_key
/etc/childhurd/etc/ssh/ssh_host_ecdsa_key
/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub
/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub
@end example
to be sent to the Childhurd, including permissions.
@end table @end table
@end deftp @end deftp
@ -25455,7 +25911,7 @@ When true, the daemon performs additional logging for debugging purposes.
@defvr {Scheme Variable} ganeti-luxid-service-type @defvr {Scheme Variable} ganeti-luxid-service-type
@command{ganeti-luxid} is a daemon used to answer queries related to the @command{ganeti-luxid} is a daemon used to answer queries related to the
configuration and the current live state of a Ganeti cluster. Additionally, configuration and the current live state of a Ganeti cluster. Additionally,
it is the authorative daemon for the Ganeti job queue. Jobs can be it is the authoritative daemon for the Ganeti job queue. Jobs can be
submitted via this daemon and it schedules and starts them. submitted via this daemon and it schedules and starts them.
It takes a @code{ganeti-luxid-configuration} object. It takes a @code{ganeti-luxid-configuration} object.
@ -27147,6 +27603,51 @@ parameters, can be done as follow:
@end lisp @end lisp
@end deffn @end deffn
@cindex zram
@cindex compressed swap
@cindex Compressed RAM-based block devices
@subsubheading Zram Device Service
The Zram device service provides a compressed swap device in system
memory. The Linux Kernel documentation has more information about
@uref{https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram}
devices.
@deffn {Scheme Variable} zram-device-service-type
This service creates the zram block device, formats it as swap and
enables it as a swap device. The service's value is a
@code{zram-device-configuration} record.
@deftp {Data Type} zram-device-configuration
This is the data type representing the configuration for the zram-device
service.
@table @asis
@item @code{size} (default @var{"1G"})
This is the amount of space you wish to provide for the zram device. It
accepts a string and can be a number of bytes or use a suffix, eg.:
@var{"512M"} or @var{1024000}.
@item @code{compression-algorithm} (default @var{'lzo})
This is the compression algorithm you wish to use. It is difficult to
list all the possible compression options, but common ones supported by
Guix's Linux Libre Kernel include @var{'lzo}, @var{'lz4} and @var{'zstd}.
@item @code{memory-limit} (default @var{0})
This is the maximum amount of memory which the zram device can use.
Setting it to '0' disables the limit. While it is generally expected
that compression will be 2:1, it is possible that uncompressable data
can be written to swap and this is a method to limit how much memory can
be used. It accepts a string and can be a number of bytes or use a
suffix, eg.: @var{"2G"}.
@item @code{priority} (default @var{-1})
This is the priority of the swap device created from the zram device.
@code{swapon} accepts values between -1 and 32767, with higher values
indicating higher priority. Higher priority swap will generally be used
first.
@end table
@end deftp
@end deffn
@node Hurd Services @node Hurd Services
@subsection Hurd Services @subsection Hurd Services
@ -27466,6 +27967,9 @@ Enable or disable the use of the Docker user-land networking proxy.
@item @code{debug?} (default @code{#f}) @item @code{debug?} (default @code{#f})
Enable or disable debug output. Enable or disable debug output.
@item @code{enable-iptables?} (default @code{#t})
Enable or disable the addition of iptables rules.
@end table @end table
@end deftp @end deftp
@ -27500,10 +28004,12 @@ Network access
@command{auditctl} from the @code{audit} package can be used in order @command{auditctl} from the @code{audit} package can be used in order
to add or remove events to be tracked (until the next reboot). to add or remove events to be tracked (until the next reboot).
In order to permanently track events, put the command line arguments In order to permanently track events, put the command line arguments
of auditctl into @file{/etc/audit/audit.rules}. of auditctl into a file called @code{audit.rules} in the configuration
directory (see below).
@command{aureport} from the @code{audit} package can be used in order @command{aureport} from the @code{audit} package can be used in order
to view a report of all recorded events. to view a report of all recorded events.
The audit daemon usually logs into the directory @file{/var/log/audit}. The audit daemon by default logs into the file
@file{/var/log/audit.log}.
@end defvr @end defvr
@ -27515,6 +28021,11 @@ This is the data type representing the configuration of auditd.
@item @code{audit} (default: @code{audit}) @item @code{audit} (default: @code{audit})
The audit package to use. The audit package to use.
@item @code{configuration-directory} (default: @code{%default-auditd-configuration-directory})
The directory containing the configuration file for the audit package, which
must be named @code{auditd.conf}, and optionally some audit rules to
instantiate on startup.
@end table @end table
@end deftp @end deftp
@ -27561,7 +28072,7 @@ The common way to create this file is as follows:
(app (string-append out "/bin/" ,name)) (app (string-append out "/bin/" ,name))
(Rbin (string-append (assoc-ref %build-inputs "r-min") (Rbin (string-append (assoc-ref %build-inputs "r-min")
"/bin/Rscript"))) "/bin/Rscript")))
@dots{} ;; @dots{}
(mkdir-p (string-append out "/bin")) (mkdir-p (string-append out "/bin"))
(call-with-output-file app (call-with-output-file app
(lambda (port) (lambda (port)
@ -27570,8 +28081,7 @@ The common way to create this file is as follows:
library(shiny) library(shiny)
setwd(\"~a\") setwd(\"~a\")
runApp(launch.browser=0, port=4202)~%\n" runApp(launch.browser=0, port=4202)~%\n"
Rbin targetdir))) Rbin targetdir))))
@dots{}
@end lisp @end lisp
@end table @end table
@ -27637,6 +28147,9 @@ This is a list of strings or objects appended to the
This is a list of strings or objects appended to the configuration file. This is a list of strings or objects appended to the configuration file.
It is used to pass extra text to be added verbatim to the configuration It is used to pass extra text to be added verbatim to the configuration
file. file.
@item @code{extra-options} (default: @code{'()})
Extra command line options for @code{nix-service-type}.
@end table @end table
@end deftp @end deftp
@ -28602,7 +29115,9 @@ the @option{--image-size} option is ignored in the case of
@code{docker-image}. @code{docker-image}.
You can specify the root file system type by using the You can specify the root file system type by using the
@option{--file-system-type} option. It defaults to @code{ext4}. @option{--file-system-type} option. It defaults to @code{ext4}. When its
value is @code{iso9660}, the @option{--label} option can be used to specify
a volume ID with @code{disk-image}.
When using @code{vm-image}, the returned image is in qcow2 format, which When using @code{vm-image}, the returned image is in qcow2 format, which
the QEMU emulator can efficiently use. @xref{Running Guix in a VM}, the QEMU emulator can efficiently use. @xref{Running Guix in a VM},
@ -29030,6 +29545,16 @@ When @code{host-key} is @code{#f}, the server is authenticated against
the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} the @file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh}
client does. client does.
@item @code{allow-downgrades?} (default: @code{#f})
Whether to allow potential downgrades.
Like @command{guix system reconfigure}, @command{guix deploy} compares
the channel commits currently deployed on the remote host (as returned
by @command{guix system describe}) to those currently in use (as
returned by @command{guix describe}) to determine whether commits
currently in use are descendants of those deployed. When this is not
the case and @code{allow-downgrades?} is false, it raises an error.
This ensures you do not accidentally downgrade remote machines.
@end table @end table
@end deftp @end deftp
@ -29526,6 +30051,23 @@ calls it, passing it the initial value of the service as the first
argument and the result of applying @code{compose} to the extension argument and the result of applying @code{compose} to the extension
values as the second argument. It must return a value that is a valid values as the second argument. It must return a value that is a valid
parameter value for the service instance. parameter value for the service instance.
@item @code{description}
This is a string, possibly using Texinfo markup, describing in a couple
of sentences what the service is about. This string allows users to
find about the service through @command{guix system search}
(@pxref{Invoking guix system}).
@item @code{default-value} (default: @code{&no-default-value})
The default value associated for instances of this service type. This
allows users to use the @code{service} form without its second argument:
@lisp
(service @var{type})
@end lisp
The returned service in this case has the default value specified by
@var{type}.
@end table @end table
@xref{Service Types and Services}, for examples. @xref{Service Types and Services}, for examples.
@ -29615,6 +30157,7 @@ extend it by passing it lists of packages to add to the system profile.
@end defvr @end defvr
@cindex provenance tracking, of the operating system @cindex provenance tracking, of the operating system
@anchor{provenance-service-type}
@defvr {Scheme Variable} provenance-service-type @defvr {Scheme Variable} provenance-service-type
This is the type of the service that records @dfn{provenance meta-data} This is the type of the service that records @dfn{provenance meta-data}
in the system itself. It creates several files under in the system itself. It creates several files under

View file

@ -4,6 +4,7 @@
;; Copyright © 2017 Alex Kost <alezost@gmail.com> ;; Copyright © 2017 Alex Kost <alezost@gmail.com>
;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;; This file is part of GNU Guix. ;; This file is part of GNU Guix.
@ -93,7 +94,7 @@
;; Indent the definition of PACKAGE-NAME in FILE-NAME. ;; Indent the definition of PACKAGE-NAME in FILE-NAME.
(find-file file-name) (find-file file-name)
(goto-char (point-min)) (goto-char (point-min))
(if (re-search-forward (concat "^(define\\(-public\\) +" (if (re-search-forward (concat "^(define\\(\\|-public\\) +"
package-name) package-name)
nil t) nil t)
(let ((indent-tabs-mode nil)) (let ((indent-tabs-mode nil))

10
gnu.scm
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, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2020 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>
;;; ;;;
@ -20,7 +20,7 @@
(define-module (gnu) (define-module (gnu)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix utils) #:use-module (guix diagnostics)
#:use-module (srfi srfi-34) #:use-module (srfi srfi-34)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -78,10 +78,8 @@
(raise (raise
(apply (apply
make-compound-condition make-compound-condition
(condition (formatted-message (G_ "module ~a not found")
(&message module)
(message (format #f (G_ "module ~a not found")
module))))
(condition (condition
(&error-location (location location))) (&error-location (location location)))
(or (and=> (make-hint module) list) (or (and=> (make-hint module) list)

View file

@ -476,6 +476,42 @@ not valid header was found."
(let ((uuid (sub-bytevector header 168 36))) (let ((uuid (sub-bytevector header 168 36)))
(string->uuid (utf8->string uuid)))) (string->uuid (utf8->string uuid))))
;;;
;;; NTFS file systems.
;;;
;; Taken from <linux-libre>/fs/ntfs/layout.h
(define-syntax %ntfs-endianness
;; Endianness of NTFS file systems.
(identifier-syntax (endianness little)))
(define (ntfs-superblock? sblock)
"Return #t when SBLOCK is a NTFS superblock."
(bytevector=? (sub-bytevector sblock 3 8)
(string->utf8 "NTFS ")))
(define (read-ntfs-superblock device)
"Return the raw contents of DEVICE's NTFS superblock as a bytevector, or #f
if DEVICE does not contain a NTFS file system."
(read-superblock device 0 511 ntfs-superblock?))
(define (ntfs-superblock-uuid sblock)
"Return the UUID of NTFS superblock SBLOCK as a 8-byte bytevector."
(sub-bytevector sblock 72 8))
;; TODO: Add ntfs-superblock-volume-name. The partition label is not stored
;; in the BOOT SECTOR like the UUID, but in the MASTER FILE TABLE, which seems
;; way harder to access.
(define (check-ntfs-file-system device)
"Return the health of a NTFS file system on DEVICE."
(match (status:exit-val
(system* "ntfsfix" device))
(0 'pass)
(_ 'fatal-error)))
;;; ;;;
;;; Partition lookup. ;;; Partition lookup.
@ -585,7 +621,9 @@ partition field reader that returned a value."
(partition-field-reader read-jfs-superblock (partition-field-reader read-jfs-superblock
jfs-superblock-uuid) jfs-superblock-uuid)
(partition-field-reader read-f2fs-superblock (partition-field-reader read-f2fs-superblock
f2fs-superblock-uuid))) f2fs-superblock-uuid)
(partition-field-reader read-ntfs-superblock
ntfs-superblock-uuid)))
(define read-partition-label (define read-partition-label
(cut read-partition-field <> %partition-label-readers)) (cut read-partition-field <> %partition-label-readers))
@ -684,6 +722,7 @@ were found."
((string-suffix? "fat" type) check-fat-file-system) ((string-suffix? "fat" type) check-fat-file-system)
((string-prefix? "jfs" type) check-jfs-file-system) ((string-prefix? "jfs" type) check-jfs-file-system)
((string-prefix? "f2fs" type) check-f2fs-file-system) ((string-prefix? "f2fs" type) check-f2fs-file-system)
((string-prefix? "ntfs" type) check-ntfs-file-system)
((string-prefix? "nfs" type) (const 'pass)) ((string-prefix? "nfs" type) (const 'pass))
(else #f))) (else #f)))
@ -775,26 +814,33 @@ corresponds to the symbols listed in FLAGS."
(when (file-system-check? fs) (when (file-system-check? fs)
(check-file-system source type)) (check-file-system source type))
;; Create the mount point. Most of the time this is a directory, but (catch 'system-error
;; in the case of a bind mount, a regular file or socket may be needed. (lambda ()
(if (and (= MS_BIND (logand flags MS_BIND)) ;; Create the mount point. Most of the time this is a directory, but
(not (file-is-directory? source))) ;; in the case of a bind mount, a regular file or socket may be
(unless (file-exists? mount-point) ;; needed.
(mkdir-p (dirname mount-point)) (if (and (= MS_BIND (logand flags MS_BIND))
(call-with-output-file mount-point (const #t))) (not (file-is-directory? source)))
(mkdir-p mount-point)) (unless (file-exists? mount-point)
(mkdir-p (dirname mount-point))
(call-with-output-file mount-point (const #t)))
(mkdir-p mount-point))
(cond (cond
((string-prefix? "nfs" type) ((string-prefix? "nfs" type)
(mount-nfs source mount-point type flags options)) (mount-nfs source mount-point type flags options))
(else (else
(mount source mount-point type flags options))) (mount source mount-point type flags options)))
;; For read-only bind mounts, an extra remount is needed, as per ;; For read-only bind mounts, an extra remount is needed, as per
;; <http://lwn.net/Articles/281157/>, which still applies to Linux 4.0. ;; <http://lwn.net/Articles/281157/>, which still applies to Linux
(when (and (= MS_BIND (logand flags MS_BIND)) ;; 4.0.
(= MS_RDONLY (logand flags MS_RDONLY))) (when (and (= MS_BIND (logand flags MS_BIND))
(let ((flags (logior MS_BIND MS_REMOUNT MS_RDONLY))) (= MS_RDONLY (logand flags MS_RDONLY)))
(mount source mount-point type flags #f))))) (let ((flags (logior MS_BIND MS_REMOUNT MS_RDONLY)))
(mount source mount-point type flags #f))))
(lambda args
(or (file-system-mount-may-fail? fs)
(apply throw args))))))
;;; file-systems.scm ends here ;;; file-systems.scm ends here

View file

@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build install) (define-module (gnu build install)
#:use-module (guix build syscalls)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix build store-copy) #:use-module (guix build store-copy)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
@ -26,7 +27,9 @@
evaluate-populate-directive evaluate-populate-directive
populate-root-file-system populate-root-file-system
install-database-and-gc-roots install-database-and-gc-roots
populate-single-profile-directory)) populate-single-profile-directory
mount-cow-store
unmount-cow-store))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -229,4 +232,43 @@ This is used to create the self-contained tarballs with 'guix pack'."
(_ (_
#t))) #t)))
(define (mount-cow-store target backing-directory)
"Make the store copy-on-write, using TARGET as the backing store. This is
useful when TARGET is on a hard disk, whereas the current store is on a RAM
disk."
(define (set-store-permissions directory)
"Set the right perms on DIRECTORY to use it as the store."
(chown directory 0 30000) ;use the fixed 'guixbuild' GID
(chmod directory #o1775))
(let ((tmpdir (string-append target "/tmp")))
(mkdir-p tmpdir)
(mount tmpdir "/tmp" "none" MS_BIND))
(let* ((rw-dir (string-append target backing-directory))
(work-dir (string-append rw-dir "/../.overlayfs-workdir")))
(mkdir-p rw-dir)
(mkdir-p work-dir)
(mkdir-p "/.rw-store")
(set-store-permissions rw-dir)
(set-store-permissions "/.rw-store")
;; Mount the overlay, then atomically make it the store.
(mount "none" "/.rw-store" "overlay" 0
(string-append "lowerdir=" (%store-directory) ","
"upperdir=" rw-dir ","
"workdir=" work-dir))
(mount "/.rw-store" (%store-directory) "" MS_MOVE)
(rmdir "/.rw-store")))
(define (unmount-cow-store target backing-directory)
"Unmount copy-on-write store."
(let ((tmp-dir "/remove"))
(mkdir-p tmp-dir)
(mount (%store-directory) tmp-dir "" MS_MOVE)
(umount tmp-dir)
(rmdir tmp-dir)
(delete-file-recursively
(string-append target backing-directory))))
;;; install.scm ends here ;;; install.scm ends here

View file

@ -243,7 +243,8 @@ that host UIDs (respectively GIDs) map to in the namespace."
(match (read child) (match (read child)
('ready ('ready
(purify-environment) (purify-environment)
(when (memq 'mnt namespaces) (when (and (not (null? mounts))
(memq 'mnt namespaces))
(catch #t (catch #t
(lambda () (lambda ()
(mount-file-systems root mounts (mount-file-systems root mounts

View file

@ -24,6 +24,7 @@
#:use-module (guix build syscalls) #:use-module (guix build syscalls)
#:use-module ((guix build utils) #:select (find-files invoke)) #:use-module ((guix build utils) #:select (find-files invoke))
#:use-module (guix build union) #:use-module (guix build union)
#:autoload (zlib) (call-with-gzip-input-port)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -94,10 +95,28 @@ string list."
(cons (string->symbol (string-take str =)) (cons (string->symbol (string-take str =))
(string-drop str (+ 1 =))))) (string-drop str (+ 1 =)))))
;; Matches kernel modules, without compression, with GZIP compression or with
;; XZ compression.
(define module-regex "\\.ko(\\.gz|\\.xz)?$")
(define (modinfo-section-contents file) (define (modinfo-section-contents file)
"Return the contents of the '.modinfo' section of FILE as a list of "Return the contents of the '.modinfo' section of FILE as a list of
key/value pairs.." key/value pairs.."
(let* ((bv (call-with-input-file file get-bytevector-all)) (define (get-bytevector file)
(cond
((string-suffix? ".ko.gz" file)
(let ((port (open-file file "r0")))
(dynamic-wind
(lambda ()
#t)
(lambda ()
(call-with-gzip-input-port port get-bytevector-all))
(lambda ()
(close-port port)))))
(else
(call-with-input-file file get-bytevector-all))))
(let* ((bv (get-bytevector file))
(elf (parse-elf bv)) (elf (parse-elf bv))
(section (elf-section-by-name elf ".modinfo")) (section (elf-section-by-name elf ".modinfo"))
(modinfo (section-contents elf section))) (modinfo (section-contents elf section)))
@ -110,7 +129,7 @@ key/value pairs.."
(define (module-formal-name file) (define (module-formal-name file)
"Return the module name of FILE as it appears in its info section. Usually "Return the module name of FILE as it appears in its info section. Usually
the module name is the same as the base name of FILE, modulo hyphens and minus the module name is the same as the base name of FILE, modulo hyphens and minus
the \".ko\" extension." the \".ko[.gz|.xz]\" extension."
(match (assq 'name (modinfo-section-contents file)) (match (assq 'name (modinfo-section-contents file))
(('name . name) name) (('name . name) name)
(#f #f))) (#f #f)))
@ -171,14 +190,25 @@ modules that can be postloaded, of the soft dependencies of module FILE."
(_ #f)) (_ #f))
(modinfo-section-contents file)))) (modinfo-section-contents file))))
(define dot-ko (define (strip-extension filename)
(cut string-append <> ".ko")) (let ((extension (string-index filename #\.)))
(if extension
(string-take filename extension)
filename)))
(define (ensure-dot-ko name) (define (dot-ko name compression)
"Return NAME with a '.ko' prefix appended, unless it already has it." (let ((suffix (match compression
(if (string-suffix? ".ko" name) ('xz ".ko.xz")
('gzip ".ko.gz")
(else ".ko"))))
(string-append name suffix)))
(define (ensure-dot-ko name compression)
"Return NAME with a '.ko[.gz|.xz]' suffix appended, unless it already has
it."
(if (string-contains name ".ko")
name name
(dot-ko name))) (dot-ko name compression)))
(define (normalize-module-name module) (define (normalize-module-name module)
"Return the \"canonical\" name for MODULE, replacing hyphens with "Return the \"canonical\" name for MODULE, replacing hyphens with
@ -191,9 +221,9 @@ underscores."
module)) module))
(define (file-name->module-name file) (define (file-name->module-name file)
"Return the module name corresponding to FILE, stripping the trailing '.ko' "Return the module name corresponding to FILE, stripping the trailing
and normalizing it." '.ko[.gz|.xz]' and normalizing it."
(normalize-module-name (basename file ".ko"))) (normalize-module-name (strip-extension (basename file))))
(define (find-module-file directory module) (define (find-module-file directory module)
"Lookup module NAME under DIRECTORY, and return its absolute file name. "Lookup module NAME under DIRECTORY, and return its absolute file name.
@ -208,19 +238,19 @@ whereas file names often, but not always, use hyphens. Examples:
;; List of possible file names. XXX: It would of course be cleaner to ;; List of possible file names. XXX: It would of course be cleaner to
;; have a database that maps module names to file names and vice versa, ;; have a database that maps module names to file names and vice versa,
;; but everyone seems to be doing hacks like this one. Oh well! ;; but everyone seems to be doing hacks like this one. Oh well!
(map ensure-dot-ko (delete-duplicates
(delete-duplicates (list module
(list module (normalize-module-name module)
(normalize-module-name module) (string-map (lambda (chr) ;converse of 'normalize-module-name'
(string-map (lambda (chr) ;converse of 'normalize-module-name' (case chr
(case chr ((#\_) #\-)
((#\_) #\-) (else chr)))
(else chr))) module))))
module)))))
(match (find-files directory (match (find-files directory
(lambda (file stat) (lambda (file stat)
(member (basename file) names))) (member (strip-extension
(basename file)) names)))
((file) ((file)
file) file)
(() (()
@ -290,8 +320,8 @@ not a file name."
(recursive? #t) (recursive? #t)
(lookup-module dot-ko) (lookup-module dot-ko)
(black-list (module-black-list))) (black-list (module-black-list)))
"Load Linux module from FILE, the name of a '.ko' file; return true on "Load Linux module from FILE, the name of a '.ko[.gz|.xz]' file; return true
success, false otherwise. When RECURSIVE? is true, load its dependencies on success, false otherwise. When RECURSIVE? is true, load its dependencies
first (à la 'modprobe'.) The actual files containing modules depended on are first (à la 'modprobe'.) The actual files containing modules depended on are
obtained by calling LOOKUP-MODULE with the module name. Modules whose name obtained by calling LOOKUP-MODULE with the module name. Modules whose name
appears in BLACK-LIST are not loaded." appears in BLACK-LIST are not loaded."
@ -523,16 +553,29 @@ are required to access DEVICE."
;;; Module databases. ;;; Module databases.
;;; ;;;
(define (module-name->file-name/guess directory name) (define* (module-name->file-name/guess directory name
#:key compression)
"Guess the file name corresponding to NAME, a module name. That doesn't "Guess the file name corresponding to NAME, a module name. That doesn't
always work because sometimes underscores in NAME map to hyphens (e.g., always work because sometimes underscores in NAME map to hyphens (e.g.,
\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")." \"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\"). If the module is
(string-append directory "/" (ensure-dot-ko name))) compressed then COMPRESSED can be set to 'xz or 'gzip, depending on the
compression type."
(string-append directory "/" (ensure-dot-ko name compression)))
(define (module-name-lookup directory) (define (module-name-lookup directory)
"Return a one argument procedure that takes a module name (e.g., "Return a one argument procedure that takes a module name (e.g.,
\"input_leds\") and returns its absolute file name (e.g., \"input_leds\") and returns its absolute file name (e.g.,
\"/.../input-leds.ko\")." \"/.../input-leds.ko\")."
(define (guess-file-name name)
(let ((names (list
(module-name->file-name/guess directory name)
(module-name->file-name/guess directory name
#:compression 'xz)
(module-name->file-name/guess directory name
#:compression 'gzip))))
(or (find file-exists? names)
(first names))))
(catch 'system-error (catch 'system-error
(lambda () (lambda ()
(define mapping (define mapping
@ -541,23 +584,23 @@ always work because sometimes underscores in NAME map to hyphens (e.g.,
(lambda (name) (lambda (name)
(or (assoc-ref mapping name) (or (assoc-ref mapping name)
(module-name->file-name/guess directory name)))) (guess-file-name name))))
(lambda args (lambda args
(if (= ENOENT (system-error-errno args)) (if (= ENOENT (system-error-errno args))
(cut module-name->file-name/guess directory <>) (cut guess-file-name <>)
(apply throw args))))) (apply throw args)))))
(define (write-module-name-database directory) (define (write-module-name-database directory)
"Write a database that maps \"module names\" as they appear in the relevant "Write a database that maps \"module names\" as they appear in the relevant
ELF section of '.ko' files, to actual file names. This format is ELF section of '.ko[.gz|.xz]' files, to actual file names. This format is
Guix-specific. It aims to deal with inconsistent naming, in particular Guix-specific. It aims to deal with inconsistent naming, in particular
hyphens vs. underscores." hyphens vs. underscores."
(define mapping (define mapping
(map (lambda (file) (map (lambda (file)
(match (module-formal-name file) (match (module-formal-name file)
(#f (cons (basename file ".ko") file)) (#f (cons (strip-extension (basename file)) file))
(name (cons name file)))) (name (cons name file))))
(find-files directory "\\.ko$"))) (find-files directory module-regex)))
(call-with-output-file (string-append directory "/modules.name") (call-with-output-file (string-append directory "/modules.name")
(lambda (port) (lambda (port)
@ -569,12 +612,12 @@ hyphens vs. underscores."
(pretty-print mapping port)))) (pretty-print mapping port))))
(define (write-module-alias-database directory) (define (write-module-alias-database directory)
"Traverse the '.ko' files in DIRECTORY and create the corresponding "Traverse the '.ko[.gz|.xz]' files in DIRECTORY and create the corresponding
'modules.alias' file." 'modules.alias' file."
(define aliases (define aliases
(map (lambda (file) (map (lambda (file)
(cons (file-name->module-name file) (module-aliases file))) (cons (file-name->module-name file) (module-aliases file)))
(find-files directory "\\.ko$"))) (find-files directory module-regex)))
(call-with-output-file (string-append directory "/modules.alias") (call-with-output-file (string-append directory "/modules.alias")
(lambda (port) (lambda (port)
@ -616,7 +659,7 @@ are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f."
(char-set-complement (char-set #\-))) (char-set-complement (char-set #\-)))
(define (write-module-device-database directory) (define (write-module-device-database directory)
"Traverse the '.ko' files in DIRECTORY and create the corresponding "Traverse the '.ko[.gz|.xz]' files in DIRECTORY and create the corresponding
'modules.devname' file. This file contains information about modules that can 'modules.devname' file. This file contains information about modules that can
be loaded on-demand, such as file system modules." be loaded on-demand, such as file system modules."
(define aliases (define aliases
@ -624,7 +667,7 @@ be loaded on-demand, such as file system modules."
(match (aliases->device-tuple (module-aliases file)) (match (aliases->device-tuple (module-aliases file))
(#f #f) (#f #f)
(tuple (cons (file-name->module-name file) tuple)))) (tuple (cons (file-name->module-name file) tuple))))
(find-files directory "\\.ko$"))) (find-files directory module-regex)))
(call-with-output-file (string-append directory "/modules.devname") (call-with-output-file (string-append directory "/modules.devname")
(lambda (port) (lambda (port)

View file

@ -0,0 +1,137 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build secret-service)
#:use-module (guix build utils)
#:use-module (srfi srfi-26)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 binary-ports)
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:export (secret-service-receive-secrets
secret-service-send-secrets))
;;; Commentary:
;;;
;;; Utility procedures for copying secrets into a VM.
;;;
;;; Code:
(define* (secret-service-send-secrets port secret-root #:key (retry 60))
"Copy all files under SECRET-ROOT using TCP to secret-service listening at
local PORT. If connect fails, sleep 1s and retry RETRY times."
(define (file->file+size+mode file-name)
(let ((stat (stat file-name))
(target (substring file-name (string-length secret-root))))
(list target (stat:size stat) (stat:mode stat))))
(format (current-error-port) "sending secrets to ~a~%" port)
(let ((sock (socket AF_INET SOCK_STREAM 0))
(addr (make-socket-address AF_INET INADDR_LOOPBACK port)))
;; connect to wait for port
(let loop ((retry retry))
(catch 'system-error
(cute connect sock addr)
(lambda (key . args)
(when (zero? retry)
(apply throw key args))
(format (current-error-port) "retrying connection~%")
(sleep 1)
(loop (1- retry)))))
(format (current-error-port) "connected! sending files in ~s %~"
secret-root)
(let* ((files (if secret-root (find-files secret-root) '()))
(files-sizes-modes (map file->file+size+mode files))
(secrets `(secrets
(version 0)
(files ,files-sizes-modes))))
(write secrets sock)
(for-each (compose (cute dump-port <> sock)
(cute open-input-file <>))
files))))
(define (secret-service-receive-secrets port)
"Listen to local PORT and wait for a secret service client to send secrets.
Write them to the file system."
(define (wait-for-client port)
;; Wait for a TCP connection on PORT. Note: We cannot use the
;; virtio-serial ports, which would be safer, because they are
;; (presumably) unsupported on GNU/Hurd.
(let ((sock (socket AF_INET SOCK_STREAM 0)))
(bind sock AF_INET INADDR_ANY port)
(listen sock 1)
(format (current-error-port)
"waiting for secrets on port ~a...~%"
port)
(match (accept sock)
((client . address)
(format (current-error-port) "client connection from ~a~%"
(inet-ntop (sockaddr:fam address)
(sockaddr:addr address)))
(close-port sock)
client))))
;; TODO: Remove when (@ (guix build utils) dump-port) has a 'size'
;; parameter.
(define (dump in out size)
;; Copy SIZE bytes from IN to OUT.
(define buf-size 65536)
(define buf (make-bytevector buf-size))
(let loop ((left size))
(if (<= left 0)
0
(let ((read (get-bytevector-n! in buf 0 (min left buf-size))))
(if (eof-object? read)
left
(begin
(put-bytevector out buf 0 read)
(loop (- left read))))))))
(define (read-secrets port)
;; Read secret files from PORT and install them.
(match (false-if-exception (read port))
(('secrets ('version 0)
('files ((files sizes modes) ...)))
(for-each (lambda (file size mode)
(format (current-error-port)
"installing file '~a' (~a bytes)...~%"
file size)
(mkdir-p (dirname file))
(call-with-output-file file
(lambda (output)
(dump port output size)
(chmod file mode))))
files sizes modes))
(_
(format (current-error-port)
"invalid secrets received~%")
#f)))
(let* ((port (wait-for-client port))
(result (read-secrets port)))
(close-port port)
result))
;;; secret-service.scm ends here

View file

@ -20,10 +20,12 @@
#:use-module (gnu system file-systems) #:use-module (gnu system file-systems)
#:use-module (gnu build linux-container) #:use-module (gnu build linux-container)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix utils)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:export (make-forkexec-constructor/container)) #:export (make-forkexec-constructor/container
fork+exec-command/container))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -93,7 +95,8 @@
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency. ;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
(module-autoload! (current-module) (module-autoload! (current-module)
'(shepherd service) '(shepherd service)
'(read-pid-file exec-command %precious-signals)) '(fork+exec-command read-pid-file exec-command
%precious-signals))
(module-autoload! (current-module) (module-autoload! (current-module)
'(shepherd system) '(unblock-signals)) '(shepherd system) '(unblock-signals))
@ -188,6 +191,17 @@ namespace, in addition to essential bind-mounts such /proc."
(read-pid-file pid-file #:max-delay pid-file-timeout)) (read-pid-file pid-file #:max-delay pid-file-timeout))
pid)))) pid))))
(define* (fork+exec-command/container command
#:key pid
#:allow-other-keys
#:rest args)
"This is a variant of 'fork+exec-command' procedure, that joins the
namespaces of process PID beforehand."
(container-excursion* pid
(lambda ()
(apply fork+exec-command command
(strip-keyword-arguments '(#:pid) args)))))
;; Local Variables: ;; Local Variables:
;; eval: (put 'container-excursion* 'scheme-indent-function 1) ;; eval: (put 'container-excursion* 'scheme-indent-function 1)
;; End: ;; End:

View file

@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +26,7 @@
#:use-module (guix profiles) #:use-module (guix profiles)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix channels) #:use-module (guix channels)
#:use-module (guix config)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix build-system) #:use-module (guix build-system)
#:use-module (guix monads) #:use-module (guix monads)
@ -116,7 +118,7 @@ SYSTEM."
;; Note: Don't put the '-final' package variants because (1) that's ;; Note: Don't put the '-final' package variants because (1) that's
;; implicit, and (2) they cannot be cross-built (due to the explicit input ;; implicit, and (2) they cannot be cross-built (due to the explicit input
;; chain.) ;; chain.)
(list gcc-4.8 gcc-4.9 gcc-5 glibc binutils (list gcc-7 gcc-8 gcc-9 gcc-10 glibc binutils
gmp mpfr mpc coreutils findutils diffutils patch sed grep gmp mpfr mpc coreutils findutils diffutils patch sed grep
gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz
%bootstrap-binaries-tarball %bootstrap-binaries-tarball
@ -233,7 +235,12 @@ system.")
,(->job 'iso9660-image ,(->job 'iso9660-image
(build-image (build-image
(image (image
(inherit iso9660-image) (inherit (image-with-label
iso9660-image
(string-append "GUIX_" system "_"
(if (> (string-length %guix-version) 7)
(substring %guix-version 0 7)
%guix-version))))
(operating-system installation-os)))) (operating-system installation-os))))
;; Only cross-compile Guix System images from x86_64-linux for now. ;; Only cross-compile Guix System images from x86_64-linux for now.
,@(if (string=? system "x86_64-linux") ,@(if (string=? system "x86_64-linux")

View file

@ -318,8 +318,10 @@ selected keymap."
cryptsetup cryptsetup
dosfstools ;mkfs.fat dosfstools ;mkfs.fat
e2fsprogs ;mkfs.ext4 e2fsprogs ;mkfs.ext4
lvm2-static ;dmsetup
btrfs-progs btrfs-progs
jfsutils ;jfs_mkfs jfsutils ;jfs_mkfs
ntfs-3g ;mkfs.ntfs
kbd ;chvt kbd ;chvt
guix ;guix system init call guix ;guix system init call
util-linux ;mkwap util-linux ;mkwap

View file

@ -26,6 +26,8 @@
#:use-module (guix build syscalls) #:use-module (guix build syscalls)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (gnu build accounts) #:use-module (gnu build accounts)
#:use-module (gnu build install)
#:use-module (gnu build linux-container)
#:use-module ((gnu system shadow) #:prefix sys:) #:use-module ((gnu system shadow) #:prefix sys:)
#:use-module (rnrs io ports) #:use-module (rnrs io ports)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -133,49 +135,18 @@ USERS."
(_ #f)))))) (_ #f))))))
pids))) pids)))
(define (umount-cow-store)
"Remove the store overlay and the bind-mount on /tmp created by the
cow-store service. This procedure is very fragile and a better approach would
be much appreciated."
(catch #t
(lambda ()
(let ((tmp-dir "/remove"))
(syslog "Unmounting cow-store.~%")
(mkdir-p tmp-dir)
(mount (%store-directory) tmp-dir "" MS_MOVE)
;; The guix-daemon has possibly opened files from the cow-store,
;; restart it.
(restart-service 'guix-daemon)
(syslog "Killing cow users.")
;; Kill all processes started while the cow-store was active (logins
;; on other TTYs for instance).
(kill-cow-users tmp-dir)
;; Try to umount the store overlay. Some process such as udevd
;; workers might still be active, so do some retries.
(let loop ((try 5))
(syslog "Umount try ~a~%" (- 5 try))
(sleep 1)
(let ((umounted? (false-if-exception (umount tmp-dir))))
(if (and (not umounted?) (> try 0))
(loop (- try 1))
(if umounted?
(syslog "Umounted ~a successfully.~%" tmp-dir)
(syslog "Failed to umount ~a.~%" tmp-dir)))))
(umount "/tmp")))
(lambda args
(syslog "~a~%" args))))
(define* (install-system locale #:key (users '())) (define* (install-system locale #:key (users '()))
"Create /etc/shadow and /etc/passwd on the installation target for 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 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, a subshell. LOCALE must be the locale name under which that command will run,
or #f. Return #t on success and #f on failure." or #f. Return #t on success and #f on failure."
(define backing-directory
;; Sub-directory used as the backing store for copy-on-write.
"/tmp/guix-inst")
(define (assert-exit x)
(primitive-exit (if x 0 1)))
(let* ((options (catch 'system-error (let* ((options (catch 'system-error
(lambda () (lambda ()
;; If this file exists, it can provide ;; If this file exists, it can provide
@ -188,7 +159,11 @@ or #f. Return #t on success and #f on failure."
"--fallback") "--fallback")
options options
(list (%installer-configuration-file) (list (%installer-configuration-file)
(%installer-target-dir))))) (%installer-target-dir))))
(database-dir "/var/guix/db")
(database-file (string-append database-dir "/db.sqlite"))
(saved-database (string-append database-dir "/db.save"))
(ret #f))
(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 ;; We want to initialize user passwords but we don't want to store them in
@ -198,27 +173,50 @@ or #f. Return #t on success and #f on failure."
;; passwords that we've put in there. ;; passwords that we've put in there.
(create-user-database users (%installer-target-dir)) (create-user-database users (%installer-target-dir))
(dynamic-wind ;; When the store overlay is mounted, other processes such as kmscon, udev
(lambda () ;; and guix-daemon may open files from the store, preventing the
(start-service 'cow-store (list (%installer-target-dir)))) ;; underlying install support from being umounted. See:
(lambda () ;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
;; If there are any connected clients, assume that we are running ;;
;; installation tests. In that case, dump the standard and error ;; To avoid this situation, mount the store overlay inside a container,
;; outputs to syslog. ;; and run the installation from within that container.
(if (not (null? (current-clients))) (zero?
(with-output-to-file "/dev/console" (call-with-container '()
(lambda () (lambda ()
(with-error-to-file "/dev/console" (dynamic-wind
(lambda () (lambda ()
(setvbuf (current-output-port) 'none) ;; Save the database, so that it can be restored once the
(setvbuf (current-error-port) 'none) ;; cow-store is umounted.
(run-command install-command #:locale locale))))) (copy-file database-file saved-database)
(run-command install-command #:locale locale))) (mount-cow-store (%installer-target-dir) backing-directory))
(lambda () (lambda ()
(stop-service 'cow-store) ;; We need to drag the guix-daemon to the container MNT
;; Remove the store overlay created at cow-store service start. ;; namespace, so that it can operate on the cow-store.
;; Failing to do that will result in further umount calls to fail (stop-service 'guix-daemon)
;; because the target device is seen as busy. See: (start-service 'guix-daemon (list (number->string (getpid))))
;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
(umount-cow-store) (setvbuf (current-output-port) 'none)
#f)))) (setvbuf (current-error-port) 'none)
;; If there are any connected clients, assume that we are running
;; installation tests. In that case, dump the standard and error
;; outputs to syslog.
(set! ret
(if (not (null? (current-clients)))
(with-output-to-file "/dev/console"
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
(run-command install-command
#:locale locale)))))
(run-command install-command #:locale locale))))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; alive.
(restart-service 'guix-daemon)
(copy-file saved-database database-file)
;; Finally umount the cow-store and exit the container.
(unmount-cow-store (%installer-target-dir) backing-directory)
(assert-exit ret))))
#:namespaces '(mnt)))))

View file

@ -102,13 +102,6 @@ a specific step, or restart the installer."))
#:key (users '())) #:key (users '()))
(clear-screen) (clear-screen)
(newt-suspend) (newt-suspend)
;; XXX: Force loading 'bold' font files before mouting the
;; cow-store. Otherwise, if the file is loaded by kmscon after the cow-store
;; in mounted, it will be necessary to kill kmscon to umount to cow-store.
(display
(colorize-string
(format #f (G_ "Installing Guix System ...~%"))
(color BOLD)))
(let ((install-ok? (install-system locale #:users users))) (let ((install-ok? (install-system locale #:users users)))
(newt-resume) (newt-resume)
install-ok?)) install-ok?))

View file

@ -121,7 +121,7 @@ Be careful, all data on the disk will be lost.")
(run-listbox-selection-page (run-listbox-selection-page
#:info-text (G_ "Please select the file-system type for this partition.") #:info-text (G_ "Please select the file-system type for this partition.")
#:title (G_ "File-system type") #:title (G_ "File-system type")
#:listbox-items '(ext4 btrfs fat16 fat32 jfs swap) #:listbox-items '(ext4 btrfs fat16 fat32 jfs ntfs swap)
#:listbox-item->text user-fs-type-name #:listbox-item->text user-fs-type-name
#:sort-listbox-items? #f #:sort-listbox-items? #f
#:button-text (G_ "Exit") #:button-text (G_ "Exit")

View file

@ -222,7 +222,8 @@ inferior to MAX-SIZE, #f otherwise."
((btrfs) "btrfs") ((btrfs) "btrfs")
((fat16) "fat16") ((fat16) "fat16")
((fat32) "fat32") ((fat32) "fat32")
((jfs) "jfs") ((jfs) "jfs")
((ntfs) "ntfs")
((swap) "linux-swap"))) ((swap) "linux-swap")))
(define (user-fs-type->mount-type fs-type) (define (user-fs-type->mount-type fs-type)
@ -232,7 +233,8 @@ inferior to MAX-SIZE, #f otherwise."
((btrfs) "btrfs") ((btrfs) "btrfs")
((fat16) "fat") ((fat16) "fat")
((fat32) "vfat") ((fat32) "vfat")
((jfs) "jfs"))) ((jfs) "jfs")
((ntfs) "ntfs")))
(define (partition-filesystem-user-type partition) (define (partition-filesystem-user-type partition)
"Return the filesystem type of PARTITION, to be stored in the FS-TYPE field "Return the filesystem type of PARTITION, to be stored in the FS-TYPE field
@ -246,6 +248,7 @@ of <user-partition> record."
((string=? name "fat16") 'fat16) ((string=? name "fat16") 'fat16)
((string=? name "fat32") 'fat32) ((string=? name "fat32") 'fat32)
((string=? name "jfs") 'jfs) ((string=? name "jfs") 'jfs)
((string=? name "ntfs") 'ntfs)
((or (string=? name "swsusp") ((or (string=? name "swsusp")
(string=? name "linux-swap(v0)") (string=? name "linux-swap(v0)")
(string=? name "linux-swap(v1)")) (string=? name "linux-swap(v1)"))
@ -327,6 +330,11 @@ fail. See rereadpt function in wipefs.c of util-linux for an explanation."
(device-sync device) (device-sync device)
(device-close device)) (device-close device))
(define (remove-logical-devices)
"Remove all active logical devices."
(with-null-output-ports
(invoke "dmsetup" "remove_all")))
(define (non-install-devices) (define (non-install-devices)
"Return all the available devices, except the busy one, allegedly the "Return all the available devices, except the busy one, allegedly the
install device. DEVICE-IS-BUSY? is a parted call, checking if the device is install device. DEVICE-IS-BUSY? is a parted call, checking if the device is
@ -1040,6 +1048,11 @@ bit bucket."
(with-null-output-ports (with-null-output-ports
(invoke "jfs_mkfs" "-f" partition))) (invoke "jfs_mkfs" "-f" partition)))
(define (create-ntfs-file-system partition)
"Create a JFS file-system for PARTITION file-name."
(with-null-output-ports
(invoke "mkfs.ntfs" "-F" "-f" partition)))
(define (create-swap-partition partition) (define (create-swap-partition partition)
"Set up swap area on PARTITION file-name." "Set up swap area on PARTITION file-name."
(with-null-output-ports (with-null-output-ports
@ -1117,6 +1130,10 @@ NEED-FORMATING? field set to #t."
(and need-formatting? (and need-formatting?
(not (eq? type 'extended)) (not (eq? type 'extended))
(create-jfs-file-system file-name))) (create-jfs-file-system file-name)))
((ntfs)
(and need-formatting?
(not (eq? type 'extended))
(create-ntfs-file-system file-name)))
((swap) ((swap)
(create-swap-partition file-name)) (create-swap-partition file-name))
(else (else
@ -1328,6 +1345,9 @@ USER-PARTITIONS, or return nothing."
(define (init-parted) (define (init-parted)
"Initialize libparted support." "Initialize libparted support."
(probe-all-devices!) (probe-all-devices!)
;; Remove all logical devices, otherwise "device-is-busy?" will report true
;; on all devices containaing active logical volumes.
(remove-logical-devices)
(exception-set-handler (lambda (exception) (exception-set-handler (lambda (exception)
EXCEPTION-OPTION-UNHANDLED))) EXCEPTION-OPTION-UNHANDLED)))

View file

@ -132,6 +132,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/commencement.scm \ %D%/packages/commencement.scm \
%D%/packages/compression.scm \ %D%/packages/compression.scm \
%D%/packages/compton.scm \ %D%/packages/compton.scm \
%D%/packages/configuration-management.scm \
%D%/packages/conky.scm \ %D%/packages/conky.scm \
%D%/packages/connman.scm \ %D%/packages/connman.scm \
%D%/packages/convmv.scm \ %D%/packages/convmv.scm \
@ -388,6 +389,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/networking.scm \ %D%/packages/networking.scm \
%D%/packages/nfs.scm \ %D%/packages/nfs.scm \
%D%/packages/nickle.scm \ %D%/packages/nickle.scm \
%D%/packages/nicotine.scm \
%D%/packages/nim.scm \ %D%/packages/nim.scm \
%D%/packages/ninja.scm \ %D%/packages/ninja.scm \
%D%/packages/node.scm \ %D%/packages/node.scm \
@ -412,6 +414,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/package-management.scm \ %D%/packages/package-management.scm \
%D%/packages/pantheon.scm \ %D%/packages/pantheon.scm \
%D%/packages/parallel.scm \ %D%/packages/parallel.scm \
%D%/packages/pascal.scm \
%D%/packages/password-utils.scm \ %D%/packages/password-utils.scm \
%D%/packages/patchutils.scm \ %D%/packages/patchutils.scm \
%D%/packages/pciutils.scm \ %D%/packages/pciutils.scm \
@ -656,6 +659,7 @@ GNU_SYSTEM_MODULES = \
%D%/build/linux-initrd.scm \ %D%/build/linux-initrd.scm \
%D%/build/linux-modules.scm \ %D%/build/linux-modules.scm \
%D%/build/marionette.scm \ %D%/build/marionette.scm \
%D%/build/secret-service.scm \
%D%/build/vm.scm \ %D%/build/vm.scm \
\ \
%D%/tests.scm \ %D%/tests.scm \
@ -823,8 +827,13 @@ dist_patch_DATA = \
%D%/packages/patches/binutils-mingw-w64-timestamp.patch \ %D%/packages/patches/binutils-mingw-w64-timestamp.patch \
%D%/packages/patches/binutils-mingw-w64-deterministic.patch \ %D%/packages/patches/binutils-mingw-w64-deterministic.patch \
%D%/packages/patches/bitcoin-core-python-compat.patch \ %D%/packages/patches/bitcoin-core-python-compat.patch \
%D%/packages/patches/blender-2.79-gcc8.patch \
%D%/packages/patches/blender-2.79-gcc9.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \ %D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-oiio2.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \ %D%/packages/patches/blender-2.79-python-3.7-fix.patch \
%D%/packages/patches/blender-2.79-python-3.8-fix.patch \
%D%/packages/patches/bpftrace-disable-bfd-disasm.patch \
%D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \ %D%/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch \
%D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \
@ -849,6 +858,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \ %D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \ %D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
%D%/packages/patches/clang-runtime-3.5-libsanitizer-mode-field.patch \
%D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-3.9-libsanitizer-mode-field.patch \
%D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch \ %D%/packages/patches/clang-runtime-3.8-libsanitizer-mode-field.patch \
%D%/packages/patches/classpath-aarch64-support.patch \ %D%/packages/patches/classpath-aarch64-support.patch \
@ -880,8 +890,10 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-CVE-2020-12049.patch \ %D%/packages/patches/dbus-CVE-2020-12049.patch \
%D%/packages/patches/dbus-c++-gcc-compat.patch \ %D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \ %D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \ %D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \ %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \
%D%/packages/patches/desmume-gcc6-fixes.patch \ %D%/packages/patches/desmume-gcc6-fixes.patch \
%D%/packages/patches/desmume-gcc7-fixes.patch \ %D%/packages/patches/desmume-gcc7-fixes.patch \
%D%/packages/patches/dfu-programmer-fix-libusb.patch \ %D%/packages/patches/dfu-programmer-fix-libusb.patch \
@ -907,10 +919,10 @@ dist_patch_DATA = \
%D%/packages/patches/elixir-path-length.patch \ %D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/elm-compiler-disable-reactor.patch \ %D%/packages/patches/elm-compiler-disable-reactor.patch \
%D%/packages/patches/elm-compiler-fix-map-key.patch \ %D%/packages/patches/elm-compiler-fix-map-key.patch \
%D%/packages/patches/emacs27-exec-path.patch \
%D%/packages/patches/emacs-exec-path.patch \ %D%/packages/patches/emacs-exec-path.patch \
%D%/packages/patches/emacs-exwm-fix-fullscreen-states.patch \ %D%/packages/patches/emacs-exwm-fix-fullscreen-states.patch \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \ %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-ignore-empty-xim-styles.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \ %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \ %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \
@ -951,6 +963,8 @@ dist_patch_DATA = \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
%D%/packages/patches/fontconfig-hurd-path-max.patch \ %D%/packages/patches/fontconfig-hurd-path-max.patch \
%D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeimage-unbundle.patch \ %D%/packages/patches/freeimage-unbundle.patch \
%D%/packages/patches/fuse-overlapping-headers.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \
%D%/packages/patches/ganeti-deterministic-manual.patch \ %D%/packages/patches/ganeti-deterministic-manual.patch \
@ -1015,14 +1029,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \
%D%/packages/patches/glib-tests-timer.patch \ %D%/packages/patches/glib-tests-timer.patch \
%D%/packages/patches/glibc-CVE-2015-5180.patch \
%D%/packages/patches/glibc-CVE-2015-7547.patch \
%D%/packages/patches/glibc-CVE-2016-3075.patch \
%D%/packages/patches/glibc-CVE-2016-3706.patch \
%D%/packages/patches/glibc-CVE-2016-4429.patch \
%D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \
%D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
%D%/packages/patches/glibc-CVE-2018-11236.patch \ %D%/packages/patches/glibc-CVE-2018-11236.patch \
%D%/packages/patches/glibc-CVE-2018-11237.patch \ %D%/packages/patches/glibc-CVE-2018-11237.patch \
%D%/packages/patches/glibc-CVE-2019-7309.patch \ %D%/packages/patches/glibc-CVE-2019-7309.patch \
@ -1044,9 +1050,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \ %D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-locales-2.28.patch \ %D%/packages/patches/glibc-locales-2.28.patch \
%D%/packages/patches/glibc-o-largefile.patch \
%D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \ %D%/packages/patches/glibc-reinstate-prlimit64-fallback.patch \
%D%/packages/patches/glibc-vectorized-strcspn-guards.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \ %D%/packages/patches/glibc-versioned-locpath.patch \
%D%/packages/patches/glibc-2.27-git-fixes.patch \ %D%/packages/patches/glibc-2.27-git-fixes.patch \
%D%/packages/patches/glibc-2.28-git-fixes.patch \ %D%/packages/patches/glibc-2.28-git-fixes.patch \
@ -1069,6 +1073,7 @@ dist_patch_DATA = \
%D%/packages/patches/gobject-introspection-girepository.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \
%D%/packages/patches/go-skip-gc-test.patch \ %D%/packages/patches/go-skip-gc-test.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpodder-disable-updater.patch \
%D%/packages/patches/gpsbabel-minizip.patch \ %D%/packages/patches/gpsbabel-minizip.patch \
%D%/packages/patches/gpsbabel-qstring.patch \ %D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grantlee-merge-theme-dirs.patch \
@ -1101,6 +1106,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \ %D%/packages/patches/gtksourceview-2-add-default-directory.patch \
%D%/packages/patches/gvfs-add-support-for-libplist-2.2.patch \
%D%/packages/patches/gzdoom-search-in-installed-share.patch \ %D%/packages/patches/gzdoom-search-in-installed-share.patch \
%D%/packages/patches/gzdoom-find-system-libgme.patch \ %D%/packages/patches/gzdoom-find-system-libgme.patch \
%D%/packages/patches/hdf4-architectures.patch \ %D%/packages/patches/hdf4-architectures.patch \
@ -1140,9 +1146,12 @@ dist_patch_DATA = \
%D%/packages/patches/iputils-libcap-compat.patch \ %D%/packages/patches/iputils-libcap-compat.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \ %D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/json-c-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.13-CVE-2020-12762.patch \
%D%/packages/patches/json-c-0.12-CVE-2020-12762.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \ %D%/packages/patches/jamvm-1.5.1-aarch64-support.patch \
%D%/packages/patches/jamvm-1.5.1-armv7-support.patch \ %D%/packages/patches/jamvm-1.5.1-armv7-support.patch \
%D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \ %D%/packages/patches/jamvm-2.0.0-aarch64-support.patch \
%D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \
%D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \ %D%/packages/patches/jamvm-2.0.0-opcode-guard.patch \
@ -1196,9 +1205,9 @@ dist_patch_DATA = \
%D%/packages/patches/lcms-CVE-2018-16435.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/ldns-drill-examples.patch \
%D%/packages/patches/leela-zero-gtest.patch \ %D%/packages/patches/leela-zero-gtest.patch \
%D%/packages/patches/less-hurd-path-max.patch \ %D%/packages/patches/less-hurd-path-max.patch \
%D%/packages/patches/lib2geom-enable-assertions.patch \
%D%/packages/patches/lib2geom-fix-tests.patch \ %D%/packages/patches/lib2geom-fix-tests.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 \
@ -1208,13 +1217,16 @@ dist_patch_DATA = \
%D%/packages/patches/libbase-use-own-logging.patch \ %D%/packages/patches/libbase-use-own-logging.patch \
%D%/packages/patches/libbonobo-activation-test-race.patch \ %D%/packages/patches/libbonobo-activation-test-race.patch \
%D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \ %D%/packages/patches/libcanberra-sound-theme-freedesktop.patch \
%D%/packages/patches/libextractor-exiv2.patch \
%D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \
%D%/packages/patches/libgit2-mtime-0.patch \ %D%/packages/patches/libgit2-mtime-0.patch \
%D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \ %D%/packages/patches/libgnomeui-utf8.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/liblouisutdml-fix-tests.patch \
%D%/packages/patches/libofa-ftbfs-1.diff \
%D%/packages/patches/libofa-curl.diff \
%D%/packages/patches/libofa-ftbfs-2.diff \
%D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \ %D%/packages/patches/libksieve-Fix-missing-link-libraries.patch \
%D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \
@ -1228,6 +1240,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \ %D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \ %D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \ %D%/packages/patches/libqalculate-3.8.0-libcurl-ssl-fix.patch \
%D%/packages/patches/libquicktime-ffmpeg.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \
@ -1287,6 +1300,7 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/libmemcached-build-with-gcc7.patch \ %D%/packages/patches/libmemcached-build-with-gcc7.patch \
%D%/packages/patches/libmhash-hmac-fix-uaf.patch \
%D%/packages/patches/mediastreamer2-srtp2.patch \ %D%/packages/patches/mediastreamer2-srtp2.patch \
%D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \
%D%/packages/patches/mescc-tools-boot.patch \ %D%/packages/patches/mescc-tools-boot.patch \
@ -1332,6 +1346,7 @@ dist_patch_DATA = \
%D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-system-utf8proc.patch \
%D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \
%D%/packages/patches/netsurf-longer-test-timeout.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/network-manager-plugin-path.patch \ %D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/nsis-env-passthru.patch \ %D%/packages/patches/nsis-env-passthru.patch \
@ -1353,9 +1368,9 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \ %D%/packages/patches/ocaml-dose3-dont-make-printconf.patch \
%D%/packages/patches/ocaml-dose3-Install-mli-cmx-etc.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/openbabel-fix-crash-on-nwchem-output.patch \ %D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/opencv-fix-build-of-grfmt_jpeg2000.cpp.patch \
%D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \ %D%/packages/patches/opencv-rgbd-aarch64-test-fix.patch \
%D%/packages/patches/opendht-fix-jami.patch \ %D%/packages/patches/opendht-fix-jami.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \
@ -1365,6 +1380,7 @@ dist_patch_DATA = \
%D%/packages/patches/openssh-hurd.patch \ %D%/packages/patches/openssh-hurd.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \ %D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openscad-parser-boost-1.72.patch \ %D%/packages/patches/openscad-parser-boost-1.72.patch \
%D%/packages/patches/opensles-add-license-file.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 \
@ -1415,10 +1431,13 @@ dist_patch_DATA = \
%D%/packages/patches/pingus-boost-headers.patch \ %D%/packages/patches/pingus-boost-headers.patch \
%D%/packages/patches/pingus-sdl-libs-config.patch \ %D%/packages/patches/pingus-sdl-libs-config.patch \
%D%/packages/patches/pixman-CVE-2016-5296.patch \ %D%/packages/patches/pixman-CVE-2016-5296.patch \
%D%/packages/patches/pjproject-correct-the-cflags-field.patch \
%D%/packages/patches/pjproject-fix-pkg-config-ldflags.patch \
%D%/packages/patches/plink-1.07-unclobber-i.patch \ %D%/packages/patches/plink-1.07-unclobber-i.patch \
%D%/packages/patches/plink-endian-detection.patch \ %D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plib-CVE-2011-4620.patch \ %D%/packages/patches/plib-CVE-2011-4620.patch \
%D%/packages/patches/plib-CVE-2012-4552.patch \ %D%/packages/patches/plib-CVE-2012-4552.patch \
%D%/packages/patches/plotutils-spline-test.patch \
%D%/packages/patches/podofo-cmake-3.12.patch \ %D%/packages/patches/podofo-cmake-3.12.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \ %D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \ %D%/packages/patches/portmidi-modular-build.patch \
@ -1452,7 +1471,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-CVE-2018-14647.patch \ %D%/packages/patches/python-CVE-2018-14647.patch \
%D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch \ %D%/packages/patches/python-aiohttp-3.6.2-no-warning-fail.patch \
%D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \
%D%/packages/patches/python-alembic-exceptions-cause.patch \
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \ %D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
%D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \
%D%/packages/patches/python-cairocffi-dlopen-path.patch \ %D%/packages/patches/python-cairocffi-dlopen-path.patch \
@ -1465,11 +1483,11 @@ dist_patch_DATA = \
%D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \ %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
%D%/packages/patches/python-pyfakefs-remove-bad-test.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-jedi-sort-project-test.patch \
%D%/packages/patches/python-libxml2-utf8.patch \ %D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \ %D%/packages/patches/python-memcached-syntax-warnings.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 \
%D%/packages/patches/python-onnx-use-system-googletest.patch \
%D%/packages/patches/python-packaging-test-arch.patch \ %D%/packages/patches/python-packaging-test-arch.patch \
%D%/packages/patches/python2-parameterized-docstring-test.patch \ %D%/packages/patches/python2-parameterized-docstring-test.patch \
%D%/packages/patches/python-paste-remove-timing-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \
@ -1479,7 +1497,6 @@ dist_patch_DATA = \
%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/python-robotframework-honor-source-date-epoch.patch \
%D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch \ %D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch \
%D%/packages/patches/python-slugify-depend-on-unidecode.patch \
%D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/python2-subprocess32-disable-input-test.patch \
%D%/packages/patches/python-tinycss2-flake8-compat.patch \ %D%/packages/patches/python-tinycss2-flake8-compat.patch \
%D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-python3-compat.patch \
@ -1509,12 +1526,17 @@ dist_patch_DATA = \
%D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \
%D%/packages/patches/r-httpuv-1.5.4-unvendor-libuv.patch \
%D%/packages/patches/ri-li-modernize_cpp.patch \ %D%/packages/patches/ri-li-modernize_cpp.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 \
%D%/packages/patches/racket-store-checksum-override.patch \ %D%/packages/patches/racket-store-checksum-override.patch \
%D%/packages/patches/remake-impure-dirs.patch \
%D%/packages/patches/retroarch-disable-online-updater.patch \ %D%/packages/patches/retroarch-disable-online-updater.patch \
%D%/packages/patches/rnp-add-version.cmake.patch \
%D%/packages/patches/rnp-disable-ruby-rnp-tests.patch \
%D%/packages/patches/rnp-unbundle-googletest.patch \
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \ %D%/packages/patches/ruby-rack-ignore-failing-test.patch \
%D%/packages/patches/ruby-rubocop-break-dependency-cycle.patch\ %D%/packages/patches/ruby-rubocop-break-dependency-cycle.patch\
%D%/packages/patches/ruby-sanitize-system-libxml.patch \ %D%/packages/patches/ruby-sanitize-system-libxml.patch \
@ -1538,6 +1560,7 @@ dist_patch_DATA = \
%D%/packages/patches/screen-hurd-path-max.patch \ %D%/packages/patches/screen-hurd-path-max.patch \
%D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch \ %D%/packages/patches/scribus-1.5.5-poppler-0.86-build-fix.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seed-webkit.patch \
%D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \
%D%/packages/patches/shadow-hurd-pctrl.patch \ %D%/packages/patches/shadow-hurd-pctrl.patch \
@ -1549,8 +1572,9 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \ %D%/packages/patches/slim-login.patch \
%D%/packages/patches/slim-display.patch \ %D%/packages/patches/slim-display.patch \
%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/sphinxbase-fix-doxygen.patch \
%D%/packages/patches/sssd-fix-samba.patch \ %D%/packages/patches/sssd-fix-samba.patch \
%D%/packages/patches/sssd-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \ %D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \ %D%/packages/patches/suitesparse-mongoose-cmake.patch \
%D%/packages/patches/superlu-dist-awpm-grid.patch \ %D%/packages/patches/superlu-dist-awpm-grid.patch \
@ -1588,8 +1612,8 @@ dist_patch_DATA = \
%D%/packages/patches/tipp10-fix-compiling.patch \ %D%/packages/patches/tipp10-fix-compiling.patch \
%D%/packages/patches/tipp10-remove-license-code.patch \ %D%/packages/patches/tipp10-remove-license-code.patch \
%D%/packages/patches/tk-find-library.patch \ %D%/packages/patches/tk-find-library.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \ %D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
%D%/packages/patches/tomb-fix-errors-on-open.patch \ %D%/packages/patches/tomb-fix-errors-on-open.patch \
%D%/packages/patches/tup-unbundle-dependencies.patch \ %D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \
@ -1598,6 +1622,7 @@ dist_patch_DATA = \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \ %D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/udiskie-no-appindicator.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \ %D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.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 \
@ -1618,6 +1643,7 @@ dist_patch_DATA = \
%D%/packages/patches/vboot-utils-fix-format-load-address.patch \ %D%/packages/patches/vboot-utils-fix-format-load-address.patch \
%D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \ %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \
%D%/packages/patches/vboot-utils-skip-test-workbuf.patch \ %D%/packages/patches/vboot-utils-skip-test-workbuf.patch \
%D%/packages/patches/vcflib-use-shared-libraries.patch \
%D%/packages/patches/vigra-python-compat.patch \ %D%/packages/patches/vigra-python-compat.patch \
%D%/packages/patches/vinagre-newer-freerdp.patch \ %D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \
@ -1631,7 +1657,9 @@ dist_patch_DATA = \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/weasyprint-library-paths.patch \ %D%/packages/patches/weasyprint-library-paths.patch \
%D%/packages/patches/webkitgtk-share-store.patch \ %D%/packages/patches/webkitgtk-share-store.patch \
%D%/packages/patches/webkitgtk-bind-all-fonts.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \ %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/wgetpaste-update-bpaste.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 \
%D%/packages/patches/wicd-urwid-1.3.patch \ %D%/packages/patches/wicd-urwid-1.3.patch \
@ -1644,15 +1672,14 @@ dist_patch_DATA = \
%D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \
%D%/packages/patches/x265-arm-flags.patch \ %D%/packages/patches/x265-arm-flags.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
%D%/packages/patches/xf86-video-geode-glibc-2.20.patch \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \ %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
%D%/packages/patches/xf86-video-savage-xorg-compat.patch \ %D%/packages/patches/xf86-video-savage-xorg-compat.patch \
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \ %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
%D%/packages/patches/xf86-video-sis-xorg-compat.patch \
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \
%D%/packages/patches/xf86-video-voodoo-pcitag.patch \ %D%/packages/patches/xf86-video-voodoo-pcitag.patch \
%D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-panel-plugins.patch \
%D%/packages/patches/xfce4-settings-defaults.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \

View file

@ -23,7 +23,7 @@
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix store) #:use-module (guix store)
#:use-module ((guix utils) #:select (source-properties->location)) #:use-module ((guix diagnostics) #:select (source-properties->location))
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:export (environment-type #:export (environment-type
environment-type? environment-type?

View file

@ -26,6 +26,7 @@
#:use-module (guix base32) #:use-module (guix base32)
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module ((guix diagnostics) #:select (formatted-message))
#:use-module (guix import json) #:use-module (guix import json)
#:use-module (guix monads) #:use-module (guix monads)
#:use-module (guix records) #:use-module (guix records)
@ -414,9 +415,7 @@ one procured from https://cloud.digitalocean.com/account/api/tokens.")))))))
(let ((config (machine-configuration machine)) (let ((config (machine-configuration machine))
(environment (environment-type-name (machine-environment machine)))) (environment (environment-type-name (machine-environment machine))))
(unless (and config (digital-ocean-configuration? config)) (unless (and config (digital-ocean-configuration? config))
(raise (condition (raise (formatted-message (G_ "unsupported machine configuration '~a' \
(&message
(message (format #f (G_ "unsupported machine configuration '~a'
for environment of type '~a'") for environment of type '~a'")
config config
environment)))))))) environment)))))

View file

@ -24,6 +24,7 @@
#:use-module (gnu system) #:use-module (gnu system)
#:use-module (gnu system file-systems) #:use-module (gnu system file-systems)
#:use-module (gnu system uuid) #:use-module (gnu system uuid)
#:use-module ((gnu services) #:select (sexp->system-provenance))
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix i18n) #:use-module (guix i18n)
@ -55,6 +56,7 @@
machine-ssh-configuration-host-name machine-ssh-configuration-host-name
machine-ssh-configuration-build-locally? machine-ssh-configuration-build-locally?
machine-ssh-configuration-authorize? machine-ssh-configuration-authorize?
machine-ssh-configuration-allow-downgrades?
machine-ssh-configuration-port machine-ssh-configuration-port
machine-ssh-configuration-user machine-ssh-configuration-user
machine-ssh-configuration-host-key machine-ssh-configuration-host-key
@ -83,6 +85,8 @@
(default #t)) (default #t))
(authorize? machine-ssh-configuration-authorize? ; boolean (authorize? machine-ssh-configuration-authorize? ; boolean
(default #t)) (default #t))
(allow-downgrades? machine-ssh-configuration-allow-downgrades? ; boolean
(default #f))
(port machine-ssh-configuration-port ; integer (port machine-ssh-configuration-port ; integer
(default 22)) (default 22))
(user machine-ssh-configuration-user ; string (user machine-ssh-configuration-user ; string
@ -179,11 +183,9 @@ exist on the machine."
(lambda args (lambda args
(system-error-errno args))))) (system-error-errno args)))))
(when (number? errno) (when (number? errno)
(raise (condition (raise (formatted-message (G_ "device '~a' not found: ~a")
(&message
(message (format #f (G_ "device '~a' not found: ~a")
(file-system-device fs) (file-system-device fs)
(strerror errno))))))))) (strerror errno))))))
(define (check-labeled-file-system fs) (define (check-labeled-file-system fs)
(define remote-exp (define remote-exp
@ -196,11 +198,9 @@ exist on the machine."
(remote-let ((result remote-exp)) (remote-let ((result remote-exp))
(unless result (unless result
(raise (condition (raise (formatted-message (G_ "no file system with label '~a'")
(&message
(message (format #f (G_ "no file system with label '~a'")
(file-system-label->string (file-system-label->string
(file-system-device fs)))))))))) (file-system-device fs)))))))
(define (check-uuid-file-system fs) (define (check-uuid-file-system fs)
(define remote-exp (define remote-exp
@ -217,10 +217,8 @@ exist on the machine."
(remote-let ((result remote-exp)) (remote-let ((result remote-exp))
(unless result (unless result
(raise (condition (raise (formatted-message (G_ "no file system with UUID '~a'")
(&message (uuid->string (file-system-device fs)))))))
(message (format #f (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs))))))))))
(append (map check-literal-file-system (append (map check-literal-file-system
(filter (lambda (fs) (filter (lambda (fs)
@ -277,6 +275,27 @@ not available in the initrd."
(map missing-modules file-systems)) (map missing-modules file-systems))
(define* (machine-check-forward-update machine)
"Check whether we are making a forward update for MACHINE. Depending on its
'allow-upgrades?' field, raise an error or display a warning if we are
potentially downgrading it."
(define config
(machine-configuration machine))
(define validate-reconfigure
(if (machine-ssh-configuration-allow-downgrades? config)
warn-about-backward-reconfigure
ensure-forward-reconfigure))
(remote-let ((provenance #~(call-with-input-file
"/run/current-system/provenance"
read)))
(define channels
(sexp->system-provenance provenance))
(check-forward-update validate-reconfigure
#:current-channels channels)))
(define (machine-check-building-for-appropriate-system machine) (define (machine-check-building-for-appropriate-system machine)
"Raise a '&message' error condition if MACHINE is configured to be built "Raise a '&message' error condition if MACHINE is configured to be built
locally and the 'system' field does not match the '%current-system' reported locally and the 'system' field does not match the '%current-system' reported
@ -285,19 +304,18 @@ by MACHINE."
(system (remote-system (machine-ssh-session machine)))) (system (remote-system (machine-ssh-session machine))))
(when (and (machine-ssh-configuration-build-locally? config) (when (and (machine-ssh-configuration-build-locally? config)
(not (string= system (machine-ssh-configuration-system config)))) (not (string= system (machine-ssh-configuration-system config))))
(raise (condition (raise (formatted-message (G_ "incorrect target system\
(&message
(message (format #f (G_ "incorrect target system\
('~a' was given, while the system reports that it is '~a')~%") ('~a' was given, while the system reports that it is '~a')~%")
(machine-ssh-configuration-system config) (machine-ssh-configuration-system config)
system)))))))) system)))))
(define (check-deployment-sanity machine) (define (check-deployment-sanity machine)
"Raise a '&message' error condition if it is clear that deploying MACHINE's "Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail." 'system' declaration would fail."
(define assertions (define assertions
(append (machine-check-file-system-availability machine) (append (machine-check-file-system-availability machine)
(machine-check-initrd-modules machine))) (machine-check-initrd-modules machine)
(list (machine-check-forward-update machine))))
(define aggregate-exp (define aggregate-exp
;; Gather all the expressions so that a single round-trip is enough to ;; Gather all the expressions so that a single round-trip is enough to
@ -402,11 +420,9 @@ environment type of 'managed-host."
(when (machine-ssh-configuration-authorize? (when (machine-ssh-configuration-authorize?
(machine-configuration machine)) (machine-configuration machine))
(unless (file-exists? %public-key-file) (unless (file-exists? %public-key-file)
(raise (condition (raise (formatted-message (G_ "no signing key '~a'. \
(&message
(message (format #f (G_ "no signing key '~a'. \
have you run 'guix archive --generate-key?'") have you run 'guix archive --generate-key?'")
%public-key-file)))))) %public-key-file)))
(remote-authorize-signing-key (call-with-input-file %public-key-file (remote-authorize-signing-key (call-with-input-file %public-key-file
(lambda (port) (lambda (port)
(string->canonical-sexp (string->canonical-sexp
@ -497,9 +513,11 @@ connection to the host.")))
(let ((config (machine-configuration machine)) (let ((config (machine-configuration machine))
(environment (environment-type-name (machine-environment machine)))) (environment (environment-type-name (machine-environment machine))))
(unless (and config (machine-ssh-configuration? config)) (unless (and config (machine-ssh-configuration? config))
(raise (condition (raise (formatted-message (G_ "unsupported machine configuration '~a'
(&message
(message (format #f (G_ "unsupported machine configuration '~a'
for environment of type '~a'") for environment of type '~a'")
config config
environment)))))))) environment)))))
;; Local Variables:
;; eval: (put 'remote-let 'scheme-indent-function 1)
;; End:

View file

@ -24,6 +24,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix ui) #:use-module (guix ui)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix diagnostics)
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix memoization) #:use-module (guix memoization)
#:use-module ((guix build utils) #:use-module ((guix build utils)
@ -92,9 +93,8 @@
(define (search-patch file-name) (define (search-patch file-name)
"Search the patch FILE-NAME. Raise an error if not found." "Search the patch FILE-NAME. Raise an error if not found."
(or (search-path (%patch-path) file-name) (or (search-path (%patch-path) file-name)
(raise (condition (raise (formatted-message (G_ "~a: patch not found")
(&message (message (format #f (G_ "~a: patch not found") file-name))))
file-name)))))))
(define-syntax-rule (search-patches file-name ...) (define-syntax-rule (search-patches file-name ...)
"Return the list of absolute file names corresponding to each "Return the list of absolute file names corresponding to each
@ -381,39 +381,59 @@ reducing the memory footprint."
(define cache-file (define cache-file
(string-append directory %package-cache-file)) (string-append directory %package-cache-file))
(define (expand-cache module symbol variable result+seen) (define expand-cache
(match (false-if-exception (variable-ref variable)) (match-lambda*
((? package? package) (((module symbol variable) (result . seen))
(match result+seen (let ((package (variable-ref variable)))
((result . seen) (if (or (vhash-assq package seen)
(if (or (vhash-assq package seen) (hidden-package? package))
(hidden-package? package)) (cons result seen)
(cons result seen) (cons (cons `#(,(package-name package)
(cons (cons `#(,(package-name package) ,(package-version package)
,(package-version package) ,(module-name module)
,(module-name module) ,symbol
,symbol ,(package-outputs package)
,(package-outputs package) ,(->bool (supported-package? package))
,(->bool (supported-package? package)) ,(->bool (package-superseded package))
,(->bool (package-superseded package)) ,@(let ((loc (package-location package)))
,@(let ((loc (package-location package))) (if loc
(if loc `(,(location-file loc)
`(,(location-file loc) ,(location-line loc)
,(location-line loc) ,(location-column loc))
,(location-column loc)) '(#f #f #f))))
'(#f #f #f)))) result)
result) (vhash-consq package #t seen)))))))
(vhash-consq package #t seen))))))
(_
result+seen)))
(define exp (define entry-key
(first (match-lambda
(fold-module-public-variables* expand-cache ((module symbol variable)
(cons '() vlist-null) (let ((value (variable-ref variable)))
(string-append (package-name value) (package-version value)
(object->string module)
(symbol->string symbol))))))
(define (entry<? a b)
(string<? (entry-key a) (entry-key b)))
(define variables
;; First sort variables so that 'expand-cache' later dismisses
;; already-seen package objects in a deterministic fashion.
(sort
(fold-module-public-variables* (lambda (module symbol variable lst)
(let ((value (false-if-exception
(variable-ref variable))))
(if (package? value)
(cons (list module symbol variable)
lst)
lst)))
'()
(all-modules (%package-module-path) (all-modules (%package-module-path)
#:warn #:warn
warn-about-load-error)))) warn-about-load-error))
entry<?))
(define exp
(first (fold expand-cache (cons '() vlist-null) variables)))
(mkdir-p (dirname cache-file)) (mkdir-p (dirname cache-file))
(call-with-output-file cache-file (call-with-output-file cache-file

View file

@ -21,12 +21,31 @@
(define-module (gnu packages accessibility) (define-module (gnu packages accessibility)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages lisp)
#:use-module (gnu packages base)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages pcre)
#:use-module (gnu packages polkit)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages music)
#:use-module (gnu packages language)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages speech)
#:use-module (gnu packages linux)
#:use-module (gnu packages documentation)
#:use-module (gnu packages swig)
#:use-module (gnu packages libusb)
#:use-module (gnu packages java)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages tcl)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gstreamer) #:use-module (gnu packages gstreamer)
@ -37,6 +56,154 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages libusb)) #:use-module (gnu packages libusb))
(define-public libbraille
(package
(name "libbraille")
(version "0.19.0")
(source
(origin
(method url-fetch)
(uri
(string-append "https://sourceforge.net/projects/" name "/files/" name "/"
name "-" version "/" name "-" version ".tar.gz"))
(sha256
(base32 "05g8r0ypazqn10i7k48iibs8bzc3scdfcnhcykab8j16lhzd27d0"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" "bin"))
(arguments
`(#:tests? #f ; Tests require drivers
#:configure-flags
(list
"--disable-static"
"--enable-fake")))
(native-inputs
`(("latex2html" ,latex2html)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("swig" ,swig)))
(inputs
`(("glib" ,glib)
("gtk+" ,gtk+-2)
("libusb" ,libusb-compat)))
(synopsis "Portable Braille Library")
(description "Libbraille is a library to easily access Braille displays and
terminals.")
(home-page "https://libbraille.org")
(license license:lgpl2.1+)))
(define-public brltty
(package
(name "brltty")
(version "6.1")
(source
(origin
(method url-fetch)
(uri
(string-append "https://brltty.app/archive/"
name "-" version ".tar.gz"))
(sha256
(base32 "0nk54chr7z2w579vyiak9xk2avhnvrx7x2l5sk8nyw2zplchkx9q"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; No target
#:configure-flags
(list
(string-append "--with-tcl-config="
(assoc-ref %build-inputs "tcl")
"/lib/tclConfig.sh")
(string-append "--with-libbraille="
(assoc-ref %build-inputs "libbraille"))
(string-append "--with-espeak_ng="
(assoc-ref %build-inputs "espeak-ng"))
(string-append "--with-espeak="
(assoc-ref %build-inputs "espeak"))
(string-append "--with-flite="
(assoc-ref %build-inputs "flite"))
;; Required for RUNPATH validation.
(string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"))
#:make-flags
(list
(string-append "JAVA_JAR_DIR="
(assoc-ref %outputs "out"))
(string-append "JAVA_JNI_DIR="
(assoc-ref %outputs "out"))
(string-append "OCAML_DESTDIR="
(assoc-ref %outputs "out")
"/lib")
(string-append "PYTHON_PREFIX="
(assoc-ref %outputs "out"))
"PYTHON_ROOT=/"
(string-append "TCL_DIR="
(assoc-ref %outputs "out")
"/lib"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-errors
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "configure"
(("/sbin/ldconfig")
(which "true")))
;; Make Python bindings use rpath.
(substitute* "Bindings/Python/setup.py.in"
(("extra_compile_args =")
(string-append "extra_link_args = ['-Wl,-rpath="
(assoc-ref outputs "out")
"/lib'], "
"extra_compile_args = ")))
#t)))))
(native-inputs
`(("clisp" ,clisp)
("cython" ,python-cython)
("doxygen" ,doxygen)
("gettext" ,gettext-minimal)
("java" ,icedtea "jdk")
;; ("linuxdoc" ,linuxdoc-tools)
("ocaml" ,ocaml)
("ocamlfind" ,ocaml-findlib)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("tcl" ,tcl)))
(inputs
`(("alsa" ,alsa-lib)
("atspi2" ,at-spi2-core)
("bluez" ,bluez)
("dbus" ,dbus)
("espeak" ,espeak)
("espeak-ng" ,espeak-ng)
("expat" ,expat)
("festival" ,festival)
("flite" ,flite)
("glib" ,glib)
("gpm" ,gpm)
("iconv" ,libiconv)
("icu" ,icu4c)
("libbraille" ,libbraille)
("libpcre2" ,pcre2)
("linux-headers" ,linux-libre-headers)
("louis" ,liblouis)
("ncurses" ,ncurses)
("polkit" ,polkit)
("speech-dispatcher" ,speech-dispatcher)
("util-linux" ,util-linux)
("util-linux:lib" ,util-linux "lib")
("x11" ,libx11)
("xaw" ,libxaw)
("xaw3d" ,libxaw3d)
("xext" ,libxext)
("xfixes" ,libxfixes)
("xt" ,libxt)
("xtst" ,libxtst)))
(synopsis "Braille TTY")
(description "BRLTTY is a background process (daemon) which provides access
to the Linux/Unix console (when in text mode) for a blind person using a
refreshable braille display. It drives the braille display, and provides
complete screen review functionality. Some speech capability has also been
incorporated.")
(home-page "https://brltty.app/")
(license license:lgpl2.1+)))
(define-public florence (define-public florence
(package (package
(name "florence") (name "florence")

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014, 2015, 2016, 2018, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com> ;;; Copyright © 2015 Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
@ -443,59 +443,65 @@ graphs and can export its output to different formats.")
(define-public facter (define-public facter
(package (package
(name "facter") (name "facter")
(version "4.0.26") (version "4.0.35")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/puppetlabs/facter-ng") (url "https://github.com/puppetlabs/facter")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0bab3by926gavbhkvp0in82vim575ybj8z6av3b12jdvla1s9rmz")))) "1f203g2hp96cp8w4x1myhqdj5j09z9s23kylwkrxr69fjhn0vhnb"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases
(add-after 'unpack 'delete-facter-ng-gemspec (modify-phases %standard-phases
(lambda _ (add-after 'unpack 'delete-facter-ng-gemspec
;; XXX: ruby-build-system incorrectly finds (lambda _
;; facter-ng.gemspec from this directory and tries to ;; XXX: ruby-build-system incorrectly finds
;; build that instead of the proper facter.gemspec. ;; facter-ng.gemspec from this directory and tries to
;; Just delete it as a workaround, as it appears to ;; build that instead of the proper facter.gemspec.
;; only exist for backwards-compatibility after the ;; Just delete it as a workaround, as it appears to
;; facter-ng->facter rename. ;; only exist for backwards-compatibility after the
(delete-file "agent/facter-ng.gemspec") ;; facter-ng->facter rename.
#t)) (delete-file "agent/facter-ng.gemspec")
(add-after 'unpack 'embed-iproute-reference #t))
(lambda* (#:key inputs #:allow-other-keys) (add-after 'unpack 'embed-absolute-references
(let ((iproute (assoc-ref inputs "iproute"))) ;; Refer to absolute executable file names to avoid propagation.
;; Provide an absolute reference to the 'ip' executable (lambda* (#:key inputs #:allow-other-keys)
;; to avoid propagating it. (substitute* (find-files "lib/facter/resolvers" "\\.rb$")
(substitute* "lib/resolvers/networking_linux_resolver.rb" (("execute\\('(which |)([^ ']+)" _ _ name)
(("execute\\('ip") (string-append "execute('" (or (which name)
(string-append "execute('" iproute "/sbin/ip"))) name))))
#t))) #t))
(delete 'check) (delete 'check)
(add-after 'wrap 'check (add-after 'wrap 'check
(lambda* (#:key tests? outputs #:allow-other-keys) (lambda* (#:key tests? outputs #:allow-other-keys)
;; XXX: The test suite wants to run Bundler and ;; XXX: The test suite wants to run Bundler and
;; complains that the gemspec is invalid. For now ;; complains that the gemspec is invalid. For now
;; just make sure that we can run the wrapped ;; just make sure that we can run the wrapped
;; executable directly. ;; executable directly.
(if tests? (if tests?
(invoke (string-append (assoc-ref outputs "out") (invoke (string-append (assoc-ref outputs "out")
"/bin/facter") "/bin/facter")
;; Many facts depend on /sys, /etc/os-release, ;; Many facts depend on /sys, /etc/os-release,
;; etc, so we only run a small sample. ;; etc, so we only run a small sample.
"facterversion" "architecture" "facterversion" "architecture"
"kernel" "kernelversion") "kernel" "kernelversion")
(format #t "tests disabled~%")) (format #t "tests disabled~%"))
#t))))) #t)))))
(inputs (inputs
`(("iproute" ,iproute) `(("ruby-hocon" ,ruby-hocon)
("ruby-hocon" ,ruby-hocon)
("ruby-sys-filesystem" ,ruby-sys-filesystem) ("ruby-sys-filesystem" ,ruby-sys-filesystem)
("ruby-thor" ,ruby-thor))) ("ruby-thor" ,ruby-thor)
;; For embed-absolute-references.
("dmidecode" ,dmidecode)
("inetutils" ,inetutils) ; for hostname
("iproute" ,iproute)
("pciutils" ,pciutils)
("util-linux" ,util-linux)))
(synopsis "Collect and display system facts") (synopsis "Collect and display system facts")
(description (description
"Facter is a tool that gathers basic facts about nodes (systems) such "Facter is a tool that gathers basic facts about nodes (systems) such
@ -508,26 +514,54 @@ or via the @code{facter} Ruby library.")
(define-public htop (define-public htop
(package (package
(name "htop") (name "htop")
(version "2.2.0") (version "3.0.0")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "http://hisham.hm/htop/releases/" (method git-fetch)
version "/htop-" version ".tar.gz")) (uri (git-reference
(sha256 (url "https://github.com/htop-dev/htop")
(base32 (commit version)))
"0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr")))) (sha256
(base32 "096gdnpaszs5rfp7qj8npi2jkvdqpp8mznn89f97ykrg6pgagwq4"))
(file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses))) `(("ncurses" ,ncurses)))
(native-inputs (native-inputs
`(("python" ,python-wrapper))) ;for scripts/MakeHeader.py `(("autoconf" ,autoconf)
(home-page "https://hisham.hm/htop/") ("automake" ,automake)
("python" ,python-wrapper))) ; for scripts/MakeHeader.py
(home-page "https://htop.dev")
(synopsis "Interactive process viewer") (synopsis "Interactive process viewer")
(description (description
"This is htop, an interactive process viewer. It is a text-mode "This is htop, an interactive process viewer. It is a text-mode
application (for console or X terminals) and requires ncurses.") application (for console or X terminals) and requires ncurses.")
(license license:gpl2))) (license license:gpl2)))
(define-public bashtop
(package
(name "bashtop")
(version "0.9.25")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aristocratos/bashtop")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"07nlr6vmyb7yihaxj1fp424lmhwkdjl6mls92v90f6gsvikpa13v"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list (string-append "PREFIX=" %output))
#:tests? #f ; bats test fails with loading load.bash
#:phases (modify-phases %standard-phases (delete 'configure))))
(home-page "https://github.com/aristocratos/bashtop")
(synopsis "Linux/OSX/FreeBSD resource monitor")
(description "Resource monitor that shows usage and stats for processor,
memory, disks, network and processes.")
(license license:asl2.0)))
(define-public pies (define-public pies
(package (package
(name "pies") (name "pies")
@ -916,7 +950,7 @@ connection alive.")
(define-public isc-dhcp (define-public isc-dhcp
(let* ((bind-major-version "9") (let* ((bind-major-version "9")
(bind-minor-version "11") (bind-minor-version "11")
(bind-patch-version "18") (bind-patch-version "22")
(bind-release-type "") ; for patch release, use "-P" (bind-release-type "") ; for patch release, use "-P"
(bind-release-version "") ; for patch release, e.g. "6" (bind-release-version "") ; for patch release, e.g. "6"
(bind-version (string-append bind-major-version (bind-version (string-append bind-major-version
@ -1012,10 +1046,10 @@ connection alive.")
;; if finds all the programs it needs. ;; if finds all the programs it needs.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(libexec (string-append out "/libexec")) (libexec (string-append out "/libexec"))
(coreutils (assoc-ref inputs "coreutils")) (coreutils (assoc-ref inputs "coreutils*"))
(inetutils (assoc-ref inputs "inetutils")) (inetutils (assoc-ref inputs "inetutils"))
(net-tools (assoc-ref inputs "net-tools")) (net-tools (assoc-ref inputs "net-tools"))
(sed (assoc-ref inputs "sed"))) (sed (assoc-ref inputs "sed*")))
(substitute* "client/scripts/linux" (substitute* "client/scripts/linux"
(("/sbin/ip") (("/sbin/ip")
(string-append (assoc-ref inputs "iproute") (string-append (assoc-ref inputs "iproute")
@ -1053,14 +1087,10 @@ connection alive.")
"/bind-" bind-version ".tar.gz")) "/bind-" bind-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0vws0zzb39mkphj4hhjrgfj9dzw951lc4pfa6pqg5ll5ma51mbsr")))) "1j9a4r83a77mp8k1y8z524c9rzdqgd8rzwczd6zwmw86a00xiimg"))))
;; When cross-compiling, we need the cross Coreutils and sed. ("coreutils*" ,coreutils)
;; Otherwise just use those from %FINAL-INPUTS. ("sed*" ,sed)))
,@(if (%current-target-system)
`(("coreutils" ,coreutils)
("sed" ,sed))
'())))
(home-page "https://www.isc.org/products/DHCP/") (home-page "https://www.isc.org/products/DHCP/")
(synopsis "Dynamic Host Configuration Protocol (DHCP) tools") (synopsis "Dynamic Host Configuration Protocol (DHCP) tools")
@ -1339,10 +1369,11 @@ at once based on a Perl regular expression.")
"packdir=\"/var/log\"")) "packdir=\"/var/log\""))
#t)) #t))
(add-before 'install 'tweak-rc-weekly (add-before 'install 'tweak-rc-weekly
(lambda _ (lambda* (#:key inputs #:allow-other-keys)
(substitute* "rc/weekly" (substitute* "rc/weekly"
(("/bin/kill") (("/bin/kill")
(which "kill")) (string-append (assoc-ref inputs "coreutils*")
"/bin/kill"))
(("syslogd\\.pid") (("syslogd\\.pid")
;; The file is called 'syslog.pid' (no 'd'). ;; The file is called 'syslog.pid' (no 'd').
"syslog.pid")) "syslog.pid"))
@ -1353,6 +1384,7 @@ at once based on a Perl regular expression.")
(native-inputs `(("texinfo" ,texinfo) (native-inputs `(("texinfo" ,texinfo)
("automake" ,automake) ("automake" ,automake)
("util-linux" ,util-linux))) ; for 'cal' ("util-linux" ,util-linux))) ; for 'cal'
(inputs `(("coreutils*" ,coreutils)))
(home-page "https://www.gnu.org/software/rottlog/") (home-page "https://www.gnu.org/software/rottlog/")
(synopsis "Log rotation and management") (synopsis "Log rotation and management")
(description (description
@ -1829,7 +1861,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 "20200528") (version "20200717")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1837,7 +1869,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
"01ajxnz9dpnvdbib7yv20dw21a1yyfgwiw3whg0xi57cf4app2md")))) "0jyy71szjr40c8v40qqw6yh3gfk8d6sl3nay69zrn5d88i3r0jca"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("flex" ,flex) (native-inputs `(("flex" ,flex)
("bison" ,bison))) ("bison" ,bison)))
@ -2049,7 +2081,7 @@ track changes in important system configuration files.")
(define-public libcap-ng (define-public libcap-ng
(package (package
(name "libcap-ng") (name "libcap-ng")
(version "0.7.10") (version "0.7.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2057,7 +2089,7 @@ track changes in important system configuration files.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1gzzy12agfa9ddipdf72h9y68zqqnvsjjylv4vnq6hj4w2safk58")))) "1s8akhnnazk0b5c6z5i3x54rjb26p8pz2wdl1m21ml3231qmr0c5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -2101,24 +2133,19 @@ degradation and failure.")
(define-public fdupes (define-public fdupes
(package (package
(name "fdupes") (name "fdupes")
(version "1.6.1") (version "2.1.2")
(source (source
(origin (origin
(method git-fetch) (method url-fetch)
(uri (git-reference (uri (string-append "https://github.com/adrianlopezroche/fdupes/"
(url "https://github.com/adrianlopezroche/fdupes") "releases/download/v" version "/"
(commit (string-append "v" version)))) "fdupes-" version ".tar.gz"))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9")))) (base32 "1g9p50xhi2sp0hqxml4w2k0kq9jv988q2yxm347z5349dlxvap6d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (inputs
'(#:phases (modify-phases %standard-phases `(("ncurses" ,ncurses)
(delete 'configure)) ("pcre2" ,pcre2)))
#:tests? #f ; no 'check' target
#:make-flags (list "CC=gcc"
(string-append "PREFIX="
(assoc-ref %outputs "out")))))
(home-page "https://github.com/adrianlopezroche/fdupes") (home-page "https://github.com/adrianlopezroche/fdupes")
(synopsis "Identify duplicate files") (synopsis "Identify duplicate files")
(description (description
@ -3170,7 +3197,7 @@ tool for remote execution and deployment.")
(define-public neofetch (define-public neofetch
(package (package
(name "neofetch") (name "neofetch")
(version "7.0.0") (version "7.1.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3179,7 +3206,7 @@ tool for remote execution and deployment.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0xc0fdc7n5bhqirh83agqiy8r14l14zwca07czvj8vgnsnfybslr")))) "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests
@ -3344,14 +3371,14 @@ information tool.")
(define-public nnn (define-public nnn
(package (package
(name "nnn") (name "nnn")
(version "3.3") (version "3.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/jarun/nnn/releases/download/v" (uri (string-append "https://github.com/jarun/nnn/releases/download/v"
version "/nnn-v" version ".tar.gz")) version "/nnn-v" version ".tar.gz"))
(sha256 (sha256
(base32 "1jiaygylwrlz6rlls1q69xw10j6ypr96yshsbzisg0adk37lbchn")))) (base32 "189h950m1jjrnhvgcvzk6nj89l58rkxim7bxa0441ssajxpaw0vq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ncurses" ,ncurses) `(("ncurses" ,ncurses)
@ -3562,7 +3589,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi")) (let ((real-name "inxi"))
(package (package
(name "inxi-minimal") (name "inxi-minimal")
(version "3.1.04-1") (version "3.1.06-1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3571,7 +3598,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 "1mirnrrqfjyl2r7fwnpjlk37i5hf8f7lxv2yxcbdfjf2b3dfbpvl")))) (base32 "0h65n03q9kdsv0i1q5f88i11iv79ca7fqq97rdkzkmiqb4whhnm2"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(inputs (inputs
`(("bash" ,bash-minimal) `(("bash" ,bash-minimal)
@ -3954,21 +3981,22 @@ supplied by the user when logging in.")
(define-public jc (define-public jc
(package (package
(name "jc") (name "jc")
(version "1.11.8") (version "1.13.4")
(source (origin (source
(method git-fetch) (origin
(uri (git-reference ;; The PyPI tarball lacks the test suite.
(url "https://github.com/kellyjonbrazil/jc") (method git-fetch)
(commit (string-append "v" version)))) (uri (git-reference
(file-name (git-file-name name version)) (url "https://github.com/kellyjonbrazil/jc")
(sha256 (commit (string-append "v" version))))
(base32 (file-name (git-file-name name version))
"0rkckbgm04ql4r48wjgljfiqvsz36n99yqcpcyna8lvlm8h4nmwa")))) (sha256
(base32 "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-ruamel.yaml" ,python-ruamel.yaml) `(("python-pygments" ,python-pygments)
("python-xmltodict" ,python-xmltodict) ("python-ruamel.yaml" ,python-ruamel.yaml)
("python-pygments" ,python-pygments))) ("python-xmltodict" ,python-xmltodict)))
(home-page "https://github.com/kellyjonbrazil/jc") (home-page "https://github.com/kellyjonbrazil/jc")
(synopsis "Convert the output of command-line tools to JSON") (synopsis "Convert the output of command-line tools to JSON")
(description "@code{jc} JSONifies the output of many CLI tools and (description "@code{jc} JSONifies the output of many CLI tools and

View file

@ -79,6 +79,11 @@
(ice-9 match)) (ice-9 match))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; This allows us to call the 'agda' binary before installing.
(add-after 'unpack 'set-ld-library-path
(lambda _
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))
#t))
;; FIXME: This is a copy of the standard configure phase with a tiny ;; FIXME: This is a copy of the standard configure phase with a tiny
;; difference: this package needs the -package-db flag to be passed ;; difference: this package needs the -package-db flag to be passed
;; to "runhaskell" in addition to the "configure" action, because ;; to "runhaskell" in addition to the "configure" action, because
@ -90,30 +95,25 @@
#:allow-other-keys) #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(name-version (strip-store-file-name out)) (name-version (strip-store-file-name out))
(input-dirs (match inputs
(((_ . dir) ...)
dir)
(_ '())))
(ghc-path (getenv "GHC_PACKAGE_PATH")) (ghc-path (getenv "GHC_PACKAGE_PATH"))
(params (append `(,(string-append "--prefix=" out)) (params
`(,(string-append "--libdir=" out "/lib")) `(,(string-append "--prefix=" out)
`(,(string-append "--bindir=" out "/bin")) ,(string-append "--libdir=" out "/lib")
`(,(string-append ,(string-append "--docdir=" out
"--docdir=" out "/share/doc/" name-version)
"/share/doc/" name-version)) "--libsubdir=$compiler/$pkg-$version"
'("--libsubdir=$compiler/$pkg-$version") "--package-db=../package.conf.d"
'("--package-db=../package.conf.d") "--global"
'("--global") ,@(if tests?
`(,@(map '("--enable-tests")
(cut string-append "--extra-include-dirs=" <>) '())
(search-path-as-list '("include") input-dirs))) ;; Build and link with shared libraries
`(,@(map "--enable-shared"
(cut string-append "--extra-lib-dirs=" <>) "--enable-executable-dynamic"
(search-path-as-list '("lib") input-dirs))) "--ghc-option=-fPIC"
(if tests? ,(string-append "--ghc-option=-optl=-Wl,-rpath=" out
'("--enable-tests") "/lib/$compiler/$pkg-$version")
'()) ,@configure-flags)))
configure-flags)))
(unsetenv "GHC_PACKAGE_PATH") (unsetenv "GHC_PACKAGE_PATH")
(apply invoke "runhaskell" "-package-db=../package.conf.d" (apply invoke "runhaskell" "-package-db=../package.conf.d"
"Setup.hs" "configure" params) "Setup.hs" "configure" params)

View file

@ -28,6 +28,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages imagemagick) #:use-module (gnu packages imagemagick)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
@ -37,8 +38,52 @@
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public zxing-cpp
(package
(name "zxing-cpp")
(version "1.0.8")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/nu-book/zxing-cpp.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "011sq8wcjfxbnd8sj6bf2fgkamlp8gj6q835g61c952npvwsnl71"))))
(native-inputs
`(("googletest-source" ,(package-source googletest))))
(build-system cmake-build-system)
(arguments
`(#:out-of-source? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest
;; Copy the googletest sources to where the CMake build expects them.
(lambda* (#:key inputs #:allow-other-keys)
(let ((source (assoc-ref inputs "googletest-source"))
(target "test/unit/googletest-src"))
(mkdir-p target)
(copy-recursively source target)
;; Disable downloading via ExternalProject.
(substitute* "test/unit/CMakeLists.txt.in"
(("ExternalProject_Add\\(") "message("))
#t)))
(replace 'check
(lambda _
(with-directory-excursion "test/unit"
(invoke "cmake" ".")
(invoke "make")
(invoke "./ZXingUnitTest"))
#t)))))
(synopsis "C++ port of ZXing")
(description "ZXing-CPP is a barcode scanning library.")
(home-page "https://github.com/nu-book/zxing-cpp")
(license license:asl2.0)))
(define-public barcode (define-public barcode
(package (package

View file

@ -4,7 +4,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; 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, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2019, 2020 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>
@ -74,7 +74,7 @@
(define-public mpfrcx (define-public mpfrcx
(package (package
(name "mpfrcx") (name "mpfrcx")
(version "0.5") (version "0.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -82,7 +82,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs")))) "0gz5rma9al2jrifpknqkcnd9dkf8l05jcxy3s4ghwhd4y3h5dwia"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("gmp" ,gmp) `(("gmp" ,gmp)
@ -151,7 +151,12 @@ line applications.")
(define-public fplll (define-public fplll
(package (package
(name "fplll") (name "fplll")
(version "5.2.1") ;; The most recent version 5.3.3 fails in the configure phase:
;; ./configure: line 12956: syntax error near unexpected token `LIBQD,'
;; ./configure: line 12956: ` PKG_CHECK_MODULES(LIBQD, qd, have_libqd="yes",'
;; The error disappears when adding qd as an input; but this is
;; supposed to be an optional input.
(version "5.3.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -160,7 +165,7 @@ line applications.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"015qmrd7nfaysbv1hbwiprz9g6hnww1y1z1xw8f43ysb7k1b5nbg")))) "00iyz218ywspizjiimrjdcqvdqmrsb2367zyy3vkmypnf9i9l680"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
@ -198,7 +203,7 @@ the real span of the lattice.")
(define-public python-fpylll (define-public python-fpylll
(package (package
(name "python-fpylll") (name "python-fpylll")
(version "0.4.1") (version "0.5.2")
(source (source
(origin (origin
;; Pypi contains and older release, so we use a tagged release from ;; Pypi contains and older release, so we use a tagged release from
@ -210,7 +215,7 @@ the real span of the lattice.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"01x2sqdv0sbjj4g4waj0hj4rcn4bq7h17442xaqwbznym9azmn9w")))) "1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("fplll" ,fplll) `(("fplll" ,fplll)
@ -346,7 +351,8 @@ varieties, i.e. Jacobians of hyperelliptic curves.
It can also be used to compute theta constants at arbitrary It can also be used to compute theta constants at arbitrary
precision.") precision.")
(license license:gpl3+) (license license:gpl3+)
(home-page "http://cmh.gforge.inria.fr/"))) (home-page
"https://gitlab.inria.fr/cmh/cmh#cmh-computation-of-genus-2-class-polynomials")))
(define-public giac (define-public giac
(package (package
@ -440,14 +446,13 @@ or text interfaces) or as a C++ library.")
(define-public flint (define-public flint
(package (package
(name "flint") (name "flint")
(version "2.6.0") (version "2.6.3")
(source (origin (source
(method url-fetch) (origin
(uri (string-append (method url-fetch)
"http://flintlib.org/flint-" (uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
version ".tar.gz")) (sha256
(sha256 (base32 (base32 "1qrf6hzbbmg7mhkhbb0bab8z2xpdnba5cj4kmmf72lzs0457a6nf"))))
"0h08a71kn8347zsqjamqnmrxjpsnnzpmhvxb6d2xmfrcs6nyv2ch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("ntl" ,ntl))) `(("ntl" ,ntl)))
@ -455,7 +460,7 @@ or text interfaces) or as a C++ library.")
`(("gmp" ,gmp) `(("gmp" ,gmp)
("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h ("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h
(arguments (arguments
`(#:parallel-tests? #f ; seems to be necessary on arm `(#:parallel-tests? #f ; seems to be necessary on arm
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'newer-c++ (add-before 'configure 'newer-c++
@ -469,8 +474,8 @@ or text interfaces) or as a C++ library.")
(gmp (assoc-ref inputs "gmp")) (gmp (assoc-ref inputs "gmp"))
(mpfr (assoc-ref inputs "mpfr")) (mpfr (assoc-ref inputs "mpfr"))
(ntl (assoc-ref inputs "ntl"))) (ntl (assoc-ref inputs "ntl")))
;; do not pass "--enable-fast-install", which makes the ;; Do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail ;; homebrew configure process fail.
(invoke "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--with-gmp=" gmp) (string-append "--with-gmp=" gmp)
@ -489,7 +494,7 @@ Operations that can be performed include conversions, arithmetic,
GCDs, factoring, solving linear systems, and evaluating special GCDs, factoring, solving linear systems, and evaluating special
functions. In addition, FLINT provides various low-level routines for functions. In addition, FLINT provides various low-level routines for
fast arithmetic.") fast arithmetic.")
(license license:gpl2+) (license license:lgpl2.1+)
(home-page "http://flintlib.org/"))) (home-page "http://flintlib.org/")))
(define-public arb (define-public arb
@ -1113,17 +1118,17 @@ xtensor provides:
(define-public gap (define-public gap
(package (package
(name "gap") (name "gap")
(version "4.10.2") (version "4.11.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.gap-system.org/pub/gap/gap-" (uri (string-append "https://files.gap-system.org/gap-"
(version-major+minor version) (version-major+minor version)
"/tar.bz2/gap-" "/tar.bz2/gap-"
version version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94")) (base32 "00l6hvy4iggnlrib4vp805sxdm3j7n3hzpv5zs9hbiiavh80l1xz"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1))) (modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet (snippet
'(begin '(begin
@ -1135,41 +1140,46 @@ xtensor provides:
;; FIXME: This might be fixed in the next release, see ;; FIXME: This might be fixed in the next release, see
;; https://github.com/gap-system/gap/issues/3292 ;; https://github.com/gap-system/gap/issues/3292
(delete-file "tst/testinstall/dir.tst") (delete-file "tst/testinstall/dir.tst")
;; Delete all packages except for a fixed list. ;; Delete all packages except for a fixed list,
;; given by their names up to version numbers.
(with-directory-excursion "pkg" (with-directory-excursion "pkg"
(for-each delete-file-recursively (for-each delete-file-recursively
(lset-difference string=? (scandir ".") (lset-difference
(lambda (all keep) (string-prefix? keep all))
(scandir ".")
'("." ".." '("." ".."
;; Necessary packages. ;; Necessary packages.
"GAPDoc-1.6.2" "GAPDoc-"
"primgrp-3.3.2" "primgrp-"
"SmallGrp-1.3" ; artistic2.0 "SmallGrp-" ; artistic2.0
"transgrp" ; artistic2.0 for data, "transgrp" ; artistic2.0 for data,
; gpl2 or gpl3 for code ; gpl2 or gpl3 for code
;; Recommanded package. ;; Recommended package.
"io-4.5.4" ; gpl3+ "io-" ; gpl3+
;; Optional packages, searched for at start, ;; Optional packages, searched for at start,
;; and their depedencies. ;; and their depedencies.
"alnuth-3.1.0" "alnuth-"
"autpgrp-1.10" "autpgrp-"
"crisp-1.4.4" ; bsd-2 "crisp-" ; bsd-2
"ctbllib" ; gpl3+ according to doc/chap0.txt "ctbllib" ; gpl3+, clarified in the next release;
"FactInt-1.6.2" ; see
; http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/README.md
"FactInt-"
"fga" "fga"
"irredsol-1.4" ; bsd-2 "irredsol-" ; bsd-2
"laguna-3.9.2" "laguna-"
"polenta-1.3.8" "polenta-"
"polycyclic-2.14" "polycyclic-"
"radiroot-2.8" "radiroot-"
"resclasses-4.7.1" "resclasses-"
"sophus-1.24" "sophus-"
"tomlib-1.2.7" ; gpl2+, clarified in the git repository "tomlib-"
; and the next release "utils-"))))
"utils-0.59"))))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gmp" ,gmp) `(("gmp" ,gmp)
("readline" ,readline)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
`(#:modules ((ice-9 ftw) `(#:modules ((ice-9 ftw)
@ -1196,15 +1206,14 @@ xtensor provides:
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(lib (string-append out "/lib"))
(prog (string-append bin "/gap")) (prog (string-append bin "/gap"))
(prog-real (string-append bin "/.gap-real")) (prog-real (string-append bin "/.gap-real"))
(share (string-append out "/share/gap")) (share (string-append out "/share/gap")))
(include (string-append out "/include/gap"))
(include-hpc (string-append include "/hpc")))
;; Install only the gap binary; the gac compiler is left ;; Install only the gap binary; the gac compiler is left
;; for maybe later. "Wrap" it in a shell script that calls ;; for maybe later. "Wrap" it in a shell script that calls
;; the binary with the correct parameter. ;; the binary with the correct parameter.
;; The make target install-bin is supposed to do that, but
;; is not currently working.
(mkdir-p bin) (mkdir-p bin)
(copy-file "gap" prog-real) (copy-file "gap" prog-real)
(call-with-output-file prog (call-with-output-file prog
@ -1215,52 +1224,18 @@ xtensor provides:
prog-real prog-real
share))) share)))
(chmod prog #o755) (chmod prog #o755)
;; Install the headers, which are needed by Sage. The ;; Install the headers and library, which are needed by Sage.
;; Makefile target "install-headers" was available in (invoke "make" "install-headers")
;; gap-4.10.0, but has been commented out in gap-4.10.1. (invoke "make" "install-libgap")
(mkdir-p include-hpc)
(install-file "gen/config.h" include)
(let ((file-name-predicate-without-stat
(lambda (regex)
(cut (file-name-predicate regex) <> #f))))
(with-directory-excursion "src"
(for-each
(cut install-file <> include)
(scandir "."
(file-name-predicate-without-stat ".*\\.h$"))))
(with-directory-excursion "src/hpc"
(for-each
(cut install-file <> include-hpc)
(scandir "."
(file-name-predicate-without-stat ".*\\.h$")))))
;; Install the library, which is needed by Sage. The
;; Makefile target "install-libgap" was available in
;; gap-4.10.0, but has been commented out in gap-4.10.1.
;; Compared to the Makefile, which used libtool, the
;; following approach of copying files and making symlinks
;; is rather pedestrian. There is hope that some later
;; version of gap reinstates and completes the install
;; targets.
(invoke "make" "libgap.la")
(install-file "libgap.la" lib)
(install-file ".libs/libgap.so.0.0.0" lib)
(symlink "libgap.so.0.0.0" (string-append lib "/libgap.so"))
(symlink "libgap.so.0.0.0" (string-append lib "/libgap.so.0"))
;; Install a certain number of files and directories to
;; SHARE, where the wrapped shell script expects them.
;; Remove information on the build directory from sysinfo.gap. ;; Remove information on the build directory from sysinfo.gap.
(substitute* "sysinfo.gap" (substitute* "sysinfo.gap"
(("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"") (("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
(("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"") (("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
(("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\"")) (("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
(install-file "sysinfo.gap" share) (invoke "make" "install-gaproot")
(copy-recursively "grp" (string-append share "/grp")) ;; Copy the directory of compiled packages; the make target
(copy-recursively "pkg" (string-append share "/pkg")) ;; install-pkg is currently empty.
;; The following is not the C library libgap.so, but a (copy-recursively "pkg" (string-append share "/pkg")))
;; library of GAP code.
(copy-recursively "lib" (string-append share "/lib"))
;; The gap binary looks for documentation inside SHARE.
(copy-recursively "doc" (string-append share "/doc")))
#t))))) #t)))))
(home-page "https://www.gap-system.org/") (home-page "https://www.gap-system.org/")
(synopsis (synopsis

View file

@ -5,9 +5,9 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2017 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
@ -126,9 +126,9 @@ use their packages mostly unmodified in our Android NDK build system.")
;; Big thanks to them for laying the groundwork. ;; Big thanks to them for laying the groundwork.
;; The version tag is consistent between all repositories. ;; The version tag is consistent between all repositories.
(define (android-platform-version) "7.1.2_r36") (define-public (android-platform-version) "7.1.2_r36")
(define (android-platform-system-core version) (define-public (android-platform-system-core version)
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -185,7 +185,7 @@ use their packages mostly unmodified in our Android NDK build system.")
(base32 (base32
checksum)))) checksum))))
(define android-liblog (define-public android-liblog
(package (package
(name "android-liblog") (name "android-liblog")
(version (android-platform-version)) (version (android-platform-version))
@ -201,7 +201,16 @@ use their packages mostly unmodified in our Android NDK build system.")
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(symlink "liblog.so.0" (string-append out "/lib/liblog.so")) (symlink "liblog.so.0" (string-append out "/lib/liblog.so"))
#t)))))) #t)))
(add-after 'install 'install-headers
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively
"../include/log" (string-append out "/include/log"))
;; For android/log.h, the only header in the android directory.
(copy-recursively
"../include/android" (string-append out "/include/android")))
#t)))))
(home-page "https://developer.android.com/") (home-page "https://developer.android.com/")
(synopsis "Logging library from the Android platform.") (synopsis "Logging library from the Android platform.")
(description "@code{liblog} represents an interface to the volatile Android (description "@code{liblog} represents an interface to the volatile Android
@ -229,7 +238,7 @@ in Main, System, Radio and Events sub-logs.")
various Android core host applications.") various Android core host applications.")
(license license:asl2.0))) (license license:asl2.0)))
(define android-libcutils (define-public android-libcutils
(package (package
(name "android-libcutils") (name "android-libcutils")
(version (android-platform-version)) (version (android-platform-version))
@ -691,7 +700,7 @@ file system.")
(define-public android-udev-rules (define-public android-udev-rules
(package (package
(name "android-udev-rules") (name "android-udev-rules")
(version "20191103") (version "20200613")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -700,7 +709,7 @@ file system.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0x2f2sv0x0ry7kccp47s0hlxps3hbpg37dj3xjjgpdm5hmn2cjq3")))) (base32 "0cf5br8x6iwxc1cifv0i1klw7skgs8hghdx6qlqby68kyqg81bb2"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs `(("source" ,source))) (native-inputs `(("source" ,source)))
(arguments (arguments
@ -907,14 +916,14 @@ useful for reverse engineering, analysis of Android applications and more.")
(define-public fdroidserver (define-public fdroidserver
(package (package
(name "fdroidserver") (name "fdroidserver")
(version "1.1.1") (version "1.1.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "fdroidserver" version)) (uri (pypi-uri "fdroidserver" version))
(sha256 (sha256
(base32 (base32
"0fp7q8faicx6i6wxm717qqaham3jpilb23mvynpz6v73z7hm6wcg")))) "0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -922,14 +931,20 @@ useful for reverse engineering, analysis of Android applications and more.")
(add-after 'unpack 'fix-versioning (add-after 'unpack 'fix-versioning
(lambda _ (lambda _
(substitute* "setup.py" (substitute* "setup.py"
(("0.2.1") ,(package-version python-pyasn1-modules))) (("0.2.1") ,(package-version python-pyasn1-modules))
;; The dependency on docker has been removed upstream by
;; a fairly large patch:
;; https://gitlab.com/fdroid/fdroidserver/-/commit/89614851250c79a05db84070feca6dea033af334
;; that is not in a release yet. It appears we can compile with
;; a newer version.
(("docker-py >= 1.9, < 2.0") "docker >= 1.9"))
#t))))) #t)))))
(propagated-inputs (propagated-inputs
`(("python-androguard" ,python-androguard) `(("python-androguard" ,python-androguard)
("python-apache-libcloud" ,python-apache-libcloud) ("python-apache-libcloud" ,python-apache-libcloud)
("python-clint" ,python-clint) ("python-clint" ,python-clint)
("python-defusedxml" ,python-defusedxml) ("python-defusedxml" ,python-defusedxml)
("python-docker-py" ,python-docker-py) ("python-docker" ,python-docker)
("python-gitpython" ,python-gitpython) ("python-gitpython" ,python-gitpython)
("python-mwclient" ,python-mwclient) ("python-mwclient" ,python-mwclient)
("python-paramiko" ,python-paramiko) ("python-paramiko" ,python-paramiko)

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -264,7 +264,7 @@ waveform until they line up with the proper sounds.")
(define-public pencil2d (define-public pencil2d
(package (package
(name "pencil2d") (name "pencil2d")
(version "0.6.4") (version "0.6.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -273,7 +273,7 @@ waveform until they line up with the proper sounds.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0zi8x0w8n817zds2lyw9l8j33c03kiybkrcyy3s5fg66mchmrwnr")))) "06l60wawkhb3wrsj79p5f7ka5cgcyly36pbvm95fvwbkmlvmjzf1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)

View file

@ -404,8 +404,12 @@ dictionaries, including personal ones.")
(find-files "speller" (find-files "speller"
,(string-append language ".*\\.dic$")))) ,(string-append language ".*\\.dic$"))))
(install-file ,(string-append "speller/" language ".aff") ;; Install affix files corresponding to installed dictionaries
hunspell) (for-each (lambda (dic)
(install-file (string-append
"speller/" (basename dic ".dic") ".aff")
hunspell))
(find-files hunspell ".*\\.dic$"))
(symlink hunspell (string-append myspell "/dicts")) (symlink hunspell (string-append myspell "/dicts"))
(for-each (lambda (file) (for-each (lambda (file)
(install-file file doc)) (install-file file doc))

View file

@ -56,20 +56,20 @@
(define-public cfitsio (define-public cfitsio
(package (package
(name "cfitsio") (name "cfitsio")
(version "3.47") (version "3.49")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/" "http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/"
name "-" version ".tar.gz")) "cfitsio-" version ".tar.gz"))
(sha256 (sha256
(base32 "1vzlxnrjckz78p2wf148v2z3krkwnykfqvlj42sz3q711vqid1a1")))) (base32 "1cyl1qksnkl3cq1fzl4dmjvkd6329b57y9iqyv44wjakbh6s4rav"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; XXX Building with curl currently breaks wcslib. It doesn't use ;; XXX Building with curl currently breaks wcslib. It doesn't use
;; pkg-config and hence won't link with -lcurl. ;; pkg-config and hence won't link with -lcurl.
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths

View file

@ -32,6 +32,7 @@
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net> ;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -113,6 +114,7 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
@ -127,6 +129,308 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)) #:use-module (srfi srfi-26))
(define-public opensles
(package
(name "opensles")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/KhronosGroup/OpenSL-ES-Registry.git")
(commit "ea5104bf37bf525c25e6ae2386586048179d0fda")))
(file-name (git-file-name name version))
(sha256
(base32 "0j5bm7h3ahz66f23i9abwc0y10agfkpksnj6y078x2nichq66h4f"))
(patches
(search-patches "opensles-add-license-file.patch"))))
(build-system copy-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'clean
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(mkdir-p (string-append out "/etc"))
(mkdir-p (string-append out "/include"))
(mkdir-p (string-append out "/share"))
(rename-file
(string-append out "/api/1.1/OpenSLES_IID.c")
(string-append out "/etc/OpenSLES_IID.c"))
(rename-file
(string-append out "/api/1.1/OpenSLES.h")
(string-append out "/include/OpenSLES.h"))
(rename-file
(string-append out "/api/1.1/OpenSLES_Platform.h")
(string-append out "/include/OpenSLES_Platform.h"))
(rename-file
(string-append out "/api/1.1/README.txt")
(string-append out "/share/README.txt"))
(rename-file
(string-append out "/LICENSE.txt")
(string-append out "/share/LICENSE.txt"))
(for-each delete-file-recursively
(list
(string-append out "/api")
(string-append out "/specs")))
(for-each delete-file
(list
(string-append out "/CODE_OF_CONDUCT.md")
(string-append out "/index.php")
(string-append out "/README.md"))))
#t)))))
(synopsis "Embedded Audio Acceleration")
(description "OpenSLES is a royalty-free, cross-platform,
hardware-accelerated audio API tuned for embedded systems. It provides a
standardized, high-performance, low-latency method to access audio
functionality for developers of native applications on embedded mobile
multimedia devices, enabling straightforward cross-platform deployment of
hardware and software audio capabilities, reducing implementation effort, and
promoting the market for advanced audio.")
(home-page "https://www.khronos.org/opensles/")
(license (license:non-copyleft "file:///LICENSE.txt"))))
(define-public wildmidi
(package
(name "wildmidi")
(version "0.4.3")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/Mindwerks/wildmidi.git")
(commit (string-append name "-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "01f4a9c5xlap5a4pkfnlgkzk5pjlk43zkq6fnw615ghya04g6hrl"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No target
#:configure-flags
(list
"-DWANT_ALSA=ON"
"-DWANT_OSS=ON"
"-DWANT_OPENAL=ON")))
(inputs
`(("alsa" ,alsa-lib)
("openal" ,openal)))
(synopsis "Software Synthesizer")
(description "WildMIDI is a simple software midi player which has a core
softsynth library that can be use with other applications.")
(home-page "https://www.mindwerks.net/projects/wildmidi/")
(license
(list
;; Library.
license:lgpl3+
;; Player.
license:gpl3+))))
(define-public webrtc-audio-processing
(package
(name "webrtc-audio-processing")
(version "0.3.1")
(source
(origin
(method url-fetch)
(uri
(string-append "http://freedesktop.org/software/pulseaudio/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32 "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0"))))
(build-system gnu-build-system)
(synopsis "WebRTC's Audio Processing Library")
(description "WebRTC-Audio-Processing library based on Google's
implementation of WebRTC.")
(home-page
"https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/")
(license (license:non-copyleft "file:///COPYING"))))
(define-public vo-aacenc
(package
(name "vo-aacenc")
(version "0.1.3")
(source
(origin
(method url-fetch)
(uri
(string-append "https://sourceforge.net/projects/opencore-amr/files/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "0dhghm3c8pqrriwwyj5x9i0yf52fmdfijbgqqkvqvwarldvp86p5"))))
(build-system gnu-build-system)
(synopsis "VisualOn AAC Encoder")
(description "VO-AACENC is the VisualOn implementation of Advanced Audio
Coding (AAC) encoder.")
(home-page "https://sourceforge.net/projects/opencore-amr/")
(license license:asl2.0)))
(define-public tinyalsa
(package
(name "tinyalsa")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/tinyalsa/tinyalsa.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0ajyvml5bnzvhiyyrn42gqwgg23ssxkfh09rvsnywhzxhd0xai4h"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No target
#:phases
(modify-phases %standard-phases
(delete 'configure))
#:make-flags
(list
(string-append "PREFIX=" (assoc-ref %outputs "out")))))
(synopsis "ALSA interfacing library")
(description "TinyALSA is a small library to interface with ALSA in the
Linux kernel.")
(home-page "https://github.com/tinyalsa/tinyalsa")
(license (license:non-copyleft "file:///NOTICE"))))
(define-public libopenmpt
(package
(name "libopenmpt")
(version "0.5.2")
(source
(origin
(method url-fetch)
(uri
(string-append "https://download.openmpt.org/archive/libopenmpt/src/"
"libopenmpt-" version "+release.autotools.tar.gz"))
(sha256
(base32 "1cwpc4j90dpxa2siia68rg9qwwm2xk6bhxnslfjj364507jy6s4l"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--docdir=" (assoc-ref %outputs "out")
"/share/doc/" ,name "-" ,version))
#:phases
(modify-phases %standard-phases
(add-after 'install 'delete-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each delete-file (find-files lib "\\.a$"))
#t))))))
(native-inputs
`(("doxygen" ,doxygen)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(inputs
`(("alsa" ,alsa-lib)
("flac" ,flac)
("mpg123" ,mpg123)
("portaudio" ,portaudio)
("pulseaudio" ,pulseaudio)
("sdl2" ,sdl2)
("sndfile" ,libsndfile)
("vorbis" ,libvorbis)
("zlib" ,zlib)))
(synopsis "Audio tracking library")
(description "LibOpenMPT is a cross-platform C++ and C module playback
library. It is based on the player code of the Open ModPlug Tracker project.")
(home-page "https://openmpt.org/")
(license (license:non-copyleft "file:///LICENSE"))))
(define-public libofa
(package
(name "libofa")
(version "0.9.3")
(source
(origin
(method url-fetch)
(uri
(string-append "https://storage.googleapis.com/"
"google-code-archive-downloads/v2/code.google.com/"
"musicip-libofa/" name "-" version ".tar.gz"))
(sha256
(base32 "184ham039l7lwhfgg0xr2vch2xnw1lwh7sid432mh879adhlc5h2"))
(patches
(search-patches
"libofa-ftbfs-1.diff"
"libofa-curl.diff"
"libofa-ftbfs-2.diff"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("expat" ,expat)))
(propagated-inputs
`(("fftw" ,fftw)))
(synopsis "Open Fingerprint Architecture")
(description "LibOFA is an audio fingerprint library, created and provided
by MusicIP.")
(home-page "https://code.google.com/archive/p/musicip-libofa/")
(license license:gpl2+)))
(define-public faac
(package
(name "faac")
(version "1.30")
(source
(origin
(method url-fetch)
(uri
(string-append "https://sourceforge.net/projects/faac/files/faac-src/"
"faac-1.30/faac-1_30.tar.gz/download"))
(sha256
(base32 "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(synopsis "Freeware Advanced Audio Coder")
(description "FAAC is an MPEG-4 and MPEG-2 AAC encoder.")
(home-page "https://www.audiocoding.com/faac.html")
(license
(list
;; ISO MPEG-4 reference code.
license:gpl2+
;; Others.
license:lgpl2.0+))))
(define-public libtimidity
(package
(name "libtimidity")
(version "0.2.6")
(source
(origin
(method url-fetch)
(uri
(string-append "https://sourceforge.net/projects/" name "/files/"
name "/" version "/" name "-" version ".tar.gz"))
(sha256
(base32 "0p2px0m907gi1zpdr0l9adq25jl89j85c11ag9s2g4yc6n1nhgfm"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; XXX: LibTiMidity could not be initialised
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("ao" ,ao)))
(synopsis "MIDI to WAVE converter library")
(description "LibTiMidity is a MIDI to WAVE converter library that uses
Gravis Ultrasound-compatible patch files to generate digital audio data from
General MIDI files.")
(home-page "http://libtimidity.sourceforge.net/")
(license
;; This project is dual-licensed.
;; Either of the following licenses can be exercised.
(list
license:lgpl2.1+
license:artistic2.0))))
(define-public vo-amrwbenc (define-public vo-amrwbenc
(package (package
(name "vo-amrwbenc") (name "vo-amrwbenc")
@ -474,7 +778,7 @@ engineers, musicians, soundtrack editors and composers.")
;; SSE instructions are available on Intel systems only. ;; SSE instructions are available on Intel systems only.
,@(if (any (cute string-prefix? <> (or (%current-target-system) ,@(if (any (cute string-prefix? <> (or (%current-target-system)
(%current-system))) (%current-system)))
'("x64_64" "i686")) '("x86_64" "i686"))
'() '()
'("--enable-sse=no")) '("--enable-sse=no"))
;; portmidi, libid3tag and libmad provide no .pc files, so ;; portmidi, libid3tag and libmad provide no .pc files, so
@ -1386,22 +1690,22 @@ also play midifiles using a Soundfont.")
(define-public faad2 (define-public faad2
(package (package
(name "faad2") (name "faad2")
(version "2.8.6") (version "2.8.8")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-" (method url-fetch)
(version-major+minor version) ".0/" (uri
"faad2-" version ".tar.gz")) (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
(sha256 (version-major+minor version) ".0/"
(base32 "faad2-" version ".tar.gz"))
"089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5")))) (sha256
(base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://www.audiocoding.com/faad2.html") (home-page "https://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder") (synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description (description
"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, "FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
PS, and DAB+.") (license license:gpl2+)))
(license license:gpl2)))
(define-public faust (define-public faust
(package (package
@ -1991,6 +2295,48 @@ with applications that support them (e.g. PulseAudio).")
implementation of the Open Sound Control (@dfn{OSC}) protocol.") implementation of the Open Sound Control (@dfn{OSC}) protocol.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public rtaudio
(package
(name "rtaudio")
(version "5.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/thestk/rtaudio")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "156c2dgh6jrsyfn1y89nslvaxm4yifmxridsb708yvkaym02w2l8"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("pulseaudio" ,pulseaudio)))
(synopsis "Common API for real-time audio I/O")
(description
"RtAudio is a set of C++ classes that provides a common API for real-time
audio input/output. It was designed with the following objectives:
@itemize
@item object-oriented C++ design
@item simple, common API across all supported platforms
@item only one source and one header file for easy inclusion in programming
projects
@item allow simultaneous multi-api support
@item support dynamic connection of devices
@item provide extensive audio device parameter control
@item allow audio device capability probing
@item automatic internal conversion for data format, channel number
compensation, (de)interleaving, and byte-swapping
@end itemize")
(home-page "https://www.music.mcgill.ca/~gary/rtaudio/")
;; License is expat with a non-binding request to send modifications to
;; original developer.
(license license:expat)))
(define-public python-pyaudio (define-public python-pyaudio
(package (package
(name "python-pyaudio") (name "python-pyaudio")
@ -2582,9 +2928,12 @@ aimed at audio/musical applications.")
("automake" ,automake) ("automake" ,automake)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("libtool" ,libtool))) ("libtool" ,libtool)))
(synopsis "Real-time library for sampling rate conversion") (synopsis "Sampling rate conversion and filter design utilities")
(description "The @command{resample} software package contains free (description "This package contains the @command{resample} and
sampling-rate conversion and filter design utilities.") @command{windowfilter} command line utilities. The @command{resample} command
allows changing the sampling rate of a sound file, while the
@command{windowfilter} command allows to design Finite Impulse Response (FIR)
filters using the so-called @emph{window method}.")
(home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html") (home-page "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
@ -3676,14 +4025,14 @@ on the ALSA software PCM plugin.")
(define-public snd (define-public snd
(package (package
(name "snd") (name "snd")
(version "20.5") (version "20.6")
(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
"1frg64q2d8cia6v7jia7kahzx0apwdl0z252mzlbwqdz5960nv90")))) "1h4dsq5xcvwjbnayhn719cln0lg199w3xm59sl9d2jz8bq78gqgj"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
@ -4398,6 +4747,38 @@ minimum.")
(home-page "https://git.zrythm.org/cgit/ztoolkit/") (home-page "https://git.zrythm.org/cgit/ztoolkit/")
(license license:agpl3+))) (license license:agpl3+)))
(define-public libinstpatch
(package
(name "libinstpatch")
(version "1.1.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/swami/libinstpatch")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0psx4hc5yksfd3k2xqsc7c8lbz2d4yybikyddyd9hlkhq979cmjb"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;there are no tests
(native-inputs
`(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("libsndfile" ,libsndfile)))
(home-page "http://www.swamiproject.org/")
(synopsis "Instrument file software library")
(description
"libInstPatch is a library for processing digital sample based MIDI
instrument \"patch\" files. The types of files libInstPatch supports are used
for creating instrument sounds for wavetable synthesis. libInstPatch provides
an object framework (based on GObject) to load patch files, which can then be
edited, converted, compressed and saved.")
(license license:lgpl2.1)))
(define-public ztoolkit-rsvg (define-public ztoolkit-rsvg
(package (package
(inherit ztoolkit) (inherit ztoolkit)

View file

@ -305,7 +305,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y

View file

@ -350,7 +350,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y

View file

@ -370,7 +370,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_SCSI_REQUEST=y

View file

@ -876,7 +876,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y

View file

@ -750,7 +750,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y

View file

@ -881,7 +881,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y

View file

@ -872,7 +872,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y CONFIG_BLK_SCSI_REQUEST=y

View file

@ -302,7 +302,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y

View file

@ -315,7 +315,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSG=y

View file

@ -322,7 +322,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_LBDAF=y CONFIG_LBDAF=y

View file

@ -339,7 +339,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSG=y

View file

@ -880,7 +880,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set

View file

@ -781,7 +781,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y CONFIG_ASM_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_UNUSED_SYMBOLS is not set # CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set # CONFIG_TRIM_UNUSED_KSYMS is not set

View file

@ -850,7 +850,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
CONFIG_UNUSED_SYMBOLS=y CONFIG_UNUSED_SYMBOLS=y
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y

View file

@ -849,7 +849,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set # CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not set CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_GZIP=y
# CONFIG_MODULE_COMPRESS_XZ is not set
# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set # CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
CONFIG_UNUSED_SYMBOLS=y CONFIG_UNUSED_SYMBOLS=y
CONFIG_MODULES_TREE_LOOKUP=y CONFIG_MODULES_TREE_LOOKUP=y

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

File diff suppressed because it is too large Load diff

View file

@ -371,24 +371,84 @@ exec_with_proot (const char *store, int argc, char *argv[])
#if HAVE_EXEC_WITH_LOADER #if HAVE_EXEC_WITH_LOADER
/* Traverse PATH, a NULL-terminated string array, and return a colon-separated
search path where each item of PATH has been relocated to STORE. The
result is malloc'd. */
static char *
relocated_search_path (const char *path[], const char *store)
{
char *new_path;
size_t size = 0;
for (size_t i = 0; path[i] != NULL; i++)
size += strlen (store) + strlen (path[i]) + 1; /* upper bound */
new_path = xmalloc (size + 1);
new_path[0] = '\0';
for (size_t i = 0; path[i] != NULL; i++)
{
if (strncmp (path[i], original_store,
sizeof original_store - 1) == 0)
{
strcat (new_path, store);
strcat (new_path, path[i] + sizeof original_store - 1);
}
else
strcat (new_path, path[i]); /* possibly $ORIGIN */
strcat (new_path, ":");
}
new_path[strlen (new_path) - 1] = '\0'; /* Remove trailing colon. */
return new_path;
}
/* Concatenate PATH1 and PATH2 with a colon in between. The result is
potentially malloc'd. */
static char *
concat_paths (const char *path1, const char *path2)
{
if (path1[0] == '\0')
return (char *) path2;
else
{
char *result = xmalloc (strlen (path1) + strlen (path2) + 2);
strcpy (result, path1);
strcat (result, ":");
strcat (result, path2);
return result;
}
}
/* Execute the wrapped program by invoking the loader (ld.so) directly, /* Execute the wrapped program by invoking the loader (ld.so) directly,
passing it the audit module and preloading libfakechroot.so. */ passing it the audit module and preloading libfakechroot.so. */
static void static void
exec_with_loader (const char *store, int argc, char *argv[]) exec_with_loader (const char *store, int argc, char *argv[])
{ {
static const char *audit_library_path[] = LOADER_AUDIT_RUNPATH;
char *loader = concat (store, char *loader = concat (store,
PROGRAM_INTERPRETER + sizeof original_store); PROGRAM_INTERPRETER + sizeof original_store);
size_t loader_specific_argc = 6; size_t loader_specific_argc = 8;
size_t loader_argc = argc + loader_specific_argc; size_t loader_argc = argc + loader_specific_argc;
char *loader_argv[loader_argc + 1]; char *loader_argv[loader_argc + 1];
loader_argv[0] = argv[0]; loader_argv[0] = argv[0];
loader_argv[1] = "--audit"; loader_argv[1] = "--audit";
loader_argv[2] = concat (store, loader_argv[2] = concat (store,
LOADER_AUDIT_MODULE + sizeof original_store); LOADER_AUDIT_MODULE + sizeof original_store);
loader_argv[3] = "--preload";
loader_argv[4] = concat (store, /* The audit module depends on libc.so and libgcc_s.so so honor
AUDIT_LIBRARY_PATH. Additionally, honor $LD_LIBRARY_PATH if set. */
loader_argv[3] = "--library-path";
loader_argv[4] =
concat_paths (getenv ("LD_LIBRARY_PATH") ?: "",
relocated_search_path (audit_library_path, store));
loader_argv[5] = "--preload";
loader_argv[6] = concat (store,
FAKECHROOT_LIBRARY + sizeof original_store); FAKECHROOT_LIBRARY + sizeof original_store);
loader_argv[5] = concat (store, loader_argv[7] = concat (store,
"@WRAPPED_PROGRAM@" + sizeof original_store); "@WRAPPED_PROGRAM@" + sizeof original_store);
for (size_t i = 0; i < argc; i++) for (size_t i = 0; i < argc; i++)
@ -401,10 +461,23 @@ exec_with_loader (const char *store, int argc, char *argv[])
char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX")); char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX"));
mirror_directory ("/", new_root, make_symlink); mirror_directory ("/", new_root, make_symlink);
/* 'mirror_directory' created a symlink for the ancestor of ORIGINAL_STORE,
typically "/gnu". Remove that entry so we can create NEW_STORE
below. */
const char *slash = strchr (original_store + 1, '/');
const char *top = slash != NULL
? strndupa (original_store, slash - original_store)
: original_store;
char *new_store_top = concat (new_root, top);
unlink (new_store_top);
/* Now create the store under NEW_ROOT. */
char *new_store = concat (new_root, original_store); char *new_store = concat (new_root, original_store);
char *new_store_parent = dirname (strdup (new_store)); char *new_store_parent = dirname (strdup (new_store));
mkdir_p (new_store_parent); mkdir_p (new_store_parent);
symlink (store, new_store); err = symlink (store, new_store);
if (err < 0)
assert_perror (errno);
#ifdef GCONV_DIRECTORY #ifdef GCONV_DIRECTORY
/* Tell libc where to find its gconv modules. This is necessary because /* Tell libc where to find its gconv modules. This is necessary because

View file

@ -63,6 +63,7 @@
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages mcrypt) #:use-module (gnu packages mcrypt)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle) #:use-module (gnu packages nettle)
#:use-module (gnu packages onc-rpc) #:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
@ -81,7 +82,7 @@
(define-public duplicity (define-public duplicity
(package (package
(name "duplicity") (name "duplicity")
(version "0.8.14") (version "0.8.15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -90,7 +91,7 @@
"-series/" version "/+download/duplicity-" "-series/" version "/+download/duplicity-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "1af7rppsd8kj66xhbc04x1di3rpncrz0prxq1z7npg11c769vb1x")))) (base32 "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("gettext" ,gnu-gettext) ; for msgfmt `(("gettext" ,gnu-gettext) ; for msgfmt
@ -409,15 +410,14 @@ errors.")
(define-public rdiff-backup (define-public rdiff-backup
(package (package
(name "rdiff-backup") (name "rdiff-backup")
(version "2.0.3") (version "2.0.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/rdiff-backup/rdiff-backup/releases/" (uri (string-append "https://github.com/rdiff-backup/rdiff-backup/releases/"
"download/v" version "/rdiff-backup-" version ".tar.gz")) "download/v" version "/rdiff-backup-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "11rvjcp77zwgkphz1kyf5yqgr3rlss7dm9xzmvpvc4lp99xq7drb"))))
"1qfmvwwb942srhg6gw77ncy4z5z54b4wfz8bpd5bpml8hp1d5qh4"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm))) `(("python-setuptools-scm" ,python-setuptools-scm)))
@ -1072,7 +1072,7 @@ interractive mode.")
(define-public burp (define-public burp
(package (package
(name "burp") (name "burp")
(version "2.3.30") (version "2.3.32")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1080,7 +1080,7 @@ interractive mode.")
(url "https://github.com/grke/burp") (url "https://github.com/grke/burp")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "1f9i5d415psbr03fqd47p162qy25sypra1w8w16ym6jk1pvdjsgx")) (base32 "0cxxf9ni34c9662ffmr2qc8xmh4g9pmg3swqvhn49mqgr5ra6k2g"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -1096,6 +1096,7 @@ interractive mode.")
(inputs (inputs
`(("acl" ,acl) `(("acl" ,acl)
("librsync" ,librsync) ("librsync" ,librsync)
("ncurses" ,ncurses) ; for the live status monitor
("openssl" ,openssl) ("openssl" ,openssl)
("uthash" ,uthash) ("uthash" ,uthash)
("zlib" ,zlib))) ("zlib" ,zlib)))

View file

@ -599,7 +599,7 @@ included.")
(native-inputs (native-inputs
`(("bc" ,bc))) `(("bc" ,bc)))
(inputs (inputs
`(("gcc:lib" ,gcc "lib"))))) `(("gcc:lib" ,(canonical-package gcc) "lib")))))
(define* (make-ld-wrapper name #:key (define* (make-ld-wrapper name #:key
(target (const #f)) (target (const #f))
@ -1014,118 +1014,6 @@ with the Linux kernel.")
"glibc-CVE-2018-11237.patch")))) "glibc-CVE-2018-11237.patch"))))
(properties `((lint-hidden-cve . ("CVE-2017-18269")))))) ; glibc-2.27-git-fixes (properties `((lint-hidden-cve . ("CVE-2017-18269")))))) ; glibc-2.27-git-fixes
(define-public glibc-2.26
(package
(inherit glibc)
;; This version number corresponds to the output of `git describe` and the
;; archive can be generated by checking out the commit ID and running:
;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz
;; See <https://bugs.gnu.org/29406> for why this was necessary.
(version "2.26.105-g0890d5379c")
(source (origin
(inherit (package-source glibc))
(uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
"glibc-" (version-major+minor version) "-"
(caddr (string-split version #\.)) ".tar.xz"))
(sha256
(base32
"1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-allow-kernel-2.6.32.patch"))))))
(define-public glibc-2.25
(package
(inherit glibc)
(version "2.25")
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-"
version ".tar.xz"))
(sha256
(base32
"1813dzkgw6v8q8q1m4v96yfis7vjqc9pslqib6j9mrwh6fxxjyq6"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))))
(define-public glibc-2.24
(package
(inherit glibc)
(version "2.24")
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-"
version ".tar.xz"))
(sha256
(base32
"1lxmprg9gm73gvafxd503x70z32phwjzcy74i0adfi6ixzla7m4r"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))))
(define-public glibc-2.23
(package
(inherit glibc)
(version "2.23")
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-"
version ".tar.xz"))
(sha256
(base32
"1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-versioned-locpath.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2016-3075.patch"
"glibc-CVE-2016-3706.patch"
"glibc-CVE-2016-4429.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))))
(define-public glibc-2.22
(package
(inherit glibc)
(version "2.22")
(source (origin
(inherit (package-source glibc))
(uri (string-append "mirror://gnu/glibc/glibc-"
version ".tar.xz"))
(sha256
(base32
"0j49682pm2nh4qbdw35bas82p1pgfnz4d2l7iwfyzvrvj0318wzb"))
(patches (search-patches "glibc-ldd-x86_64.patch"
"glibc-o-largefile.patch"
"glibc-vectorized-strcspn-guards.patch"
"glibc-CVE-2015-5180.patch"
"glibc-CVE-2015-7547.patch"
"glibc-CVE-2016-3075.patch"
"glibc-CVE-2016-3706.patch"
"glibc-CVE-2016-4429.patch"
"glibc-CVE-2017-1000366-pt1.patch"
"glibc-CVE-2017-1000366-pt2.patch"
"glibc-CVE-2017-1000366-pt3.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments glibc)
((#:phases phases)
`(modify-phases ,phases
(add-before 'configure 'fix-pwd
(lambda _
;; Use `pwd' instead of `/bin/pwd' for glibc-2.22.
(substitute* "configure"
(("/bin/pwd") "pwd"))
#t))))))))
(define-public (make-gcc-libc base-gcc libc) (define-public (make-gcc-libc base-gcc libc)
"Return a GCC that targets LIBC." "Return a GCC that targets LIBC."
(package (inherit base-gcc) (package (inherit base-gcc)

View file

@ -46,14 +46,14 @@
(define-public fio (define-public fio
(package (package
(name "fio") (name "fio")
(version "3.21") (version "3.22")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://brick.kernel.dk/snaps/" (uri (string-append "https://brick.kernel.dk/snaps/"
"fio-" version ".tar.bz2")) "fio-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0np1scxqfpd6fcnnnfyn8xdsh6lc5pyq3vk1jm1zk7sa58fvccd4")))) "0f2x917600y6k0xs34ixgfjm4v1ylbh8svpkqi07xy3474g5s2rv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:test-target "test" '(#:test-target "test"

View file

@ -798,14 +798,14 @@ closely reconstructs the mutational profile.")
(define-public r-nmf (define-public r-nmf
(package (package
(name "r-nmf") (name "r-nmf")
(version "0.22.0") (version "0.23.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "NMF" version)) (uri (cran-uri "NMF" version))
(sha256 (sha256
(base32 (base32
"0b2ls3x1nkrnam45hagpys624nzxj3v7kxnp0q216yakvx5h57cq")))) "0ls7q9yc9l1z10jphq5a11wkfgcxc3gm3sfjj376zx3vnc0wl30g"))))
(properties `((upstream-name . "NMF"))) (properties `((upstream-name . "NMF")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -826,6 +826,8 @@ closely reconstructs the mutational profile.")
("r-reshape2" ,r-reshape2) ("r-reshape2" ,r-reshape2)
("r-rngtools" ,r-rngtools) ("r-rngtools" ,r-rngtools)
("r-stringr" ,r-stringr))) ("r-stringr" ,r-stringr)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "http://renozao.github.io/NMF") (home-page "http://renozao.github.io/NMF")
(synopsis "Algorithms and framework for nonnegative matrix factorization") (synopsis "Algorithms and framework for nonnegative matrix factorization")
(description (description
@ -1502,14 +1504,14 @@ browser.")
(define-public r-oligoclasses (define-public r-oligoclasses
(package (package
(name "r-oligoclasses") (name "r-oligoclasses")
(version "1.50.0") (version "1.50.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "oligoClasses" version)) (uri (bioconductor-uri "oligoClasses" version))
(sha256 (sha256
(base32 (base32
"05jy9qz3ir4maxackr1xqlfi1czhy1qd22wwibjdhfh5dp534cpn")))) "1d8c3i8v8kcm1afgpz6zc1iysip7993y8456cqxl37f7n6n0ax67"))))
(properties `((upstream-name . "oligoClasses"))) (properties `((upstream-name . "oligoClasses")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -1537,14 +1539,14 @@ packages.")
(define-public r-oligo (define-public r-oligo
(package (package
(name "r-oligo") (name "r-oligo")
(version "1.52.0") (version "1.52.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "oligo" version)) (uri (bioconductor-uri "oligo" version))
(sha256 (sha256
(base32 (base32
"102szyiicws4c6l3k282236ml1m1vl9zmars4q1kdjfnvsyclfc4")))) "1gpvr33pwzz1glzajcipvjcplb7yxvjj00q0ybqcc3wa47bhfkwd"))))
(properties `((upstream-name . "oligo"))) (properties `((upstream-name . "oligo")))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("zlib" ,zlib))) (inputs `(("zlib" ,zlib)))
@ -1791,14 +1793,14 @@ determining dependencies between variables, code improvement suggestions.")
(define-public r-chippeakanno (define-public r-chippeakanno
(package (package
(name "r-chippeakanno") (name "r-chippeakanno")
(version "3.22.2") (version "3.22.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version)) (uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256 (sha256
(base32 (base32
"199mlg0gwjy39afyk0ah6lzcm759bzxla4hgcajj0ay9jiibjqpa")))) "0q3f55hh0a2hl96272js6gagmgps9cxs8s13pf6fii64rzaz5m7y"))))
(properties `((upstream-name . "ChIPpeakAnno"))) (properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3450,14 +3452,14 @@ surface of a flowcell.")
(define-public r-gkmsvm (define-public r-gkmsvm
(package (package
(name "r-gkmsvm") (name "r-gkmsvm")
(version "0.80.0") (version "0.81.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "gkmSVM" version)) (uri (cran-uri "gkmSVM" version))
(sha256 (sha256
(base32 (base32
"0ljcga246ad0ql8x3drvrdsyp0f20mgp3p6lnl79xb76qgfdnm0p")))) "119g5rhc7ffyviz04r04aj5z1g6abnj3ddd01g7db505sdr6lapj"))))
(properties `((upstream-name . "gkmSVM"))) (properties `((upstream-name . "gkmSVM")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3622,14 +3624,14 @@ information about samples and features can be added to the plot.")
(define-public r-gosemsim (define-public r-gosemsim
(package (package
(name "r-gosemsim") (name "r-gosemsim")
(version "2.14.0") (version "2.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GOSemSim" version)) (uri (bioconductor-uri "GOSemSim" version))
(sha256 (sha256
(base32 (base32
"0mg4d8whq90iyl2jjj5dx3kyar17yqn00jvia3b4a8lhmjw8l1hk")))) "0v4q9xr1cm5xr08pgbzrss41kh3yz7xyh31n55l0sjmr1629ykln"))))
(properties `((upstream-name . "GOSemSim"))) (properties `((upstream-name . "GOSemSim")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3810,14 +3812,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
(define-public r-clusterprofiler (define-public r-clusterprofiler
(package (package
(name "r-clusterprofiler") (name "r-clusterprofiler")
(version "3.16.0") (version "3.16.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "clusterProfiler" version)) (uri (bioconductor-uri "clusterProfiler" version))
(sha256 (sha256
(base32 (base32
"0m7919gzrd2fddb4kcznwpshhab1ha2yppnkxg11zmh40wcdawyi")))) "11zsgb8wbdv8r4c04iczz4aala4yw4ai7rz8igdzz87c0940nxkb"))))
(properties (properties
`((upstream-name . "clusterProfiler"))) `((upstream-name . "clusterProfiler")))
(build-system r-build-system) (build-system r-build-system)
@ -3832,6 +3834,7 @@ All the visualization methods are developed based on ggplot2 graphics.")
("r-magrittr" ,r-magrittr) ("r-magrittr" ,r-magrittr)
("r-plyr" ,r-plyr) ("r-plyr" ,r-plyr)
("r-qvalue" ,r-qvalue) ("r-qvalue" ,r-qvalue)
("r-rlang" ,r-rlang)
("r-rvcheck" ,r-rvcheck) ("r-rvcheck" ,r-rvcheck)
("r-tidyr" ,r-tidyr))) ("r-tidyr" ,r-tidyr)))
(native-inputs (native-inputs
@ -4087,7 +4090,8 @@ Affymetrix arrays.")
(properties `((upstream-name . "abseqR"))) (properties `((upstream-name . "abseqR")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
`(("pandoc" ,ghc-pandoc))) `(("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)))
(propagated-inputs (propagated-inputs
`(("r-biocparallel" ,r-biocparallel) `(("r-biocparallel" ,r-biocparallel)
("r-biocstyle" ,r-biocstyle) ("r-biocstyle" ,r-biocstyle)
@ -4287,14 +4291,14 @@ Bioconductor.")
(define-public r-motifstack (define-public r-motifstack
(package (package
(name "r-motifstack") (name "r-motifstack")
(version "1.32.0") (version "1.32.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "motifStack" version)) (uri (bioconductor-uri "motifStack" version))
(sha256 (sha256
(base32 (base32
"008f2mjcyyiz84ilrsldpqwvxy2lp93hjggrq4nrqwi78nyx3ls5")))) "02vmkgn36n5xpmizy33znlzgmi3w5hnhsibgisbnhwwgxpkrwpcd"))))
(properties `((upstream-name . "motifStack"))) (properties `((upstream-name . "motifStack")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -4356,14 +4360,14 @@ position-specific scores within R and Bioconductor.")
(define-public r-atacseqqc (define-public r-atacseqqc
(package (package
(name "r-atacseqqc") (name "r-atacseqqc")
(version "1.12.3") (version "1.12.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ATACseqQC" version)) (uri (bioconductor-uri "ATACseqQC" version))
(sha256 (sha256
(base32 (base32
"12710c4024pndwwqiiqr6dhrd360z26fc8r3fxhs739gyd0ddk9r")))) "1gs9862hhh4gr1akij6ykhcj29s9dzg1vnj87hqrm19dfgl43qbh"))))
(properties `((upstream-name . "ATACseqQC"))) (properties `((upstream-name . "ATACseqQC")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -5236,14 +5240,14 @@ This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
(define-public r-rbowtie2 (define-public r-rbowtie2
(package (package
(name "r-rbowtie2") (name "r-rbowtie2")
(version "1.10.0") (version "1.10.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rbowtie2" version)) (uri (bioconductor-uri "Rbowtie2" version))
(sha256 (sha256
(base32 (base32
"1z2dn0q3wcw8b9ibx388kh7p5km16i71sw9miqj3daw7g0v5bxp3")))) "19v7wfvrd53j618c1xbiqnlsf2kxw697myryx0vb9s2aspknyzz7"))))
(properties `((upstream-name . "Rbowtie2"))) (properties `((upstream-name . "Rbowtie2")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -5314,14 +5318,14 @@ Infinium HumanMethylation 450k assay.")
(define-public r-biocfilecache (define-public r-biocfilecache
(package (package
(name "r-biocfilecache") (name "r-biocfilecache")
(version "1.12.0") (version "1.12.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocFileCache" version)) (uri (bioconductor-uri "BiocFileCache" version))
(sha256 (sha256
(base32 (base32
"02chrzwccmazi7rdfpyriizhbgxyxlmprlw32w05wk54as6wrxv8")))) "02yayjyliaqxcwqa0n2ccmsfflskqzf0gvdibh2r3nz5bi66imkf"))))
(properties `((upstream-name . "BiocFileCache"))) (properties `((upstream-name . "BiocFileCache")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -5376,14 +5380,14 @@ Gaussian distributions.")
(define-public r-rbowtie (define-public r-rbowtie
(package (package
(name "r-rbowtie") (name "r-rbowtie")
(version "1.28.0") (version "1.28.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rbowtie" version)) (uri (bioconductor-uri "Rbowtie" version))
(sha256 (sha256
(base32 (base32
"06y1qp915dlwjdi2fs3344sgya55pcv07f3i61y0cxb0bhbcgvrz")))) "0589ggbfx6di42wvqyhnzgrhmb52swr3r5z22w6b8x0z2y7hl8b3"))))
(properties `((upstream-name . "Rbowtie"))) (properties `((upstream-name . "Rbowtie")))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
@ -5781,14 +5785,14 @@ annotations.")
(define-public r-rsubread (define-public r-rsubread
(package (package
(name "r-rsubread") (name "r-rsubread")
(version "2.2.4") (version "2.2.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rsubread" version)) (uri (bioconductor-uri "Rsubread" version))
(sha256 (sha256
(base32 (base32
"0yznfqgp5cbz68n3rrfvm752267da16kl538zdrb1g1aw9zdfqc6")))) "04h79qhq93d8id0rr5xnj9vf82ygwxzdlnck78yv738xd0jjvnpm"))))
(properties `((upstream-name . "Rsubread"))) (properties `((upstream-name . "Rsubread")))
(build-system r-build-system) (build-system r-build-system)
(inputs `(("zlib" ,zlib))) (inputs `(("zlib" ,zlib)))
@ -6330,14 +6334,14 @@ self-organizing map clustering and minimal spanning trees.")
(define-public r-mixomics (define-public r-mixomics
(package (package
(name "r-mixomics") (name "r-mixomics")
(version "6.12.1") (version "6.12.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "mixOmics" version)) (uri (bioconductor-uri "mixOmics" version))
(sha256 (sha256
(base32 (base32
"13kq9l5xwhwp30y5gfqfh5f11n63vn8rk195mb2y2mww4cwi6lv4")))) "1nkqlvm9j1f4vfj3f3kyxqgan38rpa9imimvl9pwivvsfl647vvc"))))
(properties `((upstream-name . "mixOmics"))) (properties `((upstream-name . "mixOmics")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -6456,14 +6460,14 @@ genes in the gene-set that are ranked above the leading edge).")
(define-public r-cicero (define-public r-cicero
(package (package
(name "r-cicero") (name "r-cicero")
(version "1.6.1") (version "1.6.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "cicero" version)) (uri (bioconductor-uri "cicero" version))
(sha256 (sha256
(base32 (base32
"0nf9yqg5krj26n4n82iyx3rsr84d46b17i9zfk35sh12l4xssbii")))) "042ba6yfa7fksij2v7cwnp2sca3vmz7izn6fsxx9xswnncrkgcqh"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-assertthat" ,r-assertthat) `(("r-assertthat" ,r-assertthat)
@ -7048,14 +7052,14 @@ arrays based on fast wavelet-based functional models.")
(define-public r-variancepartition (define-public r-variancepartition
(package (package
(name "r-variancepartition") (name "r-variancepartition")
(version "1.18.2") (version "1.18.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "variancePartition" version)) (uri (bioconductor-uri "variancePartition" version))
(sha256 (sha256
(base32 (base32
"19bhkb8vd44m3nkznw075fx3y2p3a1bsazbhcfiqw9n4190k9bgv")))) "1jrlhi2c5ibvq8a41g5hwdq4kk4rdd7m464rz5767zaaci7l2ay0"))))
(properties (properties
`((upstream-name . "variancePartition"))) `((upstream-name . "variancePartition")))
(build-system r-build-system) (build-system r-build-system)
@ -7762,14 +7766,14 @@ different graph related packages produced by Bioconductor.")
(define-public r-experimenthub (define-public r-experimenthub
(package (package
(name "r-experimenthub") (name "r-experimenthub")
(version "1.14.0") (version "1.14.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ExperimentHub" version)) (uri (bioconductor-uri "ExperimentHub" version))
(sha256 (sha256
(base32 (base32
"18d6kjfavy5b769gpkblihdkz2nz2hsgyjki8mp1sywi0ik08ncd")))) "1kgvprchz1fg8pl1irj62mk2gyb4jcc9iimpypv4c2iccy5bp84x"))))
(properties `((upstream-name . "ExperimentHub"))) (properties `((upstream-name . "ExperimentHub")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -7955,14 +7959,14 @@ analytics on packages.")
(define-public r-biocset (define-public r-biocset
(package (package
(name "r-biocset") (name "r-biocset")
(version "1.2.1") (version "1.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocSet" version)) (uri (bioconductor-uri "BiocSet" version))
(sha256 (sha256
(base32 (base32
"14dmkc878lskbm001kgjyqmrwnn6s032z4h64f617f1xd9zx9wrj")))) "041hq3rp0kv7kjwcjjrksk8lw3sj6j1v3wdcr8z611k0g0z6p0cj"))))
(properties `((upstream-name . "BiocSet"))) (properties `((upstream-name . "BiocSet")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -8116,3 +8120,36 @@ dimensional mass cytometry data.")
Tool) analysis automatic by constructing a HTTP POST request according to Tool) analysis automatic by constructing a HTTP POST request according to
user's input and automatically retrieving results from GREAT web server.") user's input and automatically retrieving results from GREAT web server.")
(license license:expat))) (license license:expat)))
(define-public r-m3c
(package
(name "r-m3c")
(version "1.10.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "M3C" version))
(sha256
(base32
"0zq8lm4280p8h65i7myscwa4srs5ajh944xv6zni2f5sjyp7ij2y"))))
(properties `((upstream-name . "M3C")))
(build-system r-build-system)
(propagated-inputs
`(("r-cluster" ,r-cluster)
("r-corpcor" ,r-corpcor)
("r-doparallel" ,r-doparallel)
("r-dosnow" ,r-dosnow)
("r-foreach" ,r-foreach)
("r-ggplot2" ,r-ggplot2)
("r-matrix" ,r-matrix)
("r-matrixcalc" ,r-matrixcalc)
("r-rtsne" ,r-rtsne)
("r-umap" ,r-umap)))
(native-inputs `(("r-knitr" ,r-knitr)))
(home-page "https://bioconductor.org/packages/M3C")
(synopsis "Monte Carlo reference-based consensus clustering")
(description
"M3C is a consensus clustering algorithm that uses a Monte Carlo
simulation to eliminate overestimation of @code{K} and can reject the null
hypothesis @code{K=1}.")
(license license:agpl3+)))

View file

@ -1646,7 +1646,8 @@ gapped, local, and paired-end alignment modes.")
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure)))) (delete 'configure))))
(inputs (inputs
`(("tbb" ,tbb) `(("python-wrapper" ,python-wrapper)
("tbb" ,tbb)
("zlib" ,zlib))) ("zlib" ,zlib)))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(home-page "http://bowtie-bio.sourceforge.net/index.shtml") (home-page "http://bowtie-bio.sourceforge.net/index.shtml")
@ -1683,6 +1684,17 @@ genome (2.9 GB for paired-end).")
'(#:parallel-build? #f ; not supported '(#:parallel-build? #f ; not supported
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'set-paths 'hide-default-gcc
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
;; conflicts with the GCC 5 input.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
":"))
#t)))
(add-after 'unpack 'use-system-samtools (add-after 'unpack 'use-system-samtools
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/Makefile.in" (substitute* "src/Makefile.in"
@ -1705,7 +1717,7 @@ genome (2.9 GB for paired-end).")
(("#include <sam.h>") "#include <samtools/sam.h>")) (("#include <sam.h>") "#include <samtools/sam.h>"))
#t))))) #t)))))
(native-inputs (native-inputs
`(("gcc" ,gcc-5))) ;; doesn't build with later versions `(("gcc@5" ,gcc-5))) ;; doesn't build with later versions
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("bowtie" ,bowtie) ("bowtie" ,bowtie)
@ -2149,7 +2161,7 @@ databases.")
(define-public clipper (define-public clipper
(package (package
(name "clipper") (name "clipper")
(version "1.2.1") (version "2.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2158,40 +2170,34 @@ databases.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb")) "1bcag4lb5bkzsj2vg7lrq24aw6yfgq275ifrbhd82l7kqgbbjbkv"))))
(modules '((guix build utils)))
(snippet
'(begin
;; remove unnecessary setup dependency
(substitute* "setup.py"
(("setup_requires = .*") ""))
#t))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 ; only Python 2 is supported `(#:phases
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; This is fixed in upstream commit (add-before 'reset-gzip-timestamps 'make-files-writable
;; f6c2990198f906bf97730d95695b4bd5a6d01ddb. (lambda* (#:key outputs #:allow-other-keys)
(add-after 'unpack 'fix-typo ;; Make sure .gz files are writable so that the
(lambda _ ;; 'reset-gzip-timestamps' phase can do its work.
(substitute* "clipper/src/readsToWiggle.pyx" (let ((out (assoc-ref outputs "out")))
(("^sc.*") "")) (for-each make-file-writable
#t))))) (find-files out "\\.gz$"))
#t))))))
(inputs (inputs
`(("htseq" ,python2-htseq) `(("htseq" ,htseq)
("python-pybedtools" ,python2-pybedtools) ("python-pybedtools" ,python-pybedtools)
("python-cython" ,python2-cython) ("python-cython" ,python-cython)
("python-scikit-learn" ,python2-scikit-learn) ("python-scikit-learn" ,python-scikit-learn)
("python-matplotlib" ,python2-matplotlib) ("python-matplotlib" ,python-matplotlib)
("python-pandas" ,python2-pandas) ("python-pandas" ,python-pandas)
("python-pysam" ,python2-pysam) ("python-pysam" ,python-pysam)
("python-numpy" ,python2-numpy) ("python-numpy" ,python-numpy)
("python-scipy" ,python2-scipy))) ("python-scipy" ,python-scipy)))
(native-inputs (native-inputs
`(("python-mock" ,python2-mock) ; for tests `(("python-setuptools-git" ,python-setuptools-git)
("python-nose" ,python2-nose) ; for tests ("python-mock" ,python-mock) ; for tests
("python-pytz" ,python2-pytz))) ; for tests ("python-nose" ,python-nose) ; for tests
("python-pytz" ,python-pytz))) ; for tests
(home-page "https://github.com/YeoLab/clipper") (home-page "https://github.com/YeoLab/clipper")
(synopsis "CLIP peak enrichment recognition") (synopsis "CLIP peak enrichment recognition")
(description (description
@ -2614,7 +2620,7 @@ with Python.")
(define-public delly (define-public delly
(package (package
(name "delly") (name "delly")
(version "0.7.9") (version "0.8.3")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -2622,7 +2628,7 @@ with Python.")
(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 "034jqsxswy9gqdh2zkgc1js99qkv75ks4xvzgmh0284sraagv61z")) (base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -2646,9 +2652,9 @@ with Python.")
#t)))))) #t))))))
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("bzip2" ,bzip2)
("htslib" ,htslib) ("htslib" ,htslib)
("zlib" ,zlib) ("zlib" ,zlib)))
("bzip2" ,bzip2)))
(home-page "https://github.com/dellytools/delly") (home-page "https://github.com/dellytools/delly")
(synopsis "Integrated structural variant prediction method") (synopsis "Integrated structural variant prediction method")
(description "Delly is an integrated structural variant prediction method (description "Delly is an integrated structural variant prediction method
@ -3612,7 +3618,7 @@ particular, reads spanning multiple exons.")
(native-inputs (native-inputs
`(("unzip" ,unzip) ; needed for archive from ftp `(("unzip" ,unzip) ; needed for archive from ftp
("perl" ,perl) ("perl" ,perl)
("pandoc" ,ghc-pandoc))) ; for documentation ("pandoc" ,pandoc))) ; for documentation
(home-page "https://ccb.jhu.edu/software/hisat2/index.shtml") (home-page "https://ccb.jhu.edu/software/hisat2/index.shtml")
(synopsis "Graph-based alignment of genomic sequencing reads") (synopsis "Graph-based alignment of genomic sequencing reads")
(description "HISAT2 is a fast and sensitive alignment program for mapping (description "HISAT2 is a fast and sensitive alignment program for mapping
@ -7505,13 +7511,13 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
(define-public r-biocviews (define-public r-biocviews
(package (package
(name "r-biocviews") (name "r-biocviews")
(version "1.56.1") (version "1.56.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "biocViews" version)) (uri (bioconductor-uri "biocViews" version))
(sha256 (sha256
(base32 (base32
"0zcx8gha3x3jc0ra6ii6wwq2vfsmffrrnilknbq8h5xjrl55m6ci")))) "0kw0qfm1fw5yv2rbz6x23431rh0fnzj66f2bls7j285biyjmmx7w"))))
(properties (properties
`((upstream-name . "biocViews"))) `((upstream-name . "biocViews")))
(build-system r-build-system) (build-system r-build-system)
@ -7894,13 +7900,13 @@ on Bioconductor or which replace R functions.")
(define-public r-annotationdbi (define-public r-annotationdbi
(package (package
(name "r-annotationdbi") (name "r-annotationdbi")
(version "1.50.1") (version "1.50.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version)) (uri (bioconductor-uri "AnnotationDbi" version))
(sha256 (sha256
(base32 (base32
"00pd8lsdppxlmx0l65phw0jhsm0qkwjc4wsdxpvgc31iiz9yslbj")))) "0qcxfn4pvaksna0nvxr74ysn2wzaxn732pkhd6ffrj8pwhkhy5p3"))))
(properties (properties
`((upstream-name . "AnnotationDbi"))) `((upstream-name . "AnnotationDbi")))
(build-system r-build-system) (build-system r-build-system)
@ -8059,13 +8065,13 @@ tab-delimited (tabix) files.")
(define-public r-delayedarray (define-public r-delayedarray
(package (package
(name "r-delayedarray") (name "r-delayedarray")
(version "0.14.0") (version "0.14.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DelayedArray" version)) (uri (bioconductor-uri "DelayedArray" version))
(sha256 (sha256
(base32 (base32
"1lz7a0rrlfv3w44n073mk8pw39z7lfs0njdxp5vpp0rdsmvdf1qk")))) "0xi0i621hrl7k9rsc8x8nc3ib74sk8hxhbyr2lxqclw45pk95s7v"))))
(properties (properties
`((upstream-name . "DelayedArray"))) `((upstream-name . "DelayedArray")))
(build-system r-build-system) (build-system r-build-system)
@ -8699,7 +8705,7 @@ paired-end data.")
("r-rtracklayer" ,r-rtracklayer) ("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown) ("r-rmarkdown" ,r-rmarkdown)
("r-s4vectors" ,r-s4vectors) ("r-s4vectors" ,r-s4vectors)
("pandoc" ,ghc-pandoc))) ("pandoc" ,pandoc)))
(native-inputs (native-inputs
`(("r-knitr" ,r-knitr))) `(("r-knitr" ,r-knitr)))
(synopsis "RNA-centric annotation system") (synopsis "RNA-centric annotation system")
@ -9831,13 +9837,13 @@ 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 "3.1.5") (version "3.2.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
"1lbq2pqhb6ih6iqawlnzdh05zff71pwbw1cpfv2sld3pd7kz0zkm")))) "1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
(properties `((upstream-name . "Seurat"))) (properties `((upstream-name . "Seurat")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -9854,11 +9860,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("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-jsonlite" ,r-jsonlite)
("r-kernsmooth" ,r-kernsmooth) ("r-kernsmooth" ,r-kernsmooth)
("r-leiden" ,r-leiden) ("r-leiden" ,r-leiden)
("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-miniui" ,r-miniui)
("r-patchwork" ,r-patchwork) ("r-patchwork" ,r-patchwork)
("r-pbapply" ,r-pbapply) ("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly) ("r-plotly" ,r-plotly)
@ -9876,7 +9884,9 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-rtsne" ,r-rtsne) ("r-rtsne" ,r-rtsne)
("r-scales" ,r-scales) ("r-scales" ,r-scales)
("r-sctransform" ,r-sctransform) ("r-sctransform" ,r-sctransform)
("r-tsne" ,r-tsne) ("r-shiny" ,r-shiny)
("r-spatstat" ,r-spatstat)
("r-tibble" ,r-tibble)
("r-uwot" ,r-uwot))) ("r-uwot" ,r-uwot)))
(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")
@ -10018,14 +10028,14 @@ Shiny-based display methods for Bioconductor objects.")
(define-public r-annotationhub (define-public r-annotationhub
(package (package
(name "r-annotationhub") (name "r-annotationhub")
(version "2.20.0") (version "2.20.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AnnotationHub" version)) (uri (bioconductor-uri "AnnotationHub" version))
(sha256 (sha256
(base32 (base32
"0r4xzf93bm9cpys5cg70wg0b8hxli80hvqwgh4hzbd45yyf5c4wz")))) "04bz91m2wx1zm61rvpr0syyklz232fw74wrl73d965wi3x8fyda5"))))
(properties `((upstream-name . "AnnotationHub"))) (properties `((upstream-name . "AnnotationHub")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -10115,17 +10125,18 @@ microarrays or GRanges for sequencing data.")
(define-public r-gage (define-public r-gage
(package (package
(name "r-gage") (name "r-gage")
(version "2.37.0") (version "2.38.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "gage" version)) (uri (bioconductor-uri "gage" version))
(sha256 (sha256
(base32 (base32
"1zfaas4x6g7wiml6cmxa7b4f43az9s0lrw80k6sf7c96hsh1jijr")))) "1bqmvjiya1df0b3h491lp1jxahiyidvaf9n094z0sk84x5y3xh2p"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi) `(("r-annotationdbi" ,r-annotationdbi)
("r-go-db" ,r-go-db)
("r-graph" ,r-graph) ("r-graph" ,r-graph)
("r-keggrest" ,r-keggrest))) ("r-keggrest" ,r-keggrest)))
(home-page (string-append "https://bmcbioinformatics.biomedcentral.com/" (home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
@ -10178,14 +10189,14 @@ provide added flexibility for data combination and manipulation.")
(define-public r-complexheatmap (define-public r-complexheatmap
(package (package
(name "r-complexheatmap") (name "r-complexheatmap")
(version "2.4.2") (version "2.4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ComplexHeatmap" version)) (uri (bioconductor-uri "ComplexHeatmap" version))
(sha256 (sha256
(base32 (base32
"01jxxwxhf9n8baxgja4rb592p5210s4ppd7a5b4xby5aalhzkr0l")))) "1gx0hzrkla92pgmfkrm2zp0ccnhizq6rs26zgzpi5x8a5lvghh5q"))))
(properties (properties
`((upstream-name . "ComplexHeatmap"))) `((upstream-name . "ComplexHeatmap")))
(build-system r-build-system) (build-system r-build-system)
@ -11862,6 +11873,9 @@ straight away. Its main features are:
(snippet (snippet
'(begin '(begin
(for-each delete-file (find-files "." "\\.exe$")) (for-each delete-file (find-files "." "\\.exe$"))
;; Some files in the original tarball have restrictive
;; permissions, which makes repackaging fail
(for-each (lambda (file) (chmod file #o644)) (find-files "."))
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -12941,8 +12955,8 @@ once. This package provides tools to perform Drop-seq analyses.")
("r-rtracklayer" ,r-rtracklayer) ("r-rtracklayer" ,r-rtracklayer)
("r-rjson" ,r-rjson) ("r-rjson" ,r-rjson)
("salmon" ,salmon) ("salmon" ,salmon)
("ghc-pandoc" ,ghc-pandoc) ("pandoc" ,pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper) ("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml))) ("python-pyyaml" ,python-pyyaml)))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/") (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
@ -12958,7 +12972,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.42") (version "0.0.43")
(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/"
@ -12966,7 +12980,7 @@ expression report comparing samples in an easily configurable manner.")
"/pigx_chipseq-" version ".tar.gz")) "/pigx_chipseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xbvgqpk32a8iczhvac56cacr46rdkqb0allhhpvmj940idf72bi")))) "0426i31b7mqqkbss5dgrvf5prkj4z1qrd7yrpd27vybs01xhdlks"))))
(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))
@ -13003,8 +13017,8 @@ expression report comparing samples in an easily configurable manner.")
("macs" ,macs) ("macs" ,macs)
("multiqc" ,multiqc) ("multiqc" ,multiqc)
("perl" ,perl) ("perl" ,perl)
("ghc-pandoc" ,ghc-pandoc) ("pandoc" ,pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("pandoc-citeproc" ,pandoc-citeproc)
("fastqc" ,fastqc) ("fastqc" ,fastqc)
("bowtie" ,bowtie) ("bowtie" ,bowtie)
("idr" ,idr) ("idr" ,idr)
@ -13028,7 +13042,7 @@ in an easily configurable manner.")
(define-public pigx-bsseq (define-public pigx-bsseq
(package (package
(name "pigx-bsseq") (name "pigx-bsseq")
(version "0.0.10") (version "0.1.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/" (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@ -13036,10 +13050,13 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz")) "/pigx_bsseq-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0l97wvkq4diq8lcarraj33bby1zzf0w804jwi8mlc5qddp8idwhy")))) "0mpzlay2d5cjpmrcp7knff6rg1c2mqszd638n7lw0mc0cycbp9f8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(;; TODO: tests currently require 12+GB of RAM. See
;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
#:tests? #f
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'check 'set-timezone (add-before 'check 'set-timezone
;; The readr package is picky about timezones. ;; The readr package is picky about timezones.
@ -13059,22 +13076,27 @@ in an easily configurable manner.")
("r-annotationhub" ,r-annotationhub) ("r-annotationhub" ,r-annotationhub)
("r-dt" ,r-dt) ("r-dt" ,r-dt)
("r-genomation" ,r-genomation) ("r-genomation" ,r-genomation)
("r-ggrepel" ,r-ggrepel)
("r-methylkit" ,r-methylkit) ("r-methylkit" ,r-methylkit)
("r-rtracklayer" ,r-rtracklayer) ("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown) ("r-rmarkdown" ,r-rmarkdown)
("r-bookdown" ,r-bookdown) ("r-bookdown" ,r-bookdown)
("r-ggplot2" ,r-ggplot2) ("r-ggplot2" ,r-ggplot2)
("r-ggbio" ,r-ggbio) ("r-ggbio" ,r-ggbio)
("ghc-pandoc" ,ghc-pandoc) ("pandoc" ,pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper) ("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml) ("python-pyyaml" ,python-pyyaml)
("snakemake" ,snakemake) ("snakemake" ,snakemake)
("bismark" ,bismark) ("bismark" ,bismark)
("fastqc" ,fastqc)
("bowtie" ,bowtie) ("bowtie" ,bowtie)
("bwa-meth" ,bwa-meth)
("fastqc" ,fastqc)
("methyldackel" ,methyldackel)
("multiqc" ,multiqc)
("trim-galore" ,trim-galore) ("trim-galore" ,trim-galore)
("cutadapt" ,cutadapt) ("cutadapt" ,cutadapt)
("samblaster" ,samblaster)
("samtools" ,samtools))) ("samtools" ,samtools)))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/") (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Bisulfite sequencing pipeline from fastq to methylation reports") (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
@ -13110,8 +13132,8 @@ methylation and segmentation.")
("python-magic" ,python-magic) ("python-magic" ,python-magic)
("python-numpy" ,python-numpy) ("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy) ("python-loompy" ,python-loompy)
("ghc-pandoc" ,ghc-pandoc) ("pandoc" ,pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) ("pandoc-citeproc" ,pandoc-citeproc)
("samtools" ,samtools) ("samtools" ,samtools)
("snakemake" ,snakemake) ("snakemake" ,snakemake)
("star" ,star) ("star" ,star)
@ -15378,12 +15400,34 @@ mutations from scRNA-Seq data.")
(string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
(string-append "INCLUDES= -I" htslib-ref "/include/htslib") (string-append "INCLUDES= -I" htslib-ref "/include/htslib")
"HTS_HEADERS=" ; No need to check for headers here. "HTS_HEADERS=" ; No need to check for headers here.
(string-append "LIBPATH=-L. -L" htslib-ref "/include"))))) (string-append "LIBPATH=-L. -L" htslib-ref "/include"))
(invoke "g++" "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
(invoke "ar" "rcs" "libtabixpp.a" "tabix.o"))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (let* ((out (assoc-ref outputs "out"))
(install-file "tabix++" bin)) (lib (string-append out "/lib"))
#t))))) (bin (string-append out "/bin")))
(install-file "tabix++" bin)
(install-file "libtabixpp.so" lib)
(install-file "libtabixpp.a" lib)
(install-file "tabix.hpp" (string-append out "/include"))
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include~@
~@
~@
Name: libtabixpp~@
Version: ~a~@
Description: C++ wrapper around tabix project~@
Libs: -L${libdir} -ltabixpp~@
Cflags: -I${includedir}~%"
out ,version)))
#t))))))
(home-page "https://github.com/ekg/tabixpp") (home-page "https://github.com/ekg/tabixpp")
(synopsis "C++ wrapper around tabix project") (synopsis "C++ wrapper around tabix project")
(description "This is a C++ wrapper around the Tabix project which abstracts (description "This is a C++ wrapper around the Tabix project which abstracts
@ -15410,13 +15454,45 @@ some of the details of opening and jumping in tabix-indexed files.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) ; There is no configure phase. (delete 'configure) ; There is no configure phase.
(add-after 'unpack 'patch-source
(lambda _
(substitute* "Makefile"
(("-c ") "-c -fPIC "))
#t))
(add-after 'build 'build-dynamic
(lambda _
(invoke "g++"
"-shared" "-o" "libsmithwaterman.so"
"smithwaterman.o" "SmithWatermanGotoh.o"
"disorder.o" "BandedSmithWaterman.o"
"LeftAlign.o" "Repeats.o" "IndelAllele.o")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(lib (string-append out "/lib"))) (lib (string-append out "/lib")))
(install-file "smithwaterman" bin) (install-file "smithwaterman" bin)
(install-file "libsw.a" lib)) (for-each
(lambda (file)
(install-file file (string-append out "/include/smithwaterman")))
(find-files "." "\\.h$"))
(install-file "libsmithwaterman.so" lib)
(install-file "libsw.a" lib)
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include/smithwaterman~@
~@
~@
Name: smithwaterman~@
Version: ~a~@
Description: smith-waterman-gotoh alignment algorithm~@
Libs: -L${libdir} -lsmithwaterman~@
Cflags: -I${includedir}~%"
out ,version))))
#t))))) #t)))))
(home-page "https://github.com/ekg/smithwaterman") (home-page "https://github.com/ekg/smithwaterman")
(synopsis "Implementation of the Smith-Waterman algorithm") (synopsis "Implementation of the Smith-Waterman algorithm")
@ -15506,10 +15582,43 @@ neural networks.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) ; There is no configure phase. (delete 'configure) ; There is no configure phase.
(add-after 'unpack 'patch-source
(lambda _
(substitute* "Makefile"
(("-c ") "-c -fPIC "))
#t))
(add-after 'build 'build-dynamic
(lambda _
(invoke "g++"
"-shared" "-o" "libfastahack.so"
"Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))) (let* ((out (assoc-ref outputs "out"))
(install-file "fastahack" bin)) (lib (string-append out "/lib"))
(bin (string-append out "/bin")))
(mkdir-p (string-append out "/include/fastahack"))
(for-each
(lambda (file)
(install-file file (string-append out "/include/fastahack")))
(find-files "." "\\.h$"))
(install-file "fastahack" bin)
(install-file "libfastahack.so" lib)
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include/fastahack~@
~@
~@
Name: fastahack~@
Version: ~a~@
Description: Indexing and sequence extraction from FASTA files~@
Libs: -L${libdir} -lfastahack~@
Cflags: -I${includedir}~%"
out ,version))))
#t))))) #t)))))
(home-page "https://github.com/ekg/fastahack") (home-page "https://github.com/ekg/fastahack")
(synopsis "Indexing and sequence extraction from FASTA files") (synopsis "Indexing and sequence extraction from FASTA files")
@ -15532,9 +15641,16 @@ library automatically handles index file generation and use.")
"/vcflib-" version "-src.tar.gz")) "/vcflib-" version "-src.tar.gz"))
(sha256 (sha256
(base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm")) (base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
(patches (search-patches "vcflib-use-shared-libraries.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
`(begin `(begin
(substitute* (find-files "." "\\.(h|c)(pp)?$")
(("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
(("\"convert.h\"") "<smithwaterman/convert.h>")
(("\"disorder.h\"") "<smithwaterman/disorder.h>")
(("\"tabix.hpp\"") "<tabix.hpp>")
(("\"Fasta.h\"") "<fastahack/Fasta.h>"))
(for-each delete-file-recursively (for-each delete-file-recursively
'("fastahack" "filevercmp" "fsom" "googletest" "intervaltree" '("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
"libVCFH" "multichoose" "smithwaterman" "tabixpp")) "libVCFH" "multichoose" "smithwaterman" "tabixpp"))
@ -15542,34 +15658,34 @@ library automatically handles index file generation and use.")
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("htslib" ,htslib) `(("htslib" ,htslib)
("fastahack" ,fastahack)
("perl" ,perl) ("perl" ,perl)
("python" ,python) ("python" ,python)
("smithwaterman" ,smithwaterman)
("tabixpp" ,tabixpp)
("xz" ,xz)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(;; Submodules. `(("pkg-config" ,pkg-config)
;; Submodules.
;; This package builds against the .o files so we need to extract the source. ;; This package builds against the .o files so we need to extract the source.
("fastahack-src" ,(package-source fastahack))
("filevercmp-src" ,(package-source filevercmp)) ("filevercmp-src" ,(package-source filevercmp))
("fsom-src" ,(package-source fsom))
("intervaltree-src" ,(package-source intervaltree)) ("intervaltree-src" ,(package-source intervaltree))
("multichoose-src" ,(package-source multichoose)) ("multichoose-src" ,(package-source multichoose))))
("smithwaterman-src" ,(package-source smithwaterman))
("tabixpp-src" ,(package-source tabixpp))))
(arguments (arguments
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:make-flags (list (string-append "HTS_LIB="
(assoc-ref %build-inputs "htslib")
"/lib/libhts.a")
(string-append "HTS_INCLUDES= -I"
(assoc-ref %build-inputs "htslib")
"/include/htslib")
(string-append "HTS_LDFLAGS= -L"
(assoc-ref %build-inputs "htslib")
"/include/htslib" " -lhts"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'set-flags
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("LDFLAGS =")
(string-append "LDFLAGS = -Wl,-rpath="
(assoc-ref outputs "out") "/lib ")))
(substitute* "filevercmp/Makefile"
(("-c") "-c -fPIC"))
#t))
(delete 'configure) (delete 'configure)
(delete 'check)
(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 (source target)
@ -15581,34 +15697,39 @@ library automatically handles index file generation and use.")
(assoc-ref inputs source) (assoc-ref inputs source)
"--strip-components=1")))))) "--strip-components=1"))))))
(and (and
(unpack "fastahack-src" "fastahack")
(unpack "filevercmp-src" "filevercmp") (unpack "filevercmp-src" "filevercmp")
(unpack "fsom-src" "fsom")
(unpack "intervaltree-src" "intervaltree") (unpack "intervaltree-src" "intervaltree")
(unpack "multichoose-src" "multichoose") (unpack "multichoose-src" "multichoose")))))
(unpack "smithwaterman-src" "smithwaterman")
(unpack "tabixpp-src" "tabixpp")))))
(replace 'build
(lambda* (#:key inputs make-flags #:allow-other-keys)
(let ((htslib (assoc-ref inputs "htslib")))
(with-directory-excursion "tabixpp"
(substitute* "Makefile"
(("-Ihtslib") (string-append "-I" htslib "/include/htslib"))
(("-Lhtslib") (string-append "-L" htslib "/lib/htslib"))
(("htslib/htslib") (string-append htslib "/include/htslib")))
(invoke "make"
(string-append "HTS_LIB=" htslib "/lib/libhts.a")))
(apply invoke "make" "CC=gcc" "CFLAGS=-Itabixpp" make-flags))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")) (let* ((out (assoc-ref outputs "out"))
(lib (string-append (assoc-ref outputs "out") "/lib"))) (bin (string-append out "/bin"))
(lib (string-append out "/lib")))
(for-each (lambda (file) (for-each (lambda (file)
(install-file file bin)) (install-file file bin))
(find-files "bin" ".*")) (find-files "bin" ".*"))
;; The header files in src/ do not interface libvcflib, (install-file "libvcflib.so" lib)
;; therefore they are left out. (install-file "libvcflib.a" lib)
(install-file "libvcflib.a" lib)) (for-each
(lambda (file)
(install-file file (string-append out "/include")))
(find-files "include" "\\.h(pp)?$"))
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/vcflib.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include~@
~@
~@
Name: libvcflib~@
Version: ~a~@
Requires: smithwaterman, fastahack~@
Description: C++ library for parsing and manipulating VCF files~@
Libs: -L${libdir} -lvcflib~@
Cflags: -I${includedir}~%"
out ,version))))
#t))))) #t)))))
(home-page "https://github.com/vcflib/vcflib/") (home-page "https://github.com/vcflib/vcflib/")
(synopsis "Library for parsing and manipulating VCF files") (synopsis "Library for parsing and manipulating VCF files")
@ -15862,6 +15983,77 @@ containing the reference genome as well.")
;; See https://github.com/dpryan79/MethylDackel/issues/85 ;; See https://github.com/dpryan79/MethylDackel/issues/85
(license license:expat))) (license license:expat)))
;; This package bundles PCRE 8.02 and cannot be built with the current
;; version.
(define-public phast
(package
(name "phast")
(version "1.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/CshlSiepelLab/phast")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"10lpbllvny923jjbbyrpxahhd1m5h7sbj9gx7rd123rg10mlidki"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "CC=gcc"
(string-append "DESTDIR=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Fix syntax
(substitute* "test/Makefile"
((" ") " "))
(substitute* "Makefile"
(("CLAPACKPATH=/usr/lib")
(string-append "CLAPACKPATH="
(assoc-ref inputs "clapack") "/lib")))
;; Renaming the libraries is not necessary with our version of
;; CLAPACK.
(substitute* "src/lib/Makefile"
(("ifdef CLAPACKPATH") "ifdef UNNECESSARY"))
(substitute* "src/make-include.mk"
(("-lblaswr") "-lblas")
(("-ltmg") "-ltmglib")
(("liblapack.a") "liblapack.so")
(("libblas.a") "libblas.so")
(("libf2c.a") "libf2c.so"))
(substitute* "src/Makefile"
(("/opt") "/share")
(("/usr/") "/"))
#t))
(replace 'check
(lambda _
(setenv "PATH"
(string-append (getcwd) "/bin:" (getenv "PATH")))
;; Disable broken test
(substitute* "test/Makefile"
((".*if.*hmrc_summary" m) (string-append "#" m)))
;; Only run the msa_view tests because the others fail for
;; unknown reasons.
(invoke "make" "-C" "test" "msa_view"))))))
(inputs
`(("clapack" ,clapack)))
(native-inputs
`(("perl" ,perl)))
(home-page "http://compgen.cshl.edu/phast/")
(synopsis "Phylogenetic analysis with space/time models")
(description
"Phylogenetic Analysis with Space/Time models (PHAST) is a collection of
command-line programs and supporting libraries for comparative and
evolutionary genomics. Best known as the search engine behind the
Conservation tracks in the University of California, Santa Cruz (UCSC) Genome
Browser, PHAST also includes several tools for phylogenetic modeling,
functional element identification, as well as utilities for manipulating
alignments, trees and genomic annotations.")
(license license:bsd-3)))
(define-public python-gffutils (define-public python-gffutils
;; The latest release is older more than a year than the latest commit ;; The latest release is older more than a year than the latest commit
(let ((commit "4034c54600813b1402945e12faa91b3a53162cf1") (let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")

View file

@ -3,6 +3,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com> ;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -57,12 +58,14 @@
(inputs `(("flex" ,flex))) (inputs `(("flex" ,flex)))
(propagated-inputs `(("m4" ,m4))) (propagated-inputs `(("m4" ,m4)))
(home-page "https://www.gnu.org/software/bison/") (home-page "https://www.gnu.org/software/bison/")
(synopsis "Parser generator") (synopsis "Yacc-compatible parser generator")
(description (description
"GNU Bison is a general-purpose parser generator. It can build a "GNU Bison is a general-purpose parser generator. It can build a
deterministic or generalized LR parser from an annotated, context-free deterministic or generalized LR parser from an annotated, context-free
grammar. It is versatile enough to have many applications, from parsers for grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.") simple tools through complex programming languages.
Bison also provides an implementation of @command{yacc}, as specified by POSIX.")
(license gpl3+))) (license gpl3+)))
(define-public bison-3.6 (define-public bison-3.6

View file

@ -375,17 +375,16 @@ and will take advantage of multiple processor cores where possible.")
(define-public libtorrent-rasterbar (define-public libtorrent-rasterbar
(package (package
(name "libtorrent-rasterbar") (name "libtorrent-rasterbar")
(version "1.2.7") (version "1.2.8")
(source (origin (source
(method url-fetch) (origin
(uri (method url-fetch)
(string-append (uri
"https://github.com/arvidn/libtorrent/releases/download/libtorrent_" (string-append "https://github.com/arvidn/libtorrent/"
(string-join (string-split version #\.) "_") "releases/download/libtorrent-" version "/"
"/libtorrent-rasterbar-" version ".tar.gz")) "libtorrent-rasterbar-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1phn4klzvfzvidv5g566pnrrxj8l0givpy6s4r17d45wznqxc006"))))
"001g35janbxi20c7jzsf3ii9mkagz4kdsp7f3sz5r0n0cng0c05w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -402,9 +401,9 @@ and will take advantage of multiple processor cores where possible.")
(native-inputs `(("python" ,python-wrapper) (native-inputs `(("python" ,python-wrapper)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(home-page "https://www.libtorrent.org/") (home-page "https://www.libtorrent.org/")
(synopsis "Feature complete BitTorrent implementation") (synopsis "Feature-complete BitTorrent implementation")
(description (description
"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation "libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation
focusing on efficiency and scalability. It runs on embedded devices as well as focusing on efficiency and scalability. It runs on embedded devices as well as
desktops.") desktops.")
(license l:bsd-2))) (license l:bsd-2)))

View file

@ -2,7 +2,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at> ;;; Copyright © 2016 Stefan Reichoer <stefan@xsteve.at>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@ -46,6 +46,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#: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 qt)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite) #:use-module (gnu packages sqlite)
#:use-module (gnu packages time) #:use-module (gnu packages time)
@ -283,3 +284,59 @@ of day, written in C, and including bindings for C++, pascal, perl, php, python,
and ruby. It includes two illustrative command-line programs, @code{hcal} and and ruby. It includes two illustrative command-line programs, @code{hcal} and
@code{hdate}, and some snippets and scripts written in the binding languages.") @code{hdate}, and some snippets and scripts written in the binding languages.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public confclerk
(package
(name "confclerk")
(version "0.6.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.toastfreeware.priv.at/tarballs/"
"confclerk/confclerk-" version ".tar.gz"))
(sha256
(base32
"10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; Install directory is currently hard-coded.
(substitute* "src/app/app.pro"
(("PREFIX = /usr/bin")
(string-append "PREFIX =" out "/bin")))
(invoke "qmake"))))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share")))
(install-file "data/confclerk.1"
(string-append share "/man/man1"))
(install-file "data/confclerk.desktop"
(string-append share "/applications"))
(install-file "data/confclerk.svg"
(string-append share "/icons/hicolor/scalable/apps"))
#t))))
#:tests? #f)) ; no tests
(native-inputs
`(("perl" ,perl))) ; pod2man
(inputs
`(("qtbase" ,qtbase)))
(home-page "https://www.toastfreeware.priv.at/confclerk")
(synopsis "Offline conference schedule application")
(description
"ConfClerk is an application written in Qt, which makes conference schedules
available offline. It displays the conference schedule from various views,
support searches on various items (speaker, speech topic, location, etc.) and
enables you to select favorite events and create your own schedule.
At the moment ConfClerk is able to import schedules in XML format created by
the PentaBarf conference management system (or frab) used by e.g. FOSDEM,
DebConf, FrOSCon, Grazer LinuxTage, and the CCC congresses.
ConfClerk is targeted at mobile devices but works on any system running Qt.")
(license (list license:gpl2+
license:lgpl3)))) ; or cc-by3.0 for src/icons/*

View file

@ -34,6 +34,7 @@
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com> ;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -75,11 +76,62 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial)) #:use-module (guix build-system trivial))
(define-public pedansee
(package
(name "pedansee")
(version "0.0.3")
(source
(origin
(method url-fetch)
(uri
(string-append "https://www.flyn.org/projects/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "0lsg791x6n95pxg6vif8qfc46nqcamhjq3g0dl5xqf6imy7n3acd"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("clang" ,clang)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
`(("glib" ,glib)))
(synopsis "Code checker for C")
(description "Pedansee checks C source files for compliance with a particular
programming style. The style is currently defined by the pedansee source code
in the form of functions which walk each source files syntax tree. You can
modify some aspects of this style through the use of regular expressions.")
(home-page "https://www.flyn.org/projects/pedansee/")
(license license:gpl3+)))
(define-public mutest
(package
(name "mutest")
(version "0.0.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/ebassi/mutest.git")
(commit "e6246c9")))
(file-name (git-file-name name version))
(sha256
(base32 "0gdqwq6fvk06wld4rhnw5752hahrvhd69zrci045x25rwx90x26q"))))
(build-system meson-build-system)
(synopsis "Small C testing library")
(description "Mutest aims to be a small unit testing library for C projects,
with an API heavily modelled on high level Behavior-Driver Development frameworks
like Jasmine or Mocha.")
(home-page "https://ebassi.github.io/mutest/mutest.md.html")
(license license:expat)))
(define-public check (define-public check
(package (package
(name "check") (name "check")
@ -297,7 +349,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(define-public catch-framework2 (define-public catch-framework2
(package (package
(name "catch2") (name "catch2")
(version "2.1.2") (version "2.13.0")
(home-page "https://github.com/catchorg/Catch2") (home-page "https://github.com/catchorg/Catch2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -307,7 +359,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14vcckqmbydjsg40ngi6iv999zimysh2l7fmrqj1d7xl990qz233")))) "0i4w0c9280a5fyi00mvvf13wlnfzyifr487n1iyr30zvvj5s5f1h"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("python" ,python-wrapper))) `(("python" ,python-wrapper)))
@ -1836,6 +1888,18 @@ seamlessly into your existing Python unit testing work flow.")
(license license:mpl2.0) (license license:mpl2.0)
(properties `((python2-variant . ,(delay python2-hypothesis)))))) (properties `((python2-variant . ,(delay python2-hypothesis))))))
(define-public python-hypothesis-5.23
(package
(inherit python-hypothesis)
(version "5.23.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "hypothesis" version))
(sha256
(base32
"0sy1v6nyxg4rjcf3rlr8nalb7wqd9nccpb2lzkchbj5an13ysf1h"))))
(home-page "https://github.com/HypothesisWorks/hypothesis")))
;; This is the last version of Hypothesis that supports Python 2. ;; This is the last version of Hypothesis that supports Python 2.
(define-public python2-hypothesis (define-public python2-hypothesis
(let ((hypothesis (package-with-python2 (let ((hypothesis (package-with-python2
@ -1852,6 +1916,29 @@ seamlessly into your existing Python unit testing work flow.")
`(("python2-enum34" ,python2-enum34) `(("python2-enum34" ,python2-enum34)
,@(package-propagated-inputs hypothesis)))))) ,@(package-propagated-inputs hypothesis))))))
(define-public python-hypothesmith
(package
(name "python-hypothesmith")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "hypothesmith" version))
(sha256
(base32
"09331sspknv459xcyn1k0lx5flqlc6gmnwp9370pfvg4kg1zmss6"))))
(build-system python-build-system)
(propagated-inputs
`(("python-hypothesis" ,python-hypothesis-5.23)
("python-lark-parser" ,python-lark-parser)
("python-libcst" ,python-libcst)))
(home-page "https://github.com/Zac-HD/hypothesmith")
(synopsis "Strategies for generating Python programs")
(description
"This package contains hypothesis strategies for generating Python
programs, something like CSmith, a random generator of C programs.")
(license license:mpl2.0)))
(define-public python-lit (define-public python-lit
(package (package
(name "python-lit") (name "python-lit")
@ -1910,13 +1997,13 @@ failures.")
(define-public python-pytest-flakes (define-public python-pytest-flakes
(package (package
(name "python-pytest-flakes") (name "python-pytest-flakes")
(version "4.0.0") (version "4.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pytest-flakes" version)) (uri (pypi-uri "pytest-flakes" version))
(sha256 (sha256
(base32 (base32
"0hyind0gb950v9kfy0v97x66fb33slbqmxhrjvgbvsv0ayzn869l")))) "0045h3hnrkn2jwr42jgy2j98npx4amwr6wxzi9j0nppaqz33l49p"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -2606,7 +2693,7 @@ provides a simple way to achieve this.")
(define-public umockdev (define-public umockdev
(package (package
(name "umockdev") (name "umockdev")
(version "0.14.1") (version "0.14.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/martinpitt/umockdev/" (uri (string-append "https://github.com/martinpitt/umockdev/"
@ -2614,7 +2701,7 @@ provides a simple way to achieve this.")
"umockdev-" version ".tar.xz")) "umockdev-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1g78jcrvb7yyh0q5kv5409wjqf8nlfqnw1rknm3a247mcx317dpz")))) "1nh6xsssmssmk0lxp9c9dmq3wzlpbpkg77nmmd09csbpybibgxfp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View file

@ -240,7 +240,9 @@ and 32-bit PowerPC architectures.")
`(("chez-scheme" ,chez-scheme))) `(("chez-scheme" ,chez-scheme)))
(arguments (arguments
`(#:make-flags (let ((out (assoc-ref %outputs "out"))) `(#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "PREFIX=" out))) (list (string-append "PREFIX=" out)
"CHEZ=chez-scheme --libdirs ./"
(string-append "chezversion=" ,(package-version chez-scheme))))
#:test-target "test" #:test-target "test"
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure)))) (delete 'configure))))
@ -414,9 +416,13 @@ Chez Scheme.")
;; files. ;; files.
(define (chez-make-flags name version) (define (chez-make-flags name version)
`(let ((out (assoc-ref %outputs "out"))) `(let ((out (assoc-ref %outputs "out")))
(list (string-append "PREFIX=" out) (list
(string-append "DOCDIR=" out "/share/doc/" ;; Set 'chezversion' so that libraries are installed in
,name "-" ,version)))) ;; 'lib/csvX.Y.Z-site' like Chez's 'native-search-paths' expects.
(string-append "chezversion=" ,(package-version chez-scheme))
(string-append "PREFIX=" out)
(string-append "DOCDIR=" out "/share/doc/"
,name "-" ,version))))
(define-public chez-matchable (define-public chez-matchable
(package (package

View file

@ -227,6 +227,7 @@
"third_party/swiftshader/third_party/marl" ;ASL2.0 "third_party/swiftshader/third_party/marl" ;ASL2.0
"third_party/swiftshader/third_party/subzero" ;NCSA "third_party/swiftshader/third_party/subzero" ;NCSA
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style "third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
"third_party/tcmalloc/chromium" ;BSD-3
"third_party/usb_ids" ;BSD-3 "third_party/usb_ids" ;BSD-3
"third_party/usrsctp" ;BSD-2 "third_party/usrsctp" ;BSD-2
"third_party/vulkan_memory_allocator" ;Expat "third_party/vulkan_memory_allocator" ;Expat
@ -288,7 +289,7 @@
(string-append "ungoogled-chromium-" category "-" name)))) (string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash)))) (sha256 (base32 hash))))
(define %ungoogled-revision "df199c04ff367da59ce52a23a3f3b305dd3b00c3") (define %ungoogled-revision "57244cdfc21dc05910862152d91cc528103c988a")
(define %debian-revision "debian/83.0.4103.116-3") (define %debian-revision "debian/83.0.4103.116-3")
(define %gentoo-revision "f3f649046d31ebdbc8c4a302b2384504eff78027") (define %gentoo-revision "f3f649046d31ebdbc8c4a302b2384504eff78027")
@ -330,7 +331,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
(sha256 (sha256
(base32 (base32
"1bqvcq3dj6615198j7cz3ylyyic5zpis06capvl6ybl1na3ainb0")))) "15a1xpmabdxr1mn61m0jm9a5l987rxdji8b1b6zy39mr636vcwfi"))))
;; This is a source 'snippet' that does the following: ;; This is a source 'snippet' that does the following:
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility. ;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@ -449,7 +450,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(define-public ungoogled-chromium (define-public ungoogled-chromium
(package (package
(name "ungoogled-chromium") (name "ungoogled-chromium")
(version (string-append "84.0.4147.89-0." (version (string-append "84.0.4147.125-0."
(string-take %ungoogled-revision 7))) (string-take %ungoogled-revision 7)))
(synopsis "Graphical web browser") (synopsis "Graphical web browser")
(source (origin (source (origin
@ -459,7 +460,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(car (string-split version #\-)) ".tar.xz")) (car (string-split version #\-)) ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp")) "1xdg9pnnvbzasmra09rl7wdrir61rfcqml46jj7kv39drwk9chwq"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -490,7 +491,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
"goma_dir=\"\"" "goma_dir=\"\""
"enable_nacl=false" "enable_nacl=false"
"enable_nacl_nonsfi=false" "enable_nacl_nonsfi=false"
"use_allocator=\"none\""
"use_unofficial_version_number=false" "use_unofficial_version_number=false"
"treat_warnings_as_errors=false" "treat_warnings_as_errors=false"
"use_official_google_api_keys=false" "use_official_google_api_keys=false"

View file

@ -47,8 +47,8 @@
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public cuirass (define-public cuirass
(let ((commit "136a8295e4e09724eccc230c127fb880aa84b57d") (let ((commit "f2984c7230f69a6e50810edc5e9d36bd671801f9")
(revision "38")) (revision "43"))
(package (package
(name "cuirass") (name "cuirass")
(version (git-version "0.0.1" revision commit)) (version (git-version "0.0.1" revision commit))
@ -60,7 +60,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"04fzc2q8cd02dnlrarzlxq0yfi90735s5f6dw7g2k63rbxlhcq8j")))) "1p9mlmhv4kz8wixgywh1ffm3140p4mkgz92n7ry3n5s9w5n7fpjl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:modules ((guix build utils) '(#:modules ((guix build utils)
@ -93,8 +93,10 @@
(git (assoc-ref inputs "guile-git")) (git (assoc-ref inputs "guile-git"))
(bytes (assoc-ref inputs "guile-bytestructures")) (bytes (assoc-ref inputs "guile-bytestructures"))
(fibers (assoc-ref inputs "guile-fibers")) (fibers (assoc-ref inputs "guile-fibers"))
(zlib (assoc-ref inputs "guile-zlib"))
(guix (assoc-ref inputs "guix")) (guix (assoc-ref inputs "guix"))
(deps (list gcrypt json sqlite git bytes fibers guix)) (deps (list gcrypt json sqlite git bytes fibers
zlib guix))
(guile (assoc-ref %build-inputs "guile")) (guile (assoc-ref %build-inputs "guile"))
(effective (read-line (effective (read-line
(open-pipe* OPEN_READ (open-pipe* OPEN_READ
@ -126,6 +128,7 @@
("guile-json" ,guile-json-4) ("guile-json" ,guile-json-4)
("guile-sqlite3" ,guile-sqlite3) ("guile-sqlite3" ,guile-sqlite3)
("guile-git" ,guile-git) ("guile-git" ,guile-git)
("guile-zlib" ,guile-zlib)
;; FIXME: this is propagated by "guile-git", but it needs to be among ;; FIXME: this is propagated by "guile-git", but it needs to be among
;; the inputs to add it to GUILE_LOAD_PATH. ;; the inputs to add it to GUILE_LOAD_PATH.
("guile-bytestructures" ,guile-bytestructures) ("guile-bytestructures" ,guile-bytestructures)

View file

@ -125,14 +125,14 @@ highlighting your own code that seemed comprehensible when you wrote it.")
(define-public global ; a global variable (define-public global ; a global variable
(package (package
(name "global") (name "global")
(version "6.6.4") (version "6.6.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/global/global-" (uri (string-append "mirror://gnu/global/global-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1515642wsjz7x3rsgaqk4sc7n0z2znl7idsk8jz8wgy5aswqqzlq")))) "10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses) (inputs `(("ncurses" ,ncurses)
("libltdl" ,libltdl) ("libltdl" ,libltdl)

View file

@ -915,7 +915,7 @@ multiple processors and multiple cores when compressing data.")
(define-public pixz (define-public pixz
(package (package
(name "pixz") (name "pixz")
(version "1.0.6") (version "1.0.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -923,7 +923,7 @@ multiple processors and multiple cores when compressing data.")
"/pixz-" version ".tar.xz")) "/pixz-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1s3j7zw6j5zi3fhdxg287ndr3wf6swac7z21mqd1pyiln530gi82")))) "1ifxr18f2h75gkcrkx8033kwmwmrcgxshpaawyc2n4dzn1p2rqz5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -1807,20 +1807,18 @@ single-member files which can't be decompressed in parallel.")
(define-public innoextract (define-public innoextract
(package (package
(name "innoextract") (name "innoextract")
(version "1.8") (version "1.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/dscharrer/innoextract/releases" (uri (string-append "https://constexpr.org/innoextract/files/"
"/download/" version "innoextract-" version "/"
"/innoextract-" version ".tar.gz")) "/innoextract-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33"))))
"0saj50n8ds85shygy4mq1h6s99510r9wgjjdll4dmvhra4lzcy2y"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f))
#:configure-flags '("-DBoost_NO_BOOST_CMAKE=ON")))
(inputs `(("boost" ,boost) (inputs `(("boost" ,boost)
("libiconv" ,libiconv) ("libiconv" ,libiconv)
("xz" ,xz))) ("xz" ,xz)))

View file

@ -0,0 +1,105 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages configuration-management)
#:use-module (gnu packages)
#:use-module (guix build-system go)
#:use-module (guix git-download)
#:use-module (gnu packages golang)
#:use-module (gnu packages version-control)
#:use-module (gnu packages textutils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
(define-public chezmoi
(package
(name "chezmoi")
;; XXX: Make sure 7f238faa61e46d79b54d4d0ea8f0b5fc27db84b2 applied before
;; version update, which should fix @code{password-store} integration.
(version "1.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/twpayne/chezmoi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1b8y0wq3myhvjdnwl0i4x85iil7i7kmsjajvbw1a47afm83jkbaw"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/twpayne/chezmoi"
;; We don't need to install the source code for end-user applications.
#:install-source? #f))
(native-inputs
`(("go-github-com-masterminds-sprig" ,go-github-com-masterminds-sprig)
("go-github-com-masterminds-goutils" ,go-github-com-masterminds-goutils)
("go-github-com-masterminds-semver" ,go-github-com-masterminds-semver)
("go-github-com-google-uuid" ,go-github-com-google-uuid)
("go-github-com-huandu-xstrings" ,go-github-com-huandu-xstrings)
("go-github-com-imdario-mergo" ,go-github-com-imdario-mergo)
("go-github-com-mitchellh-reflectwalk" ,go-github-com-mitchellh-reflectwalk)
("go-github-com-mitchellh-copystructure" ,go-github-com-mitchellh-copystructure)
("go-github-com-bmatcuk-doublestar" ,go-github-com-bmatcuk-doublestar)
("go-github-com-charmbracelet-glamour" ,go-github-com-charmbracelet-glamour)
("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma)
("go-github-com-coreos-go-semver" ,go-github-com-coreos-go-semver)
("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch)
("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2)
("go-github-go-git" ,go-github-go-git)
("go-github-com-google-go-github" ,go-github-com-google-go-github)
("go-github-com-google-go-querystring" ,go-github-com-google-go-querystring)
("go-github-com-google-renameio" ,go-github-com-google-renameio)
("go-github-com-microcosm-cc-bluemonday",go-github-com-microcosm-cc-bluemonday)
("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur)
("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur)
("go-github-com-gorilla-css" ,go-github-com-gorilla-css)
("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi)
("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap)
("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent)
("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding)
("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv)
("go-github-com-google-goterm" ,go-github-com-google-goterm)
("go-golang-org-colorful" ,go-golang-org-colorful)
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter)
("go-github-com-pelletier-go-toml" ,go-github-com-pelletier-go-toml)
("go-github-com-pkg-diff" ,go-github-com-pkg-diff)
("go-github-com-sergi-go-diff" ,go-github-com-sergi-go-diff)
("go-github-com-spf13-cobra" ,go-github-com-spf13-cobra)
("go-github-com-spf13-viper" ,go-github-com-spf13-viper)
("go-github-com-twpayne-go-shell" ,go-github-com-twpayne-go-shell)
("go-github-com-twpayne-go-vfs" ,go-github-com-twpayne-go-vfs)
("go-github-com-twpayne-go-vfsafero" ,go-github-com-twpayne-go-vfsafero)
("go-github-com-twpayne-go-xdg" ,go-github-com-twpayne-go-xdg)
("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark)
("go-github-com-zalando-go-keyring" ,go-github-com-zalando-go-keyring)
("go-github-com-godbus-dbus" ,go-github-com-godbus-dbus)
("go-etcd-io-bbolt" ,go-etcd-io-bbolt)
("go-golang-org-x-crypto" ,go-golang-org-x-crypto)
("go-golang-org-x-net" ,go-golang-org-x-net)
("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2)
("go-github-com-rogpeppe-go-internal" ,go-github-com-rogpeppe-go-internal)
("gopkg-in-errgo-fmt-errors" ,gopkg-in-errgo-fmt-errors)))
(home-page "https://www.chezmoi.io/")
(synopsis "Personal configuration files manager")
(description "This package helps to manage personal configuration files
across multiple machines.")
(license license:expat)))

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, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
;;; ;;;
@ -39,7 +39,7 @@
(package (package
(name "conky") (name "conky")
(home-page "https://github.com/brndnmtthws/conky") (home-page "https://github.com/brndnmtthws/conky")
(version "1.11.5") (version "1.11.6")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -48,7 +48,7 @@
(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 "1a75ss48mn9pknrxy33dh5rdgm67a5kpddsyqfhlcn1761kfzzyp")))) (base32 "0y2g66fjqp2hdk0y1h4ijxhnv34j16gizvxpmbigwh4n6zijcm6v"))))
(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

@ -11,6 +11,8 @@
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -81,6 +83,42 @@ strings, configuration, bit streams, threading, translation, and cross-platform
operating system functions.") operating system functions.")
(license license:zlib))) (license license:zlib)))
(define-public rttr
(package
(name "rttr")
(version "0.9.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rttrorg/rttr/")
(commit (string-append "v" version))))
(sha256
(base32 "1yxad8sj40wi75hny8w6imrsx8wjasjmsipnlq559n4b6kl84ijp"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
'(;; No check target. Setting test-target to "unit_test" runs it twice.
#:tests? #f
#:configure-flags
'("-DBUILD_DOCUMENTATION=OFF" "-DBUILD_EXAMPLES=OFF")
#:phases
(modify-phases %standard-phases
;; library_test fails in chroot.
(add-after 'unpack 'skip-library-test
(lambda _
(substitute* "src/unit_tests/unit_tests.cmake"
(("misc/library_test.cpp") ""))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)))
(home-page "https://github.com/rttrorg/rttr/")
(synopsis "C++ Reflection Library")
(description
"RTTR stands for Run Time Type Reflection. It describes the ability of a
computer program to introspect and modify an object at runtime. It is also
the name of the library itself, which is written in C++.")
(license license:expat)))
(define-public rct (define-public rct
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a") (let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "2")) (revision "2"))
@ -246,7 +284,7 @@ as ordering relation.")
(define-public json-modern-cxx (define-public json-modern-cxx
(package (package
(name "json-modern-cxx") (name "json-modern-cxx")
(version "3.7.3") (version "3.9.1")
(home-page "https://github.com/nlohmann/json") (home-page "https://github.com/nlohmann/json")
(source (source
(origin (origin
@ -254,8 +292,7 @@ as ordering relation.")
(uri (git-reference (url home-page) (uri (git-reference (url home-page)
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(sha256 (sha256
(base32 (base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc"))
"04rry1xzis71z5gj1ylcj8b4li5q18zxhcwaviwvi3hx0frzxl9w"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -278,12 +315,40 @@ as ordering relation.")
(string-append (string-append
"#include <fifo_map/" fifo-map-hpp ">"))))) "#include <fifo_map/" fifo-map-hpp ">")))))
#t)))) #t))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags
(list (string-append "-DJSON_TestDataDirectory="
(assoc-ref %build-inputs "json_test_data")))
#:phases (modify-phases %standard-phases
;; XXX: When tests are enabled, the install phase will cause
;; a needless rebuild without the given configure flags,
;; ultimately creating both $out/lib and $out/lib64. Move
;; the check phase after install to work around it.
(delete 'check)
(add-after 'install 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
;; Some tests need git and a full checkout, skip those.
(invoke "ctest" "-LE" "git_required")
(format #t "test suite not run~%"))
#t)))))
(native-inputs (native-inputs
`(("amalgamate" ,amalgamate) `(("amalgamate" ,amalgamate)
("doctest" ,doctest))) ("doctest" ,doctest)
("json_test_data"
,(let ((version "3.0.0"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nlohmann/json_test_data")
(commit (string-append "v" version))))
(file-name (git-file-name "json_test_data" version))
(sha256
(base32
"0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv")))))))
(inputs (inputs
`(("fifo-map" ,fifo-map))) `(("fifo-map" ,fifo-map)))
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++") (synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides (description "JSON for Modern C++ is a C++ JSON library that provides
intuitive syntax and trivial integration.") intuitive syntax and trivial integration.")
@ -295,7 +360,7 @@ intuitive syntax and trivial integration.")
(define-public xtl (define-public xtl
(package (package
(name "xtl") (name "xtl")
(version "0.6.13") (version "0.6.17")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (uri
@ -304,7 +369,7 @@ intuitive syntax and trivial integration.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"0py70lm2i3sxzpgca2cic8zfn6dn18q837h76a5fchl2c0kpxm91")) "136djmx4l34ff5z4fw1c866x52vp7k4f8zcnbs49whymxzhzwpw0"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(native-inputs (native-inputs
`(("googletest" ,googletest) `(("googletest" ,googletest)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -17,6 +17,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Hendur Saga <hendursaga@yahoo.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +54,8 @@
#:use-module (gnu packages libffi) #:use-module (gnu packages libffi)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lsof) #:use-module (gnu packages lsof)
#:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle) #:use-module (gnu packages nettle)
#:use-module (gnu packages password-utils) #:use-module (gnu packages password-utils)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
@ -394,6 +397,49 @@ generation of wordlists the included tool @code{worgen} can be used. There is
no man page, refer to the home page for usage details.") no man page, refer to the home page for usage details.")
(license (list license:isc license:expat))))) (license (list license:isc license:expat)))))
(define-public ssss
(package
(name "ssss")
(version "0.5")
(source (origin
(method url-fetch)
(uri (string-append "http://point-at-infinity.org/ssss/ssss-"
version ".tar.gz"))
(sha256
(base32
"15grn2fp1x8p92kxkwbmsx8rz16g93y9grl3hfqbh1jn21ama5jx"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No test suite
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configuration to be done
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((outdir (assoc-ref outputs "out"))
(bindir (string-append outdir "/bin"))
(docdir (string-append outdir
"/share/doc/ssss-"
,version)))
(install-file "ssss-combine" bindir)
(install-file "ssss-split" bindir)
(install-file "ssss.1" docdir)
(install-file "ssss.1.html" docdir)
#t))))))
(inputs
`(("gmp" ,gmp)))
(native-inputs
`(("xmltoman" ,xmltoman)))
(home-page "http://point-at-infinity.org/ssss/")
(synopsis "Shamir's secret sharing scheme implementation")
(description "@command{ssss-split} and @command{ssss-combine} are utilities that split
and combine secrets securely using Shamir's secret sharing scheme. This implementation
allows for a threshold scheme where the minimum number of shares can be less than the
total number of shares generated.")
(license license:gpl2+)))
(define-public tomb (define-public tomb
(package (package
(name "tomb") (name "tomb")
@ -472,7 +518,7 @@ user's graphical desktop.")
(define-public scrypt (define-public scrypt
(package (package
(name "scrypt") (name "scrypt")
(version "1.2.1") (version "1.3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -480,20 +526,24 @@ user's graphical desktop.")
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 (base32
"0xy5yhrwwv13skv9im9vm76rybh9f29j2dh4hlh2x01gvbkza8a6")))) "1hnl0r6pmyxiy4dmafmqk1db7wpc0x9rqpzqcwr9d2cmghcj6byz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:license-file-regexp "COPYRIGHT"
(add-after 'unpack 'patch-command-invocations #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-$PATH-assumptions
(lambda _ (lambda _
(substitute* "configure"
(("\\{POSIX_PATH\\}")
"{PATH}"))
(substitute* "Makefile.in" (substitute* "Makefile.in"
(("command -p") "")) (("command -p") ""))
#t)) #t))
(add-after 'install 'install-docs (add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out")) (let* ((out (assoc-ref %outputs "out"))
(misc (string-append out "/share/doc/scrypt"))) (doc (string-append out "/share/doc/" ,name "-" ,version)))
(install-file "FORMAT" misc) (install-file "FORMAT" doc)
#t)))))) #t))))))
(inputs (inputs
`(("openssl" ,openssl))) `(("openssl" ,openssl)))
@ -719,7 +769,7 @@ data on your platform, so the seed itself will be as random as possible.
"libdir=" out "/lib\n" "libdir=" out "/lib\n"
"includedir=" out "/include\n\n" "includedir=" out "/include\n\n"
"Name: libcrypto++-" ,version "\n" "Name: libcrypto++-" ,version "\n"
"Description: Class library of cryptographic schemes" "Description: Class library of cryptographic schemes\n"
"Version: " ,version "\n" "Version: " ,version "\n"
"Libs: -L${libdir} -lcryptopp\n" "Libs: -L${libdir} -lcryptopp\n"
"Cflags: -I${includedir}\n")) "Cflags: -I${includedir}\n"))
@ -1011,6 +1061,58 @@ Features:
(home-page "https://github.com/bitcoin-core/secp256k1") (home-page "https://github.com/bitcoin-core/secp256k1")
(license license:unlicense)))) (license license:unlicense))))
(define-public libsecp256k1-bitcoin-cash
(package
(name "libsecp256k1-bitcoin-cash")
(version "0.22.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Bitcoin-ABC/secp256k1")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1rnif3iny6pz1r3g69bagzr342mm3x0v66b60csnmm1rg44bd5v1"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(arguments
'(#:configure-flags '("--enable-module-recovery"
"--enable-experimental"
"--enable-module-ecdh"
"--disable-jni"
"--with-bignum=no"
"--enable-module-schnorr"
"--disable-static"
"--enable-shared")))
(synopsis "Optimized C library for EC operations on curve secp256k1")
(description
"Optimized C library for cryptographic operations on curve secp256k1.
This library is used for consensus critical cryptographic operations on the
Bitcoin Cash network.
Features:
@itemize
@item secp256k1 ECDSA signing/verification and key generation.
@item secp256k1 Schnorr signing/verification (Bitcoin Cash Schnorr variant).
@item Additive and multiplicative tweaking of secret/public keys.
@item Serialization/parsing of secret keys, public keys, signatures.
@item Constant time, constant memory access signing and pubkey generation.
@item Derandomized ECDSA (via RFC6979 or with a caller provided function).
@item Very efficient implementation.
@item Suitable for embedded systems.
@item Optional module for public key recovery.
@item Optional module for ECDH key exchange (experimental).
@item Optional module for multiset hash (experimental).
@end itemize\n")
(home-page "https://github.com/Bitcoin-ABC/secp256k1")
(license license:expat)))
(define-public stoken (define-public stoken
(package (package
(name "stoken") (name "stoken")

View file

@ -43,6 +43,7 @@
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -613,14 +614,13 @@ RDBMS systems (which are deep in functionality).")
(define-public mycli (define-public mycli
(package (package
(name "mycli") (name "mycli")
(version "1.21.1") (version "1.22.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "mycli" version)) (uri (pypi-uri "mycli" version))
(sha256 (sha256
(base32 (base32 "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv"))))
"1q9p0yik9cpvpxjs048anvhicfcna84mpl7axv9bwgr48w40lqwg"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f)) ; tests expect a running MySQL `(#:tests? #f)) ; tests expect a running MySQL
@ -1973,14 +1973,14 @@ sets, bitmaps and hyperloglogs.")
(define-public kyotocabinet (define-public kyotocabinet
(package (package
(name "kyotocabinet") (name "kyotocabinet")
(version "1.2.77") (version "1.2.78")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://fallabs.com/kyotocabinet/pkg/" (uri (string-append "https://fallabs.com/kyotocabinet/pkg/"
"kyotocabinet-" version ".tar.gz")) "kyotocabinet-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1rlx4307adbzd842b4npq6cwlw8h010ingxaz3qz1ijc70lr72an")))) "1bxkf9kmcavq9rqridb8mvmrk3hj4447ffi24m2admsbm61n6k29"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -2149,7 +2149,7 @@ database.")
(define-public lmdb (define-public lmdb
(package (package
(name "lmdb") (name "lmdb")
(version "0.9.25") (version "0.9.26")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2158,7 +2158,7 @@ database.")
(commit (string-append "LMDB_" version)))) (commit (string-append "LMDB_" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0i60zlca8r6fib23gdgl4c80gxpx24772ggpvz94yr7zaai4k11w")))) (base32 "0323xwb2rqyrr9vr6gbxc2kl89drhqw0ifmyh9pg9qgqmymyhxdx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
@ -2450,13 +2450,13 @@ etc., and an SQL engine for performing simple SQL queries.")
(define-public python-lmdb (define-public python-lmdb
(package (package
(name "python-lmdb") (name "python-lmdb")
(version "0.98") (version "0.99")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "lmdb" version)) (uri (pypi-uri "lmdb" version))
(sha256 (sha256
(base32 (base32
"027pgbdhhdcbwj53vrzr6a60gjhmz4s75gl3180fd4q8pwlbq986")) "12fwlzfd82471ss9xzbqwcqc6f5miy51y72y2yya9j5cm9589szr"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Delete bundled lmdb source files. ;; Delete bundled lmdb source files.
@ -2549,7 +2549,19 @@ implementation for Python.")
;; TODO: Removing the libsrc/zlib source directory breaks the build. ;; TODO: Removing the libsrc/zlib source directory breaks the build.
;; This indicates that the internal zlib code may still be used. ;; This indicates that the internal zlib code may still be used.
#:configure-flags '("--without-internal-zlib" #:configure-flags '("--without-internal-zlib"
"--with-readline"))) "--with-readline"
"--enable-static=no")
#:phases
(modify-phases %standard-phases
;; Even with "--enable-static=no", "libvirtuoso-t.a" is left in
;; the build output. The following phase removes it.
(add-after 'install 'remove-static-libs
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(for-each (lambda (file)
(delete-file (string-append lib "/" file)))
'("libvirtuoso-t.a"
"libvirtuoso-t.la"))))))))
(inputs (inputs
`(("openssl" ,openssl-1.0) `(("openssl" ,openssl-1.0)
("net-tools" ,net-tools) ("net-tools" ,net-tools)
@ -2703,15 +2715,13 @@ You might also want to install the following optional dependencies:
(define-public python-alembic (define-public python-alembic
(package (package
(name "python-alembic") (name "python-alembic")
(version "1.4.1") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "alembic" version)) (uri (pypi-uri "alembic" version))
(patches (search-patches "python-alembic-exceptions-cause.patch"))
(sha256 (sha256
(base32 (base32 "1gsdrzx9h7wfva200qvvsc9sn4w79mk2vs0bbnzjhxi1jw2b0nh3"))))
"0a4hzn76csgbf1px4f5vfm256byvjrqkgi9869nkcjrwjn35c6kr"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
@ -2887,13 +2897,13 @@ designed to be easy and intuitive to use.")
(define-public python-psycopg2 (define-public python-psycopg2
(package (package
(name "python-psycopg2") (name "python-psycopg2")
(version "2.8.4") (version "2.8.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "psycopg2" version)) (uri (pypi-uri "psycopg2" version))
(sha256 (sha256
(base32 "1djvh98pi4hjd8rxbq8qzc63bg8v78k33yg6pl99wak61b6fb67q")))) (base32 "06081jk9srkd4ra9j8b93x9ld3a2yxsbsf5bbbcivbm1yx065m7p"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; Tests would require a postgresql database "psycopg2_test" ;; Tests would require a postgresql database "psycopg2_test"
@ -3106,13 +3116,13 @@ is designed to have a low barrier to entry.")
(define-public python-sqlparse (define-public python-sqlparse
(package (package
(name "python-sqlparse") (name "python-sqlparse")
(version "0.2.4") (version "0.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "sqlparse" version)) (uri (pypi-uri "sqlparse" version))
(sha256 (sha256
(base32 (base32
"1v3xh0bkfhb262dbndgzhivpnhdwavdzz8jjhx9vx0xbrx2880nf")))) "0j652a6z7bdf6c77aczfn8m8b2nsr1bcqq48wzghf8vi6wvj0qp1"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View file

@ -2,7 +2,8 @@
;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> ;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,6 +23,7 @@
(define-module (gnu packages datastructures) (define-module (gnu packages datastructures)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
@ -82,7 +84,7 @@ library.")
(define-public sparsehash (define-public sparsehash
(package (package
(name "sparsehash") (name "sparsehash")
(version "2.0.3") (version "2.0.4")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -91,7 +93,7 @@ library.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na")))) "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Memory-efficient hashtable implementations") (synopsis "Memory-efficient hashtable implementations")
(description (description
@ -234,14 +236,34 @@ to the structure and choosing one or more fields to act as the key.")
"0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z"))))))) "0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z")))))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'install-static-library (add-after 'install 'install-static-library
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(copy-file "lib/libsdsl_static.a" (copy-file "lib/libsdsl_static.a"
(string-append out "/lib/libsdsl.a"))) (string-append out "/lib/libsdsl.a")))
#t))))) #t))
(add-after 'install 'install-pkgconfig-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(mkdir-p (string-append lib "/pkgconfig"))
(with-output-to-file (string-append lib "/pkgconfig/sdsl-lite.pc")
(lambda _
(format #t "prefix=~a~@
exec_prefix=${prefix}~@
libdir=${exec_prefix}/lib~@
includedir=${prefix}/include~@
~@
~@
Name: sdsl~@
Version: ~a~@
Description: SDSL: Succinct Data Structure Library~@
Libs: -L${libdir} -lsdsl -ldivsufsort -ldivsufsort64~@
Cflags: -I${includedir}~%"
out ,version)))
#t))))))
(native-inputs (native-inputs
`(("libdivsufsort" ,libdivsufsort))) `(("libdivsufsort" ,libdivsufsort)))
(home-page "https://github.com/simongog/sdsl-lite") (home-page "https://github.com/simongog/sdsl-lite")
@ -284,3 +306,41 @@ Burrows-Wheeler transformed string from a given string over a constant-size
alphabet. The algorithm runs in O(n log n) worst-case time using only 5n+O(1) alphabet. The algorithm runs in O(n log n) worst-case time using only 5n+O(1)
bytes of memory space, where n is the length of the string.") bytes of memory space, where n is the length of the string.")
(license license:expat))) (license license:expat)))
(define-public robin-map
(package
(name "robin-map")
(version "0.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Tessil/robin-map")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1li70vwsksva9c4yly90hjafgqfixi1g6d52qq9p6r60vqc4pkjj"))))
(build-system cmake-build-system)
(native-inputs
`(("boost" ,boost))) ; needed for tests
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(mkdir "tests")
(with-directory-excursion "tests"
(invoke "cmake" "../../source/tests")
(invoke "cmake" "--build" ".")
(invoke "./tsl_robin_map_tests")))))))
(home-page "https://github.com/Tessil/robin-map")
(synopsis "C++ implementation of a fast hash map and hash set")
(description "The robin-map library is a C++ implementation of a fast hash
map and hash set using open-addressing and linear robin hood hashing with
backward shift deletion to resolve collisions.
Four classes are provided: tsl::robin_map, tsl::robin_set, tsl::robin_pg_map
and tsl::robin_pg_set. The first two are faster and use a power of two growth
policy, the last two use a prime growth policy instead and are able to cope
better with a poor hash function.")
(license license:expat)))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,29 +24,45 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)) #:use-module (gnu packages sphinx)
#:use-module (gnu packages time)
#:use-module (gnu packages xml))
(define-public radicale (define-public radicale
(package (package
(name "radicale") (name "radicale")
(version "1.1.6") (version "3.0.4")
(source (origin (source
(method url-fetch) (origin
(uri (pypi-uri "Radicale" version)) ;; There are no tests in the PyPI tarball.
(sha256 (method git-fetch)
(base32 (uri (git-reference
"0ay90nj6fmr2aq8imi0mbjl4m2rzq7a83ikj8qs9gxsylj71j1y0")))) (url "https://github.com/Kozea/Radicale")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0hj9mmhrj32mzhxlnjcfijb7768cyjsn603nalp54clgb2gkmvw8"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (native-inputs
'(#:tests? #f)) ; The tests are not distributed in the PyPi release. `(("python-pytest" ,python-pytest)
("python-pytest-cov" ,python-pytest-cov)
("python-pytest-flake8" ,python-pytest-flake8)
("python-pytest-isort" ,python-pytest-isort)
("python-pytest-runner" ,python-pytest-runner)
("python-waitress" ,python-waitress)))
(propagated-inputs (propagated-inputs
;; TODO: Add python-pam `(("python-dateutil" ,python-dateutil)
`(("python-requests" ,python-requests))) ("python-defusedxml" ,python-defusedxml)
("python-passlib" ,python-passlib)
("python-vobject" ,python-vobject)))
(synopsis "Basic CalDAV and CardDAV server") (synopsis "Basic CalDAV and CardDAV server")
(description "Radicale is a CalDAV and CardDAV server for UNIX-like (description "Radicale is a CalDAV and CardDAV server for UNIX-like
platforms. Calendars and address books are available for both local and remote platforms. Calendars and address books are available for both local and remote
@ -58,6 +75,44 @@ clients.")
(home-page "https://radicale.org/") (home-page "https://radicale.org/")
(license gpl3+))) (license gpl3+)))
(define-public xandikos
(package
(name "xandikos")
(version "0.2.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "xandikos" version))
(sha256
(base32 "13ikmcja9p42azb5ccqj2bw98zybna6zlflj10hqy0kvbib70l94"))))
(build-system python-build-system)
(propagated-inputs
`(("python-aiohttp" ,python-aiohttp)
("python-defusedxml" ,python-defusedxml)
("python-dulwich" ,python-dulwich)
("python-icalendar" ,python-icalendar)
("python-jinja2" ,python-jinja2)
("python-multidict" ,python-multidict)))
(home-page "https://www.xandikos.org/")
(synopsis "Lightweight CalDAV/CardDAV server")
(description
"Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs
onto a Git repository.
Features:
@itemize
@item Easy to set up
@item Share calendars (events, todo items, journal entries) via CalDAV and
contacts (vCard) via CardDAV
@item Automatically keep history and back up changes in Git
@item Supports synchronization extensions for CalDAV/CardDAV for quick and
efficient syncing
@item Automatically keep history and back up
@item Works with all tested CalDAV and CardDAV clients
@end itemize")
(license gpl3+)))
(define-public vdirsyncer (define-public vdirsyncer
(package (package
(name "vdirsyncer") (name "vdirsyncer")

View file

@ -202,7 +202,7 @@ unpacking them into a directory which can eventually be chrooted into.")
(define-public debianutils (define-public debianutils
(package (package
(name "debianutils") (name "debianutils")
(version "4.11") (version "4.11.1")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -211,7 +211,7 @@ unpacking them into a directory which can eventually be chrooted into.")
(file-name (git-file-name "debianutils" version)) (file-name (git-file-name "debianutils" version))
(sha256 (sha256
(base32 (base32
"1fmhzvymajack7kh8g4qjbwd9mq85z6rxl1psd1sm67s5695i9rc")))) "18ypb7fivch53wwrdf73yhf1fhkwn9kvw1kfdc1m450241d6191w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases

View file

@ -536,6 +536,31 @@ the position of the variable and allows you to modify its value.")
;; by GPLv3 or later. ;; by GPLv3 or later.
(license (list license:lgpl3+ license:gpl3+)))) (license (list license:lgpl3+ license:gpl3+))))
(define-public remake
(package (inherit gnu-make)
(name "remake")
(version "4.3-1.5")
(source (origin
(method url-fetch)
(uri (let ((upstream-version
(match (string-split version #\-)
((ver sub) (string-append ver "%2Bdbg-" sub)))))
(string-append "mirror://sourceforge/bashdb/"
"remake/" upstream-version "/"
"remake-" upstream-version ".tar.gz")))
(file-name (string-append "remake-" version ".tar.gz"))
(sha256
(base32
"0xlx2485y0israv2pfghmv74lxcv9i5y65agy69mif76yc4vfvif"))
(patches (search-patches "remake-impure-dirs.patch"))))
(inputs
`(("readline" ,readline)
,@(package-inputs gnu-make)))
(home-page "http://bashdb.sourceforge.net/remake/")
(description "Remake is an enhanced version of GNU Make that adds improved
error reporting, better tracing, profiling, and a debugger.")
(license license:gpl3+)))
(define-public rr (define-public rr
(package (package
(name "rr") (name "rr")

View file

@ -205,14 +205,14 @@ 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 "1.10.0") (version "1.12.0")
(source (source
(origin (origin
(method url-fetch/zipbomb) (method url-fetch/zipbomb)
(uri (string-append "https://grammalecte.net/grammalecte/zip/" (uri (string-append "https://grammalecte.net/grammalecte/zip/"
"Grammalecte-fr-v" version ".zip")) "Grammalecte-fr-v" version ".zip"))
(sha256 (sha256
(base32 "0lyngnvg995qdm9bhqj8vd8aywpcdqmzv3j4j77wxhsfa9k0pz08")))) (base32 "1aifa7rj8zyxgk5cgmlgcws2hip7a7y6sr7kddjdnpfgdgy4jjgh"))))
(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")

View file

@ -27,7 +27,7 @@
(define-public xxhash (define-public xxhash
(package (package
(name "xxhash") (name "xxhash")
(version "0.7.4") (version "0.8.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -36,7 +36,7 @@
(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 "08j7wxshhzpyrnyilfnvhyv5ycm0yv5m7jf6q4kxcd7j4dcbhmpb")))) (base32 "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags `(#:make-flags

View file

@ -12,7 +12,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Leo Famulari <leo@famulari.name> ;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com> ;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com>
@ -520,7 +520,7 @@ a card with a smaller capacity than stated.")
(define-public python-parted (define-public python-parted
(package (package
(name "python-parted") (name "python-parted")
(version "3.11.2") (version "3.11.6")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -529,7 +529,7 @@ a card with a smaller capacity than stated.")
(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 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn")))) (base32 "1xgrqhvn44vr3676j5sy2x3xfv2dzf7vncg25cmrsmkbd49x3z5j"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -555,9 +555,6 @@ a card with a smaller capacity than stated.")
(description "This package provides @code{parted} bindings for Python.") (description "This package provides @code{parted} bindings for Python.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public python2-parted
(package-with-python2 python-parted))
(define-public duperemove (define-public duperemove
(package (package
(name "duperemove") (name "duperemove")
@ -692,7 +689,7 @@ passphrases.")
(define-public ndctl (define-public ndctl
(package (package
(name "ndctl") (name "ndctl")
(version "68") (version "69")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -701,7 +698,7 @@ passphrases.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0xmim7z4qp6x2ggndnbwd940c73pa1qlf3hxyn3qh5pyr69nh9y8")))) "1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("asciidoc" ,asciidoc) `(("asciidoc" ,asciidoc)
@ -793,7 +790,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
(define-public libblockdev (define-public libblockdev
(package (package
(name "libblockdev") (name "libblockdev")
(version "2.23") (version "2.24")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/storaged-project/" (uri (string-append "https://github.com/storaged-project/"
@ -801,7 +798,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
version "-1/libblockdev-" version ".tar.gz")) version "-1/libblockdev-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15c7g2gbkahmy8c6677pvbvblan5h8jxcqqmn6nlvqwqynq2mkjm")))) "0wq7624pnprvfzrf39bq1cybd9lqwawbdg5bm0cchlpgvdq7q86w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -1005,3 +1002,42 @@ the popular but discontinued, X Win Commander. It aims to be the file manager
of choice for all light thinking Unix addicts!") of choice for all light thinking Unix addicts!")
(home-page "http://roland65.free.fr/xfe/") (home-page "http://roland65.free.fr/xfe/")
(license license:gpl2+))) (license license:gpl2+)))
(define-public hddtemp
(package
(name "hddtemp")
(version "0.3-beta15")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/hddtemp/hddtemp-"
version
".tar.bz2"))
(sha256
(base32
"0nzgg4nl8zm9023wp4dg007z6x3ir60rwbcapr9ks2al81c431b1"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append
"--with-db-path="
(assoc-ref %outputs "out")
"/share/hddtemp/hddtemp.db"))
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-db
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((target (string-append (assoc-ref outputs "out")
"/share/hddtemp/hddtemp.db")))
(mkdir-p (dirname target))
(copy-file (assoc-ref inputs "db") target)))))))
(inputs
`(("db" ,(origin
(method url-fetch)
(uri "mirror://savannah/hddtemp/hddtemp.db")
(sha256
(base32 "1fr6qgns6qv7cr40lic5yqwkkc7yjmmgx8j0z6d93csg3smzhhya"))))))
(home-page "https://savannah.nongnu.org/projects/hddtemp/")
(synopsis "Report the temperature of hard drives from S.M.A.R.T. information")
(description "@command{hddtemp} is a small utility that gives you the
temperature of your hard drive by reading S.M.A.R.T. informations (for drives
that support this feature).")
(license license:gpl2+)))

View file

@ -38,6 +38,7 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages certs)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
@ -45,10 +46,12 @@
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libedit) #:use-module (gnu packages libedit)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages libidn) #:use-module (gnu packages libidn)
@ -62,6 +65,7 @@
#: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 python-xyz)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages swig) #:use-module (gnu packages swig)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -73,10 +77,199 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system trivial)) #:use-module (guix build-system trivial))
(define-public ldns
(package
(name "ldns")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri
(string-append "https://www.nlnetlabs.nl/downloads/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a"))
(patches
(search-patches
;; To create make-flag vairables,
;; for splitting installation of drill and examples.
"ldns-drill-examples.patch"))))
(build-system gnu-build-system)
(outputs '("out" "drill" "examples" "pyldns"))
(arguments
`( ;; Tests require Tpkg.
;; https://tpkg.github.io/
#:tests? #f
#:configure-flags
(list
"--disable-static"
"--enable-gost-anyway"
"--enable-rrtype-ninfo"
"--enable-rrtype-rkey"
"--enable-rrtype-ta"
"--enable-rrtype-avc"
"--enable-rrtype-doa"
"--enable-rrtype-amtrelay"
"--with-drill"
"--with-examples"
"--with-pyldns"
;; Perl module DNS::LDNS not available.
;; https://github.com/erikoest/DNS-LDNS.git
;; "--with-p5-dns-ldns"
(string-append "--with-ssl="
(assoc-ref %build-inputs "openssl"))
(string-append "--with-ca-path="
(assoc-ref %build-inputs "nss-certs")
"/etc/ssl/certs"))
#:make-flags
(list
(string-append "drillbindir="
(assoc-ref %outputs "drill")
"/bin")
(string-append "drillmandir="
(assoc-ref %outputs "drill")
"/share/man")
(string-append "examplesbindir="
(assoc-ref %outputs "examples")
"/bin")
(string-append "examplesmandir="
(assoc-ref %outputs "examples")
"/share/man")
(string-append "python_site="
(assoc-ref %outputs "pyldns")
"/lib/python"
,(version-major+minor
(package-version python))
"/site-packages"))))
(native-inputs
`(("doxygen" ,doxygen)
("ksh" ,oksh)
("perl" ,perl)
("perl-devel-checklib" ,perl-devel-checklib)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)
("swig" ,swig)))
(inputs
`(("libpcap" ,libpcap)
("nss-certs" ,nss-certs)
("openssl" ,openssl)))
(synopsis "DNS library that facilitates DNS tool programming")
(description "LDNS aims to simplify DNS programming, it supports recent
RFCs like the DNSSEC documents, and allows developers to easily create
software conforming to current RFCs, and experimental software for current
Internet Drafts. A secondary benefit of using ldns is speed; ldns is written in
C it should be a lot faster than Perl.")
(home-page "https://nlnetlabs.nl/projects/ldns/about/")
(license license:bsd-3)))
(define-public dnssec-trigger
(package
(name "dnssec-trigger")
(version "0.17")
(source
(origin
(method url-fetch)
(uri
(string-append "https://www.nlnetlabs.nl/downloads/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "10928q406x9r66a090xl5kznzgyxpja88w4srwcv454hd351j9f0"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" "gui" "nm"))
(arguments
`(#:test-target "test"
#:configure-flags
(list
(string-append "--with-ssl="
(assoc-ref %build-inputs "openssl"))
"--with-hooks=networkmanager"
(string-append "--with-networkmanager-dispatch="
(assoc-ref %outputs "nm")
"/etc/NetworkManager/dispatcher.d")
(string-append "--with-xdg-autostart="
(assoc-ref %outputs "gui")
"/etc/xdg/autostart")
(string-append "--with-uidir="
(assoc-ref %outputs "gui")
"/share/dnssec-trigger")
(string-append "--with-python="
(assoc-ref %build-inputs "python")
"/bin/python")
(string-append "--with-unbound-control="
(assoc-ref %build-inputs "unbound")
"/sbin/unbound-control")
"--with-forward-zones-support")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-configure
(lambda _
(substitute* "configure"
(("appindicator-0.1")
"appindicator3-0.1"))
#t))
(add-before 'configure 'patch-makefile
(lambda _
(substitute* "Makefile.in"
(("/usr")
"$(prefix)")
(("/etc")
"$(prefix)/etc")
((".*gtk-update-icon-cache.*")
""))
#t))
(add-after 'install 'remove-systemd
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(delete-file-recursively
(string-append out "/lib/systemd"))
#t)))
(add-after 'remove-systemd 'move-gui
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(gui (assoc-ref outputs "gui")))
(mkdir-p (string-append gui "/bin"))
(mkdir-p (string-append gui "/share"))
(rename-file
(string-append out "/bin")
(string-append gui "/bin"))
(rename-file
(string-append out "/share/icons")
(string-append gui "/share/icons"))
#t)))
(add-after 'move-gui 'move-nm
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(nm (assoc-ref outputs "nm")))
(mkdir-p (string-append nm "/libexec"))
(rename-file
(string-append out "/libexec")
(string-append nm "/libexec"))
#t))))))
(native-inputs
`(("cmocka" ,cmocka)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(inputs
`(("gtk+-2" ,gtk+-2)
("ldns" ,ldns)
("libappindicator" ,libappindicator)
("openssl" ,openssl)
("unbound" ,unbound)))
(synopsis "DNSSEC protection for the DNS traffic")
(description "DNSSEC-Trigger enables your computer to use DNSSEC protection
for the DNS traffic. It relies on the Unbound DNS resolver running locally on
your system, which performs DNSSEC validation. It reconfigures Unbound in such
a way that it will signal it to to use the DHCP obtained forwarders if possible,
fallback to doing its own AUTH queries if that fails, and if that fails it will
prompt the user with the option to go with insecure DNS only.")
(home-page "https://www.nlnetlabs.nl/projects/dnssec-trigger/about/")
(license license:bsd-3)))
(define-public dnsmasq (define-public dnsmasq
(package (package
(name "dnsmasq") (name "dnsmasq")
@ -119,7 +312,8 @@ 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.16.5") ;; When updating, check whether isc-dhcp's bundled copy should be as well.
(version "9.16.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -127,7 +321,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz")) "/bind-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0xf07mmd0vi91jd15z8d3hhjva8v27l4ip4l8yzah4gg3zjv6y33")))) "1jvi6ms51vyrhpflx05xlb7gblyd59zsyj28b8s3pl3xnkrv0rxm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -609,14 +803,14 @@ Extensions} (DNSSEC).")
(define-public knot (define-public knot
(package (package
(name "knot") (name "knot")
(version "2.9.5") (version "2.9.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/" (uri (string-append "https://secure.nic.cz/files/knot-dns/"
"knot-" version ".tar.xz")) "knot-" version ".tar.xz"))
(sha256 (sha256
(base32 "0xmzmhd2m9rb24clrrd9k058harsq67nyjplpbyxvy1g46xah28i")) (base32 "1rxjjisr6rz1wa4279ghvj5zzhgyjhncmb9dkzqm8nw2qs1jhx5z"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View file

@ -50,9 +50,9 @@
(define %docker-version "19.03.12") (define %docker-version "19.03.12")
(define-public python-docker-py (define-public python-docker
(package (package
(name "python-docker-py") (name "python-docker")
(version "3.7.3") (version "3.7.3")
(source (source
(origin (origin
@ -116,7 +116,7 @@ client.")
(inputs (inputs
`(("python-cached-property" `(("python-cached-property"
,python-cached-property) ,python-cached-property)
("python-docker-py" ,python-docker-py) ("python-docker" ,python-docker)
("python-dockerpty" ,python-dockerpty) ("python-dockerpty" ,python-dockerpty)
("python-docopt" ,python-docopt) ("python-docopt" ,python-docopt)
("python-jsonschema" ,python-jsonschema) ("python-jsonschema" ,python-jsonschema)

View file

@ -5,10 +5,11 @@
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,32 +33,84 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages graphviz) #:use-module (gnu packages graphviz)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages xml)) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public latex2html
(package
(name "latex2html")
(version "2020.2")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/latex2html/latex2html.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-configure
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "configure"
(("/usr/local")
(assoc-ref outputs "out"))
(("\\$\\{CONFIG_SHELL-/bin/sh\\}")
(which "bash")))
#t))
(replace 'configure
(lambda _
(invoke "./configure")
#t))
(add-after 'configure 'patch-cfgcache
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "cfgcache.pm"
(("/usr/local")
(assoc-ref outputs "out")))
#t)))))
(inputs
`(("perl" ,perl)))
(synopsis "LaTeX documents to HTML")
(description "LaTeX2HTML is a utility that converts LaTeX documents to web
pages in HTML.")
(home-page "https://www.latex2html.org/")
(license gpl2+)))
(define-public asciidoc (define-public asciidoc
(package (package
(name "asciidoc") (name "asciidoc")
(version "8.6.10") (version "8.6.10")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/asciidoc/asciidoc/" (uri (git-reference
"archive/" version ".tar.gz")) (url "https://github.com/asciidoc/asciidoc")
(file-name (string-append name "-" version ".tar.gz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly")))) "1hrqkgjmp1gq3f9rkbr8l0y62fzvwb9n8ys35s25bg2ld04y4g4y"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no 'check' target `(#:tests? #f ; no 'check' target
@ -258,3 +311,34 @@ sort, and search the document catalog. It will also be able to communicate
with catalog servers on the Net to search for documents which are not on the with catalog servers on the Net to search for documents which are not on the
local system.") local system.")
(license lgpl2.1+))) (license lgpl2.1+)))
(define-public zeal
(package
(name "zeal")
(version "0.6.1")
(home-page "https://github.com/zealdocs/zeal")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "05qcjpibakv4ibhxgl5ajbkby3w7bkxsv3nfv2a0kppi1z0f8n8v"))))
(build-system qt-build-system)
(arguments `(#:tests? #f)) ; no tests
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("pkg-config" ,pkg-config)))
(inputs
`(("libarchive" ,libarchive)
("sqlite" ,sqlite)
("qtbase" ,qtbase)
("qtwebkit" ,qtwebkit)
("qtx11extras" ,qtx11extras)
("xcb-util-keyms" ,xcb-util-keysyms)))
(synopsis "Offline documentation browser inspired by Dash")
(description "Zeal is a simple offline documentation browser
inspired by Dash.")
(license gpl3+)))

View file

@ -36,7 +36,7 @@
(define-public dunst (define-public dunst
(package (package
(name "dunst") (name "dunst")
(version "1.4.1") (version "1.5.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -45,7 +45,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2")))) "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no check target '(#:tests? #f ; no check target

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -75,7 +76,7 @@ It can read and write LCF and XML files.")
(define-public easyrpg-player (define-public easyrpg-player
(package (package
(name "easyrpg-player") (name "easyrpg-player")
(version "0.6.1") (version "0.6.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -83,7 +84,7 @@ It can read and write LCF and XML files.")
"/easyrpg-player-" version ".tar.gz")) "/easyrpg-player-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1x81d1952w6vb939155bvs5p3shgsncxy305770izpp4pva1a8z0")))) "1bai0mxjw1qvl2vcwgssycbyn0crk0b5l69ld9rawcs2nczb44s5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View file

@ -2,7 +2,7 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017, 2019 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2017, 2019, 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@ -28,7 +28,6 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)

View file

@ -8,6 +8,7 @@
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Prafulla Giri <pratheblackdiamond@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -274,7 +275,7 @@ easy.")
(define-public snap (define-public snap
(package (package
(name "snap") (name "snap")
(version "6.0.0") (version "6.1.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -283,7 +284,7 @@ easy.")
(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 "1j5hcnms12hpnl2ba7haf00l08rkpb5wpfsgax07p838q5dc7cam")))) (base32 "0qvnm5jg2hlf32say531m8nmp3aib93mqnllw1g289s58fzk5li6"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -486,7 +487,7 @@ specialized device.")
Comment[ca]=Conjunt de jocs educatius per a xiquets~@ Comment[ca]=Conjunt de jocs educatius per a xiquets~@
Comment[es]=Conjunto de juegos educativos para niños~@ Comment[es]=Conjunto de juegos educativos para niños~@
Comment[de]=Sammlung mit lehrreichen Spielen für kleine Kinder~@ Comment[de]=Sammlung mit lehrreichen Spielen für kleine Kinder~@
Exec=~a/bin/childsplay.py~@ Exec=~a/bin/childsplay~@
Terminal=false~@ Terminal=false~@
Icon=logo_cp.svg~@ Icon=logo_cp.svg~@
Type=Application~@ Type=Application~@
@ -612,14 +613,14 @@ Portuguese, Spanish and Italian.")
(define-public fet (define-public fet
(package (package
(name "fet") (name "fet")
(version "5.45.1") (version "5.46.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/" (uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
"fet-" version ".tar.bz2")) "fet-" version ".tar.bz2"))
(sha256 (sha256
(base32 "1pg47jk6fw46fr7m32l1ypm1zyjfz1ik5f333ynqqr705f1c0ij5")))) (base32 "1vcsm12lqf84mz9ppw2knjyv5ss2ws0dblbp418hll91dry7m49a"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -651,14 +652,14 @@ hours.")
(define-public klavaro (define-public klavaro
(package (package
(name "klavaro") (name "klavaro")
(version "3.10") (version "3.11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/klavaro/klavaro-" (uri (string-append "mirror://sourceforge/klavaro/klavaro-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95")))) (base32 "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
@ -758,6 +759,13 @@ adjust the level of difficulty.")
(ice-9 match)) (ice-9 match))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'disable-update-check
;; Don't phone home unasked to check for updates.
(lambda _
(substitute* "aqt/update.py"
(("requests\\.post")
"throw.an.exception.instead"))
#t))
(delete 'configure) ;no configure script (delete 'configure) ;no configure script
(add-after 'install 'wrap (add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)

View file

@ -186,8 +186,7 @@ as simple logic analyzer and/or oscilloscope hardware.")
(find-files input-dir "."))) (find-files input-dir ".")))
#t))))) #t)))))
(native-inputs (native-inputs
`(("check" ,check) `(("doxygen" ,doxygen)
("doxygen" ,doxygen)
("graphviz" ,graphviz) ("graphviz" ,graphviz)
("sigrok-firmware-fx2lafw" ,sigrok-firmware-fx2lafw) ("sigrok-firmware-fx2lafw" ,sigrok-firmware-fx2lafw)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))

View file

@ -27,8 +27,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages erlang) #:use-module (gnu packages erlang))
#:use-module (gnu packages version-control))
(define-public elixir (define-public elixir
(package (package
@ -100,8 +99,7 @@
#t)) #t))
(delete 'configure)))) (delete 'configure))))
(inputs (inputs
`(("erlang" ,erlang) `(("erlang" ,erlang)))
("git" ,git)))
(home-page "https://elixir-lang.org/") (home-page "https://elixir-lang.org/")
(synopsis "Elixir programming language") (synopsis "Elixir programming language")
(description "Elixir is a dynamic, functional language used to build (description "Elixir is a dynamic, functional language used to build

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019 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, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 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>
@ -21,6 +21,7 @@
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at> ;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org> ;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -61,6 +62,7 @@
#:use-module (gnu packages imagemagick) #:use-module (gnu packages imagemagick)
#:use-module (gnu packages linux) ; alsa-lib #:use-module (gnu packages linux) ; alsa-lib
#:use-module (gnu packages mail) ; for mailutils #:use-module (gnu packages mail) ; for mailutils
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
@ -75,16 +77,17 @@
(define-public emacs (define-public emacs
(package (package
(name "emacs") (name "emacs")
(version "26.3") (version "27.1")
(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
"119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d")) "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a"))
(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-ignore-empty-xim-styles.patch"
"emacs-source-date-epoch.patch")) "emacs-source-date-epoch.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -94,15 +97,7 @@
(for-each delete-file (for-each delete-file
(append (find-files "." "\\.elc$") (append (find-files "." "\\.elc$")
(find-files "." "loaddefs\\.el$") (find-files "." "loaddefs\\.el$")
;; This is the only "autoloads" file that (find-files "eshell" "^esh-groups\\.el$")))
;; does not have "*loaddefs.el" name.
;; TODO: Next time changing this package,
;; replace the following with a call to
;; `find-files', so that `delete-file'
;; wouldn't error out when the file is
;; missing, making the entire snippet field
;; reusable as-is for `emacs-next' below.
'("eshell/esh-groups.el")))
;; Make sure Tramp looks for binaries in the right places on ;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns ;; remote Guix System machines, where 'getconf PATH' returns
@ -129,6 +124,7 @@
(arguments (arguments
`(#:tests? #f ; no check target `(#:tests? #f ; no check target
#:configure-flags (list "--with-modules" #:configure-flags (list "--with-modules"
"--with-cairo"
"--disable-build-details") "--disable-build-details")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
@ -155,7 +151,7 @@
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(lisp-dir (string-append out "/share/emacs/site-lisp")) (lisp-dir (string-append out "/share/emacs/site-lisp"))
(emacs (string-append out "/bin/emacs"))) (emacs (string-append out "/bin/emacs")))
;; This is duplicated from emacs-utils to prevent coupling. ;; This is duplicated from emacs-utils to prevent coupling.
(define* (emacs-byte-compile-directory dir) (define* (emacs-byte-compile-directory dir)
@ -179,7 +175,42 @@
;; which leads to conflicts. ;; which leads to conflicts.
(delete-file (string-append lisp-dir "/subdirs.el")) (delete-file (string-append lisp-dir "/subdirs.el"))
;; Byte compile the site-start files. ;; Byte compile the site-start files.
(emacs-byte-compile-directory lisp-dir))))))) (emacs-byte-compile-directory lisp-dir))
#t))
(add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
;; restore the dump file that Emacs installs somewhere in
;; libexec/ to its original state
(lambda* (#:key outputs target #:allow-other-keys)
(let* ((libexec (string-append (assoc-ref outputs "out")
"/libexec"))
;; each of these find-files should return one file
(pdmp (find-files libexec "^emacs\\.pdmp$"))
(pdmp-real (find-files libexec
"^\\.emacs\\.pdmp-real$")))
(for-each (lambda (wrapper real)
(delete-file wrapper)
(rename-file real wrapper))
pdmp pdmp-real))
#t))
(add-after 'glib-or-gtk-wrap 'strip-double-wrap
(lambda* (#:key outputs #:allow-other-keys)
;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
;; twice. This also fixes a minor issue, where WMs would not be
;; able to track emacs back to emacs.desktop.
(with-directory-excursion (assoc-ref outputs "out")
(copy-file (string-append
"bin/emacs-"
,(version-major+minor (package-version emacs)))
"bin/emacs")
#t)))
(add-before 'reset-gzip-timestamps 'make-compressed-files-writable
;; The 'reset-gzip-timestamps phase will throw a permission error
;; if gzip files aren't writable then. This phase is needed when
;; building from a git checkout.
(lambda _
(for-each make-file-writable
(find-files %output ".*\\.t?gz$"))
#t)))))
(inputs (inputs
`(("gnutls" ,gnutls) `(("gnutls" ,gnutls)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
@ -191,12 +222,16 @@
;; TODO: Add the optional dependencies. ;; TODO: Add the optional dependencies.
("libx11" ,libx11) ("libx11" ,libx11)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("cairo" ,cairo)
("pango" ,pango)
("harfbuzz" ,harfbuzz)
("libxft" ,libxft) ("libxft" ,libxft)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("giflib" ,giflib) ("giflib" ,giflib)
("libjpeg" ,libjpeg-turbo) ("libjpeg" ,libjpeg-turbo)
("imagemagick" ,imagemagick)
("acl" ,acl) ("acl" ,acl)
("jansson" ,jansson)
("gmp" ,gmp)
;; When looking for libpng `configure' links with `-lpng -lz', so we ;; When looking for libpng `configure' links with `-lpng -lz', so we
;; must also provide zlib as an input. ;; must also provide zlib as an input.
@ -243,117 +278,57 @@ languages.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-next (define-public emacs-next
(let ((commit "c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c") (let ((commit "2ea34662c20f71d35dd52a5ed996542c7386b9cb")
(revision "0") (revision "0")
(emacs-version "27.0.91")) (emacs-version "28.0.50.1"))
(package (package/inherit emacs
(inherit emacs)
(name "emacs-next") (name "emacs-next")
(version (git-version emacs-version revision commit)) (version (git-version emacs-version revision commit))
(source (source
(origin (origin
(inherit (package-source emacs))
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://git.savannah.gnu.org/git/emacs.git") (url "https://git.savannah.gnu.org/git/emacs.git/")
(commit commit))) (commit commit)))
(sha256
(base32 "0mlrg2npy1r79laahkgzhxd1qassfcdz8qk1cpw7mqgf6y5x505h"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches (search-patches "emacs27-exec-path.patch" (sha256
"emacs-fix-scheme-indent-function.patch" (base32
"emacs-source-date-epoch.patch")) "0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
(modules (origin-modules (package-source emacs)))
;; TODO: once the snippet for `emacs' is changed to not fail when
;; eshell/esh-groups.el does not exist, replace this snippet with
;; (snippet (origin-snippet (package-source emacs))))).
(snippet
'(with-directory-excursion "lisp"
;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns
;; something bogus.
(substitute* "net/tramp-sh.el"
;; Patch the line after "(defcustom tramp-remote-path".
(("\\(tramp-default-remote-path")
(format #f "(tramp-default-remote-path ~s ~s ~s ~s "
"~/.guix-profile/bin" "~/.guix-profile/sbin"
"/run/current-system/profile/bin"
"/run/current-system/profile/sbin")))
;; Make sure Man looks for C header files in the right
;; places.
(substitute* "man.el"
(("\"/usr/local/include\"" line)
(string-join
(list line
"\"~/.guix-profile/include\""
"\"/var/guix/profiles/system/profile/include\"")
" ")))
#t))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments emacs) (substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags)
`(cons* "--with-harfbuzz" ,flags))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
;; The 'reset-gzip-timestamps phase will throw a (replace 'strip-double-wrap
;; permission error if gzip files aren't writable then (lambda* (#:key outputs #:allow-other-keys)
(add-before ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
'reset-gzip-timestamps ;; twice. This also fixes a minor issue, where WMs would not be
'make-compressed-files-writable ;; able to track emacs back to emacs.desktop.
(lambda _ (with-directory-excursion (assoc-ref outputs "out")
(for-each make-file-writable (copy-file (string-append
(find-files %output ".*\\.t?gz$")) "bin/emacs-"
#t)) ,(version-major+minor+point (package-version emacs-next)))
;; restore the dump file that Emacs installs somewhere in "bin/emacs")
;; libexec/ to its original state
(add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
(lambda* (#:key outputs target #:allow-other-keys)
(let* ((libexec (string-append (assoc-ref outputs "out")
"/libexec"))
;; each of these find-files should return one file
(pdmp (find-files libexec "^emacs\\.pdmp$"))
(pdmp-real (find-files libexec
"^\\.emacs\\.pdmp-real$")))
(for-each (lambda (wrapper real)
(delete-file wrapper)
(rename-file real wrapper))
pdmp pdmp-real)
#t))))))) #t)))))))
(inputs
`(("jansson" ,jansson)
("harfbuzz" ,harfbuzz)
;; Emacs no longer uses ImageMagick by default
;; https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-27.0.91&id=c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c#n102
,@(alist-delete "imagemagick" (package-inputs emacs))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) ; needed when building from trunk `(("autoconf" ,autoconf)
,@(package-native-inputs emacs))) ,@(package-native-inputs emacs))))))
;; TODO: consider changing `emacs' to use a more robust way of
;; specifying version for "EMACSLOADPATH", so as to avoid having to
;; duplicate native-search-paths here.
(native-search-paths
(list (search-path-specification
(variable "EMACSLOADPATH")
;; The versioned entry is for the Emacs' builtin libraries.
(files
(list "share/emacs/site-lisp"
(string-append "share/emacs/" emacs-version "/lisp"))))
(search-path-specification
(variable "INFOPATH")
(files '("share/info"))))))))
(define-public emacs-minimal (define-public emacs-minimal
;; This is the version that you should use as an input to packages that just ;; This is the version that you should use as an input to packages that just
;; need to byte-compile .el files. ;; need to byte-compile .el files.
(package (inherit emacs) (package/inherit emacs
(name "emacs-minimal") (name "emacs-minimal")
(synopsis "The extensible text editor (used only for byte-compilation)") (synopsis "The extensible text editor (used only for byte-compilation)")
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(substitute-keyword-arguments (package-arguments emacs) (substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags ''()) ((#:configure-flags flags ''())
`(list "--with-gnutls=no" "--disable-build-details")))) `(list "--with-gnutls=no" "--disable-build-details"))
((#:phases phases)
`(modify-phases ,phases
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))
(inputs (inputs
`(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el")) `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
("ncurses" ,ncurses))) ("ncurses" ,ncurses)))
@ -361,8 +336,7 @@ languages.")
`(("pkg-config" ,pkg-config))))) `(("pkg-config" ,pkg-config)))))
(define-public emacs-xwidgets (define-public emacs-xwidgets
(package (package/inherit emacs
(inherit emacs)
(name "emacs-xwidgets") (name "emacs-xwidgets")
(synopsis "The extensible, customizable, self-documenting text (synopsis "The extensible, customizable, self-documenting text
editor (with xwidgets support)") editor (with xwidgets support)")
@ -370,14 +344,18 @@ editor (with xwidgets support)")
(arguments (arguments
(substitute-keyword-arguments (package-arguments emacs) (substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags ''()) ((#:configure-flags flags ''())
`(cons "--with-xwidgets" ,flags)))) `(cons "--with-xwidgets" ,flags))
((#:phases phases)
`(modify-phases ,phases
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))
(inputs (inputs
`(("webkitgtk" ,webkitgtk) `(("webkitgtk" ,webkitgtk)
("libxcomposite" ,libxcomposite) ("libxcomposite" ,libxcomposite)
,@(package-inputs emacs))))) ,@(package-inputs emacs)))))
(define-public emacs-no-x (define-public emacs-no-x
(package (inherit emacs) (package/inherit emacs
(name "emacs-no-x") (name "emacs-no-x")
(synopsis "The extensible, customizable, self-documenting text (synopsis "The extensible, customizable, self-documenting text
editor (console only)") editor (console only)")
@ -386,13 +364,21 @@ editor (console only)")
(package-inputs emacs) (package-inputs emacs)
'("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg" '("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
"imagemagick" "libpng" "librsvg" "libxpm" "libice" "imagemagick" "libpng" "librsvg" "libxpm" "libice"
"libsm" "libsm" "cairo" "pango" "harfbuzz"
;; These depend on libx11, so remove them as well. ;; These depend on libx11, so remove them as well.
"libotf" "m17n-lib" "dbus"))))) "libotf" "m17n-lib" "dbus")))
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags ''())
`(delete "--with-cairo" ,flags))
((#:phases phases)
`(modify-phases ,phases
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))))
(define-public emacs-no-x-toolkit (define-public emacs-no-x-toolkit
(package (inherit emacs) (package/inherit emacs
(name "emacs-no-x-toolkit") (name "emacs-no-x-toolkit")
(synopsis "The extensible, customizable, self-documenting text (synopsis "The extensible, customizable, self-documenting text
editor (without an X toolkit)" ) editor (without an X toolkit)" )
@ -400,13 +386,16 @@ editor (without an X toolkit)" )
(inputs (append `(("inotify-tools" ,inotify-tools)) (inputs (append `(("inotify-tools" ,inotify-tools))
(alist-delete "gtk+" (package-inputs emacs)))) (alist-delete "gtk+" (package-inputs emacs))))
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments emacs) (substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags cf) ((#:configure-flags flags ''())
`(cons "--with-x-toolkit=no" ,cf))))))) `(cons "--with-x-toolkit=no" ,flags))
((#:phases phases)
`(modify-phases ,phases
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))))
(define-public emacs-wide-int (define-public emacs-wide-int
(package (package/inherit emacs
(inherit emacs)
(name "emacs-wide-int") (name "emacs-wide-int")
(synopsis "The extensible, customizable, self-documenting text (synopsis "The extensible, customizable, self-documenting text
editor (with wide ints)" ) editor (with wide ints)" )
@ -418,7 +407,7 @@ editor (with wide ints)" )
(define-public guile-emacs (define-public guile-emacs
(let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b") (let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")
(revision "0")) (revision "0"))
(package (inherit emacs) (package/inherit emacs
(name "guile-emacs") (name "guile-emacs")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
(source (origin (source (origin
@ -442,6 +431,8 @@ editor (with wide ints)" )
;; Tests aren't passing for now. ;; Tests aren't passing for now.
#:tests? #f #:tests? #f
,@(package-arguments emacs)) ,@(package-arguments emacs))
((#:configure-flags flags ''())
`(delete "--with-cairo" ,flags))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
(add-after 'unpack 'autogen (add-after 'unpack 'autogen
@ -450,7 +441,9 @@ editor (with wide ints)" )
;; Build sometimes fails: deps/dispnew.d: No such file or directory ;; Build sometimes fails: deps/dispnew.d: No such file or directory
(add-before 'build 'make-deps-dir (add-before 'build 'make-deps-dir
(lambda _ (lambda _
(invoke "mkdir" "-p" "src/deps")))))))))) (invoke "mkdir" "-p" "src/deps")))
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap))))))))
(define-public m17n-db (define-public m17n-db
(package (package

View file

@ -251,8 +251,7 @@ usable on embedded products.")
(origin-patches (package-source gcc-7)) (origin-patches (package-source gcc-7))
(search-patches "gcc-7-cross-environment-variables.patch"))))) (search-patches "gcc-7-cross-environment-variables.patch")))))
(native-inputs (native-inputs
`(("gcc@5" ,gcc-5) `(("flex" ,flex)
("flex" ,flex)
("isl" ,isl-0.18) ("isl" ,isl-0.18)
,@(alist-delete "isl" (package-native-inputs xgcc)))) ,@(alist-delete "isl" (package-native-inputs xgcc))))
(arguments (arguments
@ -1162,14 +1161,14 @@ SPI, I2C, JTAG.")
(define-public fc-host-tools (define-public fc-host-tools
(package (package
(name "fc-host-tools") (name "fc-host-tools")
(version "11") (version "13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "ftp://ftp.freecalypso.org/pub/GSM/" (uri (string-append "ftp://ftp.freecalypso.org/pub/GSM/"
"FreeCalypso/fc-host-tools-r" version ".tar.bz2")) "FreeCalypso/fc-host-tools-r" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0s87lp6gd8i8ivrdd7mnnalysr65035nambcm992rgla7sk76sj1")))) "0bpxz4y0z3hmlirzvfwq0k45yzn9fzgqs9r1fpkrhn48gr2zrpa8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; No tests exist. `(#:tests? #f ; No tests exist.
@ -1283,6 +1282,12 @@ and displaying decoded target responses.
@item fcup-smsendmult: Send multiple short messages via SMS in one go @item fcup-smsendmult: Send multiple short messages via SMS in one go
@item fcup-smsendpdu: Send multiple short messages given in PDU format via SMS @item fcup-smsendpdu: Send multiple short messages given in PDU format via SMS
@item sms-pdu-decode: Decode PDU format messages @item sms-pdu-decode: Decode PDU format messages
@item fc-dspromdump: Dump DSP ROM.
@item pcm-sms-decode: Decode /pcm/SMS binary files read out of FFS maintained
by Pirelli DP-L10. Display the SMS in human-readable form.
@item srec-regions: Parse S-record (TI's *.m0), identify the set of
discontiguous regions into which this SREC image deposits bits, and list
these identified regions.
@end enumerate") @end enumerate")
(home-page "https://www.freecalypso.org/") (home-page "https://www.freecalypso.org/")
(license license:public-domain))) (license license:public-domain)))

View file

@ -5,7 +5,7 @@
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu> ;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
@ -279,6 +279,64 @@ SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with
older games.") older games.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public qtmips
(package
(name "qtmips")
(version "0.7.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cvut/QtMips")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1khvwgqz4h6q6mhbbq0yx43ajz8gx9wmwzs8784vmfrglndbxgax"))))
(build-system cmake-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(invoke "qmake"
(string-append "PREFIX=" (assoc-ref outputs "out"))
"qtmips.pro")))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(substitute* "tests/test.sh"
(("qtchooser.*") ""))
(substitute* '("tests/cpu_trap/test.sh"
"tests/registers/test.sh")
(("sub-qtmips_cli") "qtmips_cli"))
(if tests?
(invoke "tests/run-all.sh")
#t)))
(replace 'install
;; There is no install target.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(apps (string-append out "/share/applications"))
(icons (string-append out "/share/icons/hicolor")))
(install-file "qtmips_gui/qtmips_gui" bin)
(install-file "qtmips_cli/qtmips_cli" bin)
(install-file "data/qtmips.desktop" apps)
(install-file "data/icons/qtmips_gui.svg"
(string-append icons "/scalable/apps"))
(install-file "data/icons/qtmips_gui.png"
(string-append icons "/48x48/apps"))
#t))))
#:tests? #f)) ; test suite wants mips toolchain
(inputs
`(("elfutils" ,elfutils)
("qtbase" ,qtbase)))
(home-page "https://github.com/cvut/QtMips")
(synopsis "MIPS CPU emulator")
(description "This package contains a MIPS CPU emulator. The simulator
accepts ELF statically linked executables compiled for 32-bit big-endian
MIPS target, targeting mips-linux-gnu or mips-elf.")
(license license:gpl2+))) ; License file says GPL3
(define-public emulation-station (define-public emulation-station
;; No release for a long time, new commits fix build issues ;; No release for a long time, new commits fix build issues
(let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0") (let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0")
@ -479,7 +537,7 @@ The following systems are supported:
(define-public mgba (define-public mgba
(package (package
(name "mgba") (name "mgba")
(version "0.8.2") (version "0.8.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -488,7 +546,7 @@ The following systems are supported:
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0dlwhn3hrpaqnl5hjs53y8j2i16idxrg3gy688gcwrc9z1a6bkn2")) (base32 "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Make sure we don't use the bundled software. ;; Make sure we don't use the bundled software.
@ -535,7 +593,7 @@ and Game Boy Color games.")
(define-public sameboy (define-public sameboy
(package (package
(name "sameboy") (name "sameboy")
(version "0.13.3") (version "0.13.6")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -544,7 +602,7 @@ and Game Boy Color games.")
(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 "1mv5a7p6plz0359l3z9g232rgaq2h3yby5949ps0s88cxj94w9qm")))) (base32 "04w8lybi7ssnax37ka4qw7pmcm7cgnmk90p9m73zbyp5chgpqqzc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("rgbds" ,rgbds) `(("rgbds" ,rgbds)
@ -1339,7 +1397,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.222") (version "0.224")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1348,7 +1406,7 @@ play them on systems for which they were never designed!")
(commit (apply string-append "mame" (string-split version #\.))))) (commit (apply string-append "mame" (string-split version #\.)))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1bfnwfxsnmza4s77ca0cyx4b290dwadkbbc2lyd7xa0yqrh7vvlx")) (base32 "0dpg4hz2f1wlp0rmk5c5xq57fy0sblh97z3l66p814wkgzap4bhx"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove bundled libraries. ;; Remove bundled libraries.

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