me
/
guix
Archived
1
0
Fork 0

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

master
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 'package 'scheme-indent-function 0))
(eval . (put 'package/inherit 'scheme-indent-function 1))
(eval . (put 'origin 'scheme-indent-function 0))
(eval . (put 'build-system 'scheme-indent-function 0))
(eval . (put 'bag 'scheme-indent-function 0))

View File

@ -101,6 +101,9 @@
(name "ngz"))
("CEF4 CB91 4856 BA38 0A20 A7E2 3008 88CB 39C6 3817"
(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"
"C699 ED09 E51B CE89 FD1D A078 AAC7 E891 896B 568A"
(name "pgarlick"))

View File

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

View File

@ -71,7 +71,7 @@
(variables rest ...))))))
(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-version "0")
(bug-report-address "bug-guix@gnu.org")
@ -133,11 +133,7 @@
(define %bzip2
#+(and bzip2 (file-append bzip2 "/bin/bzip2")))
(define %xz
#+(and xz (file-append xz "/bin/xz")))
(define %libz
#+(and zlib
(file-append zlib "/lib/libz")))))))
#+(and xz (file-append xz "/bin/xz")))))))
;;;

View File

@ -1,7 +1,7 @@
#!/bin/sh
# 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>
#
# This file is part of GNU Guix.
@ -46,13 +46,6 @@ export PATH
GUIX="$abs_top_builddir/scripts/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
# 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.])
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.
GUILE_MODULE_AVAILABLE([have_guile_newt], [(newt)])
@ -159,10 +171,6 @@ AM_CONDITIONAL([ENABLE_INSTALLER],
dnl Make sure we have a full-fledged Guile.
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
dnl Decompressors, for use by the substituter and other modules.
@ -186,11 +194,6 @@ AC_ARG_WITH([nix-prefix],
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],
[AS_HELP_STRING([--with-nixpkgs=DIR],
[search for Nixpkgs in DIR (for testing purposes only)])],
@ -245,27 +248,6 @@ esac
AC_SUBST([LIBGCRYPT_PREFIX])
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.
GUIX_CHECK_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)))
((('span _ lst ...) . rest) ;for <span class="roman">
(loop (append lst rest) strings))
((('var name) . rest) ;for @var{name} within @lisp
(loop rest (cons name strings))) ;XXX: losing formatting
(something
(pk 'unsupported-code-snippet something)
(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
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}
(@pxref{Invoking guix git authenticate}):
@c The commit and fingerprint below must match those of the channel
@c introduction in '%default-channels'.
@example
git fetch origin keyring:keyring
guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
@end example

View File

@ -64,6 +64,7 @@ Translation Project}.
* Packaging:: Packaging tutorials
* System Configuration:: Customizing the GNU System
* Advanced package management:: Power to the users!
* Environment management:: Control environment
* Acknowledgments:: Thanks!
* 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
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 *********************************************************************
@node Acknowledgments
@chapter Acknowledgments

View File

@ -144,6 +144,7 @@ Project}.
* Introduction:: What is Guix about?
* Installation:: Installing Guix.
* System Installation:: Installing the whole operating system.
* Getting Started:: Your first steps.
* Package Management:: Package installation, upgrade, etc.
* Development:: Guix-aided software development.
* Programming Interface:: Using Guix in Scheme.
@ -196,6 +197,8 @@ System Installation
* Installing Guix in a VM:: Guix System playground.
* Building the Installation Image:: How this comes to be.
Getting Started
Manual Installation
* 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
./guix-install.sh
@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
Installing goes along these lines:
@ -778,12 +784,13 @@ Guile,, gnutls-guile, GnuTLS-Guile});
@item
@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
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
@c FIXME: Specify a version number once a release has been made.
@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August
2017 or later;
@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}.
@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
hook}@footnote{This feature is available only when
@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH} is
present.}. When that
feature is enabled, a list of user-specified build machines is read from
@file{/etc/guix/machines.scm}; every time a build is requested, for
instance via @code{guix build}, the daemon attempts to offload it to one
of the machines that satisfy the constraints of the derivation, in
particular its system type---e.g., @file{x86_64-linux}. Missing
prerequisites for the build are 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.
present.}. When that feature is enabled, a list of user-specified build
machines is read from @file{/etc/guix/machines.scm}; every time a build
is requested, for instance via @code{guix build}, the daemon attempts to
offload it to one of the machines that satisfy the constraints of the
derivation, in particular its system types---e.g., @code{x86_64-linux}.
A single machine can have multiple system types, either because its
architecture natively supports it, via emulation (@pxref{Transparent
Emulation with QEMU}), or both. Missing prerequisites for the build are
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:
@lisp
(list (build-machine
(name "eightysix.example.org")
(system "x86_64-linux")
(systems (list "x86_64-linux" "i686-linux"))
(host-key "ssh-ed25519 AAAAC3Nza@dots{}")
(user "bob")
(speed 2.)) ;incredibly fast!
(build-machine
(name "armeight.example.org")
(system "aarch64-linux")
(systems (list "aarch64-linux"))
(host-key "ssh-rsa AAAAB3Nza@dots{}")
(user "alice")
(private-key
@ -1074,8 +1083,8 @@ The @file{/etc/guix/machines.scm} file typically looks like this:
@noindent
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}
architecture.
the @code{x86_64} and @code{i686} architectures and one for the
@code{aarch64} architecture.
In fact, this file is---not surprisingly!---a Scheme file that is
evaluated when the @code{offload} hook is started. Its return value
@ -1095,8 +1104,9 @@ builds. The important fields are:
@item name
The host name of the remote machine.
@item system
The system type of the remote machine---e.g., @code{"x86_64-linux"}.
@item systems
The system types the remote machine supports---e.g., @code{(list
"x86_64-linux" "i686-linux")}.
@item user
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.
@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!
@ -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
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 *********************************************************************
@node Package Management
@chapter Package Management
@ -2598,6 +2813,10 @@ guix install emacs-guix
@node 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
own directory---something that resembles
@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!"))))
@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
associated with a commit or tag: it describes changes made in this
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:
@example
xgettext -o news.po -l scheme -ken etc/news.scm
xgettext -o news.po -l scheme -ken etc/news.txt
@end example
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
@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
directory computed by @var{gexp}. @var{options}
is a list of additional arguments to pass to @code{gexp->derivation}.
directory computed by @var{gexp}. When @var{local-build?} is true (the
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}.
@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.
@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
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.
@item @code{packages} (default: @code{%base-packages})
The set of packages installed in the global profile, which is accessible
at @file{/run/current-system/profile}.
A list of packages to be installed in the global profile, which is accessible
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
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})
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{'()})
This is a list of @code{<file-system>} or @code{<mapped-device>} objects
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 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
variables.
@ -12219,6 +12472,29 @@ and unmount user-space FUSE file systems. This requires the
@code{fuse.ko} kernel module to be loaded.
@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
@subsection Btrfs file system
@ -12926,6 +13202,7 @@ declaration.
* Scheduled Job Execution:: The mcron service.
* Log Rotation:: The rottlog service.
* Networking Services:: Network setup, SSH daemon, etc.
* Unattended Upgrades:: Automated system upgrades.
* X Window:: Graphical display.
* Printing Services:: Local and remote printer support.
* 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 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
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
@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 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
@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
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
Additional extensions are loaded from packages listed in
@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}.
@deffn {Scheme Variable} tlp-service-type
The service type for the TLP tool. Its value should be a valid
TLP configuration (see below). To use the default settings, simply
write:
The service type for the TLP tool. The default settings are optimised
for battery life on most systems, but you can tweak them to your heart's
content by adding a valid @code{tlp-configuration}:
@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 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,
@samp{boolean foo} indicates that the @code{foo} parameter
should be specified as a boolean. Types starting with
@ -24852,7 +25281,7 @@ Maximum number of backup files to keep.
Defaults to @samp{3}
@end deftypevr
@node Transparent Emulation with QEMU
@subsubheading Transparent Emulation with QEMU
@cindex emulation
@ -24943,6 +25372,7 @@ Return the name of @var{platform}---a string such as @code{"arm"}.
@cindex @code{hurd}
@cindex the Hurd
@cindex childhurd
Service @code{hurd-vm} provides support for running GNU/Hurd in a
virtual machine (VM), a so-called ``Childhurd''. The virtual machine is
@ -25015,15 +25445,41 @@ By default, it produces
@lisp
'("--device" "rtl8139,netdev=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:<vnc-port>-:5900")
@end lisp
with forwarded ports
@example
<ssh-port>: @code{(+ 11004 (* 1000 @var{ID}))}
<ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))}
<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
@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 deftp
@ -25455,7 +25911,7 @@ When true, the daemon performs additional logging for debugging purposes.
@defvr {Scheme Variable} ganeti-luxid-service-type
@command{ganeti-luxid} is a daemon used to answer queries related to the
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.
It takes a @code{ganeti-luxid-configuration} object.
@ -27147,6 +27603,51 @@ parameters, can be done as follow:
@end lisp
@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
@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})
Enable or disable debug output.
@item @code{enable-iptables?} (default @code{#t})
Enable or disable the addition of iptables rules.
@end table
@end deftp
@ -27500,10 +28004,12 @@ Network access
@command{auditctl} from the @code{audit} package can be used in order
to add or remove events to be tracked (until the next reboot).
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
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
@ -27515,6 +28021,11 @@ This is the data type representing the configuration of auditd.
@item @code{audit} (default: @code{audit})
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 deftp
@ -27561,7 +28072,7 @@ The common way to create this file is as follows:
(app (string-append out "/bin/" ,name))
(Rbin (string-append (assoc-ref %build-inputs "r-min")
"/bin/Rscript")))
@dots{}
;; @dots{}
(mkdir-p (string-append out "/bin"))
(call-with-output-file app
(lambda (port)
@ -27570,8 +28081,7 @@ The common way to create this file is as follows:
library(shiny)
setwd(\"~a\")
runApp(launch.browser=0, port=4202)~%\n"
Rbin targetdir)))
@dots{}
Rbin targetdir))))
@end lisp
@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.
It is used to pass extra text to be added verbatim to the configuration
file.
@item @code{extra-options} (default: @code{'()})
Extra command line options for @code{nix-service-type}.
@end table
@end deftp
@ -28602,7 +29115,9 @@ the @option{--image-size} option is ignored in the case of
@code{docker-image}.
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
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}
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 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
values as the second argument. It must return a value that is a valid
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
@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
@cindex provenance tracking, of the operating system
@anchor{provenance-service-type}
@defvr {Scheme Variable} provenance-service-type
This is the type of the service that records @dfn{provenance meta-data}
in the system itself. It creates several files under

View File

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

10
gnu.scm
View File

@ -1,5 +1,5 @@
;;; 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 © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
@ -20,7 +20,7 @@
(define-module (gnu)
#:use-module (guix i18n)
#:use-module (guix utils)
#:use-module (guix diagnostics)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
@ -78,10 +78,8 @@
(raise
(apply
make-compound-condition
(condition
(&message
(message (format #f (G_ "module ~a not found")
module))))
(formatted-message (G_ "module ~a not found")
module)
(condition
(&error-location (location location)))
(or (and=> (make-hint module) list)

View File

@ -476,6 +476,42 @@ not valid header was found."
(let ((uuid (sub-bytevector header 168 36)))
(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.
@ -585,7 +621,9 @@ partition field reader that returned a value."
(partition-field-reader read-jfs-superblock
jfs-superblock-uuid)
(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
(cut read-partition-field <> %partition-label-readers))
@ -684,6 +722,7 @@ were found."
((string-suffix? "fat" type) check-fat-file-system)
((string-prefix? "jfs" type) check-jfs-file-system)
((string-prefix? "f2fs" type) check-f2fs-file-system)
((string-prefix? "ntfs" type) check-ntfs-file-system)
((string-prefix? "nfs" type) (const 'pass))
(else #f)))
@ -775,26 +814,33 @@ corresponds to the symbols listed in FLAGS."
(when (file-system-check? fs)
(check-file-system source type))
;; Create the mount point. Most of the time this is a directory, but
;; in the case of a bind mount, a regular file or socket may be needed.
(if (and (= MS_BIND (logand flags MS_BIND))
(not (file-is-directory? source)))
(unless (file-exists? mount-point)
(mkdir-p (dirname mount-point))
(call-with-output-file mount-point (const #t)))
(mkdir-p mount-point))
(catch 'system-error
(lambda ()
;; Create the mount point. Most of the time this is a directory, but
;; in the case of a bind mount, a regular file or socket may be
;; needed.
(if (and (= MS_BIND (logand flags MS_BIND))
(not (file-is-directory? source)))
(unless (file-exists? mount-point)
(mkdir-p (dirname mount-point))
(call-with-output-file mount-point (const #t)))
(mkdir-p mount-point))
(cond
((string-prefix? "nfs" type)
(mount-nfs source mount-point type flags options))
(else
(mount source mount-point type flags options)))
(cond
((string-prefix? "nfs" type)
(mount-nfs source mount-point type flags options))
(else
(mount source mount-point type flags options)))
;; For read-only bind mounts, an extra remount is needed, as per
;; <http://lwn.net/Articles/281157/>, which still applies to Linux 4.0.
(when (and (= MS_BIND (logand flags MS_BIND))
(= MS_RDONLY (logand flags MS_RDONLY)))
(let ((flags (logior MS_BIND MS_REMOUNT MS_RDONLY)))
(mount source mount-point type flags #f)))))
;; For read-only bind mounts, an extra remount is needed, as per
;; <http://lwn.net/Articles/281157/>, which still applies to Linux
;; 4.0.
(when (and (= MS_BIND (logand flags MS_BIND))
(= MS_RDONLY (logand flags MS_RDONLY)))
(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

View File

@ -18,6 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build install)
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#:use-module (guix build store-copy)
#:use-module (srfi srfi-26)
@ -26,7 +27,9 @@
evaluate-populate-directive
populate-root-file-system
install-database-and-gc-roots
populate-single-profile-directory))
populate-single-profile-directory
mount-cow-store
unmount-cow-store))
;;; Commentary:
;;;
@ -229,4 +232,43 @@ This is used to create the self-contained tarballs with 'guix pack'."
(_
#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

View File

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

View File

@ -24,6 +24,7 @@
#:use-module (guix build syscalls)
#:use-module ((guix build utils) #:select (find-files invoke))
#:use-module (guix build union)
#:autoload (zlib) (call-with-gzip-input-port)
#:use-module (rnrs io ports)
#:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1)
@ -94,10 +95,28 @@ string list."
(cons (string->symbol (string-take str =))
(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)
"Return the contents of the '.modinfo' section of FILE as a list of
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))
(section (elf-section-by-name elf ".modinfo"))
(modinfo (section-contents elf section)))
@ -110,7 +129,7 @@ key/value pairs.."
(define (module-formal-name file)
"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 \".ko\" extension."
the \".ko[.gz|.xz]\" extension."
(match (assq 'name (modinfo-section-contents file))
(('name . name) name)
(#f #f)))
@ -171,14 +190,25 @@ modules that can be postloaded, of the soft dependencies of module FILE."
(_ #f))
(modinfo-section-contents file))))
(define dot-ko
(cut string-append <> ".ko"))
(define (strip-extension filename)
(let ((extension (string-index filename #\.)))
(if extension
(string-take filename extension)
filename)))
(define (ensure-dot-ko name)
"Return NAME with a '.ko' prefix appended, unless it already has it."
(if (string-suffix? ".ko" name)
(define (dot-ko name compression)
(let ((suffix (match compression
('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
(dot-ko name)))
(dot-ko name compression)))
(define (normalize-module-name module)
"Return the \"canonical\" name for MODULE, replacing hyphens with
@ -191,9 +221,9 @@ underscores."
module))
(define (file-name->module-name file)
"Return the module name corresponding to FILE, stripping the trailing '.ko'
and normalizing it."
(normalize-module-name (basename file ".ko")))
"Return the module name corresponding to FILE, stripping the trailing
'.ko[.gz|.xz]' and normalizing it."
(normalize-module-name (strip-extension (basename file))))
(define (find-module-file directory module)
"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
;; 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!
(map ensure-dot-ko
(delete-duplicates
(list module
(normalize-module-name module)
(string-map (lambda (chr) ;converse of 'normalize-module-name'
(case chr
((#\_) #\-)
(else chr)))
module)))))
(delete-duplicates
(list module
(normalize-module-name module)
(string-map (lambda (chr) ;converse of 'normalize-module-name'
(case chr
((#\_) #\-)
(else chr)))
module))))
(match (find-files directory
(lambda (file stat)
(member (basename file) names)))
(member (strip-extension
(basename file)) names)))
((file)
file)
(()
@ -290,8 +320,8 @@ not a file name."
(recursive? #t)
(lookup-module dot-ko)
(black-list (module-black-list)))
"Load Linux module from FILE, the name of a '.ko' file; return true on
success, false otherwise. When RECURSIVE? is true, load its dependencies
"Load Linux module from FILE, the name of a '.ko[.gz|.xz]' file; return true
on success, false otherwise. When RECURSIVE? is true, load its dependencies
first (à la 'modprobe'.) The actual files containing modules depended on are
obtained by calling LOOKUP-MODULE with the module name. Modules whose name
appears in BLACK-LIST are not loaded."
@ -523,16 +553,29 @@ are required to access DEVICE."
;;; 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
always work because sometimes underscores in NAME map to hyphens (e.g.,
\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\")."
(string-append directory "/" (ensure-dot-ko name)))
\"input-leds.ko\"), sometimes not (e.g., \"mac_hid.ko\"). If the module is
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)
"Return a one argument procedure that takes a module name (e.g.,
\"input_leds\") and returns its absolute file name (e.g.,
\"/.../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
(lambda ()
(define mapping
@ -541,23 +584,23 @@ always work because sometimes underscores in NAME map to hyphens (e.g.,
(lambda (name)
(or (assoc-ref mapping name)
(module-name->file-name/guess directory name))))
(guess-file-name name))))
(lambda args
(if (= ENOENT (system-error-errno args))
(cut module-name->file-name/guess directory <>)
(cut guess-file-name <>)
(apply throw args)))))
(define (write-module-name-database directory)
"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
hyphens vs. underscores."
(define mapping
(map (lambda (file)
(match (module-formal-name file)
(#f (cons (basename file ".ko") file))
(#f (cons (strip-extension (basename file)) file))
(name (cons name file))))
(find-files directory "\\.ko$")))
(find-files directory module-regex)))
(call-with-output-file (string-append directory "/modules.name")
(lambda (port)
@ -569,12 +612,12 @@ hyphens vs. underscores."
(pretty-print mapping port))))
(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."
(define aliases
(map (lambda (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")
(lambda (port)
@ -616,7 +659,7 @@ are found, return a tuple (DEVNAME TYPE MAJOR MINOR), otherwise return #f."
(char-set-complement (char-set #\-)))
(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
be loaded on-demand, such as file system modules."
(define aliases
@ -624,7 +667,7 @@ be loaded on-demand, such as file system modules."
(match (aliases->device-tuple (module-aliases file))
(#f #f)
(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")
(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 build linux-container)
#:use-module (guix build utils)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (make-forkexec-constructor/container))
#:export (make-forkexec-constructor/container
fork+exec-command/container))
;;; Commentary:
;;;
@ -93,7 +95,8 @@
;; XXX: Lazy-bind the Shepherd to avoid a compile-time dependency.
(module-autoload! (current-module)
'(shepherd service)
'(read-pid-file exec-command %precious-signals))
'(fork+exec-command read-pid-file exec-command
%precious-signals))
(module-autoload! (current-module)
'(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))
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:
;; eval: (put 'container-excursion* 'scheme-indent-function 1)
;; End:

View File

@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@ -25,6 +26,7 @@
#:use-module (guix profiles)
#:use-module (guix packages)
#:use-module (guix channels)
#:use-module (guix config)
#:use-module (guix derivations)
#:use-module (guix build-system)
#:use-module (guix monads)
@ -116,7 +118,7 @@ SYSTEM."
;; 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
;; 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
gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz
%bootstrap-binaries-tarball
@ -233,7 +235,12 @@ system.")
,(->job 'iso9660-image
(build-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))))
;; Only cross-compile Guix System images from x86_64-linux for now.
,@(if (string=? system "x86_64-linux")

View File

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

View File

@ -26,6 +26,8 @@
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#: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 (rnrs io ports)
#:use-module (srfi srfi-1)
@ -133,49 +135,18 @@ USERS."
(_ #f))))))
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 '()))
"Create /etc/shadow and /etc/passwd on the installation target for USERS.
Start COW-STORE service on target directory and launch guix install command in
a subshell. LOCALE must be the locale name under which that command will run,
or #f. Return #t on success and #f on failure."
(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
(lambda ()
;; If this file exists, it can provide
@ -188,7 +159,11 @@ or #f. Return #t on success and #f on failure."
"--fallback")
options
(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))
;; 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.
(create-user-database users (%installer-target-dir))
(dynamic-wind
(lambda ()
(start-service 'cow-store (list (%installer-target-dir))))
(lambda ()
;; If there are any connected clients, assume that we are running
;; installation tests. In that case, dump the standard and error
;; outputs to syslog.
(if (not (null? (current-clients)))
(with-output-to-file "/dev/console"
(lambda ()
(with-error-to-file "/dev/console"
(lambda ()
(setvbuf (current-output-port) 'none)
(setvbuf (current-error-port) 'none)
(run-command install-command #:locale locale)))))
(run-command install-command #:locale locale)))
(lambda ()
(stop-service 'cow-store)
;; Remove the store overlay created at cow-store service start.
;; Failing to do that will result in further umount calls to fail
;; because the target device is seen as busy. See:
;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
(umount-cow-store)
#f))))
;; When the store overlay is mounted, other processes such as kmscon, udev
;; and guix-daemon may open files from the store, preventing the
;; underlying install support from being umounted. See:
;; https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html.
;;
;; To avoid this situation, mount the store overlay inside a container,
;; and run the installation from within that container.
(zero?
(call-with-container '()
(lambda ()
(dynamic-wind
(lambda ()
;; Save the database, so that it can be restored once the
;; cow-store is umounted.
(copy-file database-file saved-database)
(mount-cow-store (%installer-target-dir) backing-directory))
(lambda ()
;; We need to drag the guix-daemon to the container MNT
;; namespace, so that it can operate on the cow-store.
(stop-service 'guix-daemon)
(start-service 'guix-daemon (list (number->string (getpid))))
(setvbuf (current-output-port) 'none)
(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 '()))
(clear-screen)
(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)))
(newt-resume)
install-ok?))

View File

@ -121,7 +121,7 @@ Be careful, all data on the disk will be lost.")
(run-listbox-selection-page
#:info-text (G_ "Please select the file-system type for this partition.")
#: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
#:sort-listbox-items? #f
#:button-text (G_ "Exit")

View File

@ -222,7 +222,8 @@ inferior to MAX-SIZE, #f otherwise."
((btrfs) "btrfs")
((fat16) "fat16")
((fat32) "fat32")
((jfs) "jfs")
((jfs) "jfs")
((ntfs) "ntfs")
((swap) "linux-swap")))
(define (user-fs-type->mount-type fs-type)
@ -232,7 +233,8 @@ inferior to MAX-SIZE, #f otherwise."
((btrfs) "btrfs")
((fat16) "fat")
((fat32) "vfat")
((jfs) "jfs")))
((jfs) "jfs")
((ntfs) "ntfs")))
(define (partition-filesystem-user-type partition)
"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 "fat32") 'fat32)
((string=? name "jfs") 'jfs)
((string=? name "ntfs") 'ntfs)
((or (string=? name "swsusp")
(string=? name "linux-swap(v0)")
(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-close device))
(define (remove-logical-devices)
"Remove all active logical devices."
(with-null-output-ports
(invoke "dmsetup" "remove_all")))
(define (non-install-devices)
"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
@ -1040,6 +1048,11 @@ bit bucket."
(with-null-output-ports
(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)
"Set up swap area on PARTITION file-name."
(with-null-output-ports
@ -1117,6 +1130,10 @@ NEED-FORMATING? field set to #t."
(and need-formatting?
(not (eq? type 'extended))
(create-jfs-file-system file-name)))
((ntfs)
(and need-formatting?
(not (eq? type 'extended))
(create-ntfs-file-system file-name)))
((swap)
(create-swap-partition file-name))
(else
@ -1328,6 +1345,9 @@ USER-PARTITIONS, or return nothing."
(define (init-parted)
"Initialize libparted support."
(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-OPTION-UNHANDLED)))

View File

@ -132,6 +132,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/commencement.scm \
%D%/packages/compression.scm \
%D%/packages/compton.scm \
%D%/packages/configuration-management.scm \
%D%/packages/conky.scm \
%D%/packages/connman.scm \
%D%/packages/convmv.scm \
@ -388,6 +389,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/networking.scm \
%D%/packages/nfs.scm \
%D%/packages/nickle.scm \
%D%/packages/nicotine.scm \
%D%/packages/nim.scm \
%D%/packages/ninja.scm \
%D%/packages/node.scm \
@ -412,6 +414,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/package-management.scm \
%D%/packages/pantheon.scm \
%D%/packages/parallel.scm \
%D%/packages/pascal.scm \
%D%/packages/password-utils.scm \
%D%/packages/patchutils.scm \
%D%/packages/pciutils.scm \
@ -656,6 +659,7 @@ GNU_SYSTEM_MODULES = \
%D%/build/linux-initrd.scm \
%D%/build/linux-modules.scm \
%D%/build/marionette.scm \
%D%/build/secret-service.scm \
%D%/build/vm.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-deterministic.patch \
%D%/packages/patches/bitcoin-core-python-compat.patch \
%D%/packages/patches/blender-2.79-gcc8.patch \
%D%/packages/patches/blender-2.79-gcc9.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%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.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/byobu-writable-status.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-esan-build-fixes.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.8-libsanitizer-mode-field.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-c++-gcc-compat.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-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \
%D%/packages/patches/desmume-gcc6-fixes.patch \
%D%/packages/patches/desmume-gcc7-fixes.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/elm-compiler-disable-reactor.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-exwm-fix-fullscreen-states.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-highlight-stages-add-gexp.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-8560.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/fuse-overlapping-headers.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-creationdate.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-11237.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-locales.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-vectorized-strcspn-guards.patch \
%D%/packages/patches/glibc-versioned-locpath.patch \
%D%/packages/patches/glibc-2.27-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/go-skip-gc-test.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-qstring.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/gtkglext-disable-disable-deprecated.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-find-system-libgme.patch \
%D%/packages/patches/hdf4-architectures.patch \
@ -1140,9 +1146,12 @@ dist_patch_DATA = \
%D%/packages/patches/iputils-libcap-compat.patch \
%D%/packages/patches/irrlicht-use-system-libs.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/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-disable-branch-patching.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/ldc-bootstrap-disable-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/less-hurd-path-max.patch \
%D%/packages/patches/lib2geom-enable-assertions.patch \
%D%/packages/patches/lib2geom-fix-tests.patch \
%D%/packages/patches/liba52-enable-pic.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/libbonobo-activation-test-race.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/libgit2-mtime-0.patch \
%D%/packages/patches/libgnome-encoding.patch \
%D%/packages/patches/libgnomeui-utf8.patch \
%D%/packages/patches/libjxr-fix-function-signature.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/libksieve-Fix-missing-link-libraries.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-missing-qt5-modules.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-CVE-2017-8361-8363-8365.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-4527.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/mesa-skip-disk-cache-test.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-y2038-tests.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/network-manager-plugin-path.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-Install-mli-cmx-etc.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%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/opendht-fix-jami.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/openresolv-restartcmd-guix.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-1.1-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-sdl-libs-config.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-endian-detection.patch \
%D%/packages/patches/plib-CVE-2011-4620.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/portaudio-audacity-compat.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-aiohttp-3.6.2-no-warning-fail.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-axolotl-AES-fix.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-pyfakefs-remove-bad-test.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-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.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/python2-parameterized-docstring-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-robotframework-honor-source-date-epoch.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/python-tinycss2-flake8-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-6.2-CVE-2014-2524.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/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.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/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-rubocop-break-dependency-cycle.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/scribus-1.5.5-poppler-0.86-build-fix.patch \
%D%/packages/patches/sdl-libx11-1.6.patch \
%D%/packages/patches/seed-webkit.patch \
%D%/packages/patches/seq24-rename-mutex.patch \
%D%/packages/patches/sharutils-CVE-2018-1000097.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-display.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-system-directories.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.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-remove-license-code.patch \
%D%/packages/patches/tk-find-library.patch \
%D%/packages/patches/transcode-ffmpeg.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/tup-unbundle-dependencies.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/udiskie-no-appindicator.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-8140.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-tests-show-contents.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/vinagre-newer-freerdp.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/weasyprint-library-paths.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/wgetpaste-update-bpaste.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.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/x265-arm-flags.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-savage-xorg-compat.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-voodoo-pcitag.patch \
%D%/packages/patches/xfce4-panel-plugins.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-libdisplay_DisplayOutput.cpp.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 records)
#: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)
#:export (environment-type
environment-type?

View File

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

View File

@ -24,6 +24,7 @@
#:use-module (gnu system)
#:use-module (gnu system file-systems)
#:use-module (gnu system uuid)
#:use-module ((gnu services) #:select (sexp->system-provenance))
#:use-module (guix diagnostics)
#:use-module (guix gexp)
#:use-module (guix i18n)
@ -55,6 +56,7 @@
machine-ssh-configuration-host-name
machine-ssh-configuration-build-locally?
machine-ssh-configuration-authorize?
machine-ssh-configuration-allow-downgrades?
machine-ssh-configuration-port
machine-ssh-configuration-user
machine-ssh-configuration-host-key
@ -83,6 +85,8 @@
(default #t))
(authorize? machine-ssh-configuration-authorize? ; boolean
(default #t))
(allow-downgrades? machine-ssh-configuration-allow-downgrades? ; boolean
(default #f))
(port machine-ssh-configuration-port ; integer
(default 22))
(user machine-ssh-configuration-user ; string
@ -179,11 +183,9 @@ exist on the machine."
(lambda args
(system-error-errno args)))))
(when (number? errno)
(raise (condition
(&message
(message (format #f (G_ "device '~a' not found: ~a")
(raise (formatted-message (G_ "device '~a' not found: ~a")
(file-system-device fs)
(strerror errno)))))))))
(strerror errno))))))
(define (check-labeled-file-system fs)
(define remote-exp
@ -196,11 +198,9 @@ exist on the machine."
(remote-let ((result remote-exp))
(unless result
(raise (condition
(&message
(message (format #f (G_ "no file system with label '~a'")
(raise (formatted-message (G_ "no file system with label '~a'")
(file-system-label->string
(file-system-device fs))))))))))
(file-system-device fs)))))))
(define (check-uuid-file-system fs)
(define remote-exp
@ -217,10 +217,8 @@ exist on the machine."
(remote-let ((result remote-exp))
(unless result
(raise (condition
(&message
(message (format #f (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs))))))))))
(raise (formatted-message (G_ "no file system with UUID '~a'")
(uuid->string (file-system-device fs)))))))
(append (map check-literal-file-system
(filter (lambda (fs)
@ -277,6 +275,27 @@ not available in the initrd."
(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)
"Raise a '&message' error condition if MACHINE is configured to be built
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))))
(when (and (machine-ssh-configuration-build-locally? config)
(not (string= system (machine-ssh-configuration-system config))))
(raise (condition
(&message
(message (format #f (G_ "incorrect target system\
(raise (formatted-message (G_ "incorrect target system\
('~a' was given, while the system reports that it is '~a')~%")
(machine-ssh-configuration-system config)
system))))))))
system)))))
(define (check-deployment-sanity machine)
"Raise a '&message' error condition if it is clear that deploying MACHINE's
'system' declaration would fail."
(define assertions
(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
;; 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?
(machine-configuration machine))
(unless (file-exists? %public-key-file)
(raise (condition
(&message
(message (format #f (G_ "no signing key '~a'. \
(raise (formatted-message (G_ "no signing key '~a'. \
have you run 'guix archive --generate-key?'")
%public-key-file))))))
%public-key-file)))
(remote-authorize-signing-key (call-with-input-file %public-key-file
(lambda (port)
(string->canonical-sexp
@ -497,9 +513,11 @@ connection to the host.")))
(let ((config (machine-configuration machine))
(environment (environment-type-name (machine-environment machine))))
(unless (and config (machine-ssh-configuration? config))
(raise (condition
(&message
(message (format #f (G_ "unsupported machine configuration '~a'
(raise (formatted-message (G_ "unsupported machine configuration '~a'
for environment of type '~a'")
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 ui)
#:use-module (guix utils)
#:use-module (guix diagnostics)
#:use-module (guix discovery)
#:use-module (guix memoization)
#:use-module ((guix build utils)
@ -92,9 +93,8 @@
(define (search-patch file-name)
"Search the patch FILE-NAME. Raise an error if not found."
(or (search-path (%patch-path) file-name)
(raise (condition
(&message (message (format #f (G_ "~a: patch not found")
file-name)))))))
(raise (formatted-message (G_ "~a: patch not found")
file-name))))
(define-syntax-rule (search-patches file-name ...)
"Return the list of absolute file names corresponding to each
@ -381,39 +381,59 @@ reducing the memory footprint."
(define cache-file
(string-append directory %package-cache-file))
(define (expand-cache module symbol variable result+seen)
(match (false-if-exception (variable-ref variable))
((? package? package)
(match result+seen
((result . seen)
(if (or (vhash-assq package seen)
(hidden-package? package))
(cons result seen)
(cons (cons `#(,(package-name package)
,(package-version package)
,(module-name module)
,symbol
,(package-outputs package)
,(->bool (supported-package? package))
,(->bool (package-superseded package))
,@(let ((loc (package-location package)))
(if loc
`(,(location-file loc)
,(location-line loc)
,(location-column loc))
'(#f #f #f))))
result)
(vhash-consq package #t seen))))))
(_
result+seen)))
(define expand-cache
(match-lambda*
(((module symbol variable) (result . seen))
(let ((package (variable-ref variable)))
(if (or (vhash-assq package seen)
(hidden-package? package))
(cons result seen)
(cons (cons `#(,(package-name package)
,(package-version package)
,(module-name module)
,symbol
,(package-outputs package)
,(->bool (supported-package? package))
,(->bool (package-superseded package))
,@(let ((loc (package-location package)))
(if loc
`(,(location-file loc)
,(location-line loc)
,(location-column loc))
'(#f #f #f))))
result)
(vhash-consq package #t seen)))))))
(define exp
(first
(fold-module-public-variables* expand-cache
(cons '() vlist-null)
(define entry-key
(match-lambda
((module symbol variable)
(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)
#: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))
(call-with-output-file cache-file

View File

@ -21,12 +21,31 @@
(define-module (gnu packages accessibility)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#: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 gnome)
#:use-module (gnu packages gstreamer)
@ -37,6 +56,154 @@
#:use-module (gnu packages pkg-config)
#: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
(package
(name "florence")

View File

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

View File

@ -79,6 +79,11 @@
(ice-9 match))
#: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
;; difference: this package needs the -package-db flag to be passed
;; to "runhaskell" in addition to the "configure" action, because
@ -90,30 +95,25 @@
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(name-version (strip-store-file-name out))
(input-dirs (match inputs
(((_ . dir) ...)
dir)
(_ '())))
(ghc-path (getenv "GHC_PACKAGE_PATH"))
(params (append `(,(string-append "--prefix=" out))
`(,(string-append "--libdir=" out "/lib"))
`(,(string-append "--bindir=" out "/bin"))
`(,(string-append
"--docdir=" out
"/share/doc/" name-version))
'("--libsubdir=$compiler/$pkg-$version")
'("--package-db=../package.conf.d")
'("--global")
`(,@(map
(cut string-append "--extra-include-dirs=" <>)
(search-path-as-list '("include") input-dirs)))
`(,@(map
(cut string-append "--extra-lib-dirs=" <>)
(search-path-as-list '("lib") input-dirs)))
(if tests?
'("--enable-tests")
'())
configure-flags)))
(params
`(,(string-append "--prefix=" out)
,(string-append "--libdir=" out "/lib")
,(string-append "--docdir=" out
"/share/doc/" name-version)
"--libsubdir=$compiler/$pkg-$version"
"--package-db=../package.conf.d"
"--global"
,@(if tests?
'("--enable-tests")
'())
;; Build and link with shared libraries
"--enable-shared"
"--enable-executable-dynamic"
"--ghc-option=-fPIC"
,(string-append "--ghc-option=-optl=-Wl,-rpath=" out
"/lib/$compiler/$pkg-$version")
,@configure-flags)))
(unsetenv "GHC_PACKAGE_PATH")
(apply invoke "runhaskell" "-package-db=../package.conf.d"
"Setup.hs" "configure" params)

View File

@ -28,6 +28,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
@ -37,8 +38,52 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages video)
#:use-module (guix build-system cmake)
#: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
(package

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
@ -74,7 +74,7 @@
(define-public mpfrcx
(package
(name "mpfrcx")
(version "0.5")
(version "0.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -82,7 +82,7 @@
version ".tar.gz"))
(sha256
(base32
"1s968480ymv6w0rnvfp9mxvx98hvi29fkvw8nk4ggzc6azxgwybs"))))
"0gz5rma9al2jrifpknqkcnd9dkf8l05jcxy3s4ghwhd4y3h5dwia"))))
(build-system gnu-build-system)
(propagated-inputs
`(("gmp" ,gmp)
@ -151,7 +151,12 @@ line applications.")
(define-public fplll
(package
(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
(method git-fetch)
(uri (git-reference
@ -160,7 +165,7 @@ line applications.")
(file-name (git-file-name name version))
(sha256
(base32
"015qmrd7nfaysbv1hbwiprz9g6hnww1y1z1xw8f43ysb7k1b5nbg"))))
"00iyz218ywspizjiimrjdcqvdqmrsb2367zyy3vkmypnf9i9l680"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -198,7 +203,7 @@ the real span of the lattice.")
(define-public python-fpylll
(package
(name "python-fpylll")
(version "0.4.1")
(version "0.5.2")
(source
(origin
;; 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))
(sha256
(base32
"01x2sqdv0sbjj4g4waj0hj4rcn4bq7h17442xaqwbznym9azmn9w"))))
"1a25iibihph626jl4wbs4b77xc4a2c4nfc2ypscf9wpani3dnhjf"))))
(build-system python-build-system)
(inputs
`(("fplll" ,fplll)
@ -346,7 +351,8 @@ varieties, i.e. Jacobians of hyperelliptic curves.
It can also be used to compute theta constants at arbitrary
precision.")
(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
(package
@ -440,14 +446,13 @@ or text interfaces) or as a C++ library.")
(define-public flint
(package
(name "flint")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://flintlib.org/flint-"
version ".tar.gz"))
(sha256 (base32
"0h08a71kn8347zsqjamqnmrxjpsnnzpmhvxb6d2xmfrcs6nyv2ch"))))
(version "2.6.3")
(source
(origin
(method url-fetch)
(uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
(sha256
(base32 "1qrf6hzbbmg7mhkhbb0bab8z2xpdnba5cj4kmmf72lzs0457a6nf"))))
(build-system gnu-build-system)
(inputs
`(("ntl" ,ntl)))
@ -455,7 +460,7 @@ or text interfaces) or as a C++ library.")
`(("gmp" ,gmp)
("mpfr" ,mpfr))) ; header files from both are included by flint/arith.h
(arguments
`(#:parallel-tests? #f ; seems to be necessary on arm
`(#:parallel-tests? #f ; seems to be necessary on arm
#:phases
(modify-phases %standard-phases
(add-before 'configure 'newer-c++
@ -469,8 +474,8 @@ or text interfaces) or as a C++ library.")
(gmp (assoc-ref inputs "gmp"))
(mpfr (assoc-ref inputs "mpfr"))
(ntl (assoc-ref inputs "ntl")))
;; do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail
;; Do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail.
(invoke "./configure"
(string-append "--prefix=" out)
(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
functions. In addition, FLINT provides various low-level routines for
fast arithmetic.")
(license license:gpl2+)
(license license:lgpl2.1+)
(home-page "http://flintlib.org/")))
(define-public arb
@ -1113,17 +1118,17 @@ xtensor provides:
(define-public gap
(package
(name "gap")
(version "4.10.2")
(version "4.11.0")
(source
(origin
(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)
"/tar.bz2/gap-"
version
".tar.bz2"))
(sha256
(base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94"))
(base32 "00l6hvy4iggnlrib4vp805sxdm3j7n3hzpv5zs9hbiiavh80l1xz"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet
'(begin
@ -1135,41 +1140,46 @@ xtensor provides:
;; FIXME: This might be fixed in the next release, see
;; https://github.com/gap-system/gap/issues/3292
(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"
(for-each delete-file-recursively
(lset-difference string=? (scandir ".")
(lset-difference
(lambda (all keep) (string-prefix? keep all))
(scandir ".")
'("." ".."
;; Necessary packages.
"GAPDoc-1.6.2"
"primgrp-3.3.2"
"SmallGrp-1.3" ; artistic2.0
"transgrp" ; artistic2.0 for data,
; gpl2 or gpl3 for code
;; Recommanded package.
"io-4.5.4" ; gpl3+
"GAPDoc-"
"primgrp-"
"SmallGrp-" ; artistic2.0
"transgrp" ; artistic2.0 for data,
; gpl2 or gpl3 for code
;; Recommended package.
"io-" ; gpl3+
;; Optional packages, searched for at start,
;; and their depedencies.
"alnuth-3.1.0"
"autpgrp-1.10"
"crisp-1.4.4" ; bsd-2
"ctbllib" ; gpl3+ according to doc/chap0.txt
"FactInt-1.6.2"
"alnuth-"
"autpgrp-"
"crisp-" ; bsd-2
"ctbllib" ; gpl3+, clarified in the next release;
; see
; http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/README.md
"FactInt-"
"fga"
"irredsol-1.4" ; bsd-2
"laguna-3.9.2"
"polenta-1.3.8"
"polycyclic-2.14"
"radiroot-2.8"
"resclasses-4.7.1"
"sophus-1.24"
"tomlib-1.2.7" ; gpl2+, clarified in the git repository
; and the next release
"utils-0.59"))))
"irredsol-" ; bsd-2
"laguna-"
"polenta-"
"polycyclic-"
"radiroot-"
"resclasses-"
"sophus-"
"tomlib-"
"utils-"))))
#t))))
(build-system gnu-build-system)
(inputs
`(("gmp" ,gmp)
("readline" ,readline)
("zlib" ,zlib)))
(arguments
`(#:modules ((ice-9 ftw)
@ -1196,15 +1206,14 @@ xtensor provides:
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib"))
(prog (string-append bin "/gap"))
(prog-real (string-append bin "/.gap-real"))
(share (string-append out "/share/gap"))
(include (string-append out "/include/gap"))
(include-hpc (string-append include "/hpc")))
(share (string-append out "/share/gap")))
;; Install only the gap binary; the gac compiler is left
;; for maybe later. "Wrap" it in a shell script that calls
;; the binary with the correct parameter.
;; The make target install-bin is supposed to do that, but
;; is not currently working.
(mkdir-p bin)
(copy-file "gap" prog-real)
(call-with-output-file prog
@ -1215,52 +1224,18 @@ xtensor provides:
prog-real
share)))
(chmod prog #o755)
;; Install the headers, which are needed by Sage. The
;; Makefile target "install-headers" was available in
;; gap-4.10.0, but has been commented out in gap-4.10.1.
(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.
;; Install the headers and library, which are needed by Sage.
(invoke "make" "install-headers")
(invoke "make" "install-libgap")
;; Remove information on the build directory from sysinfo.gap.
(substitute* "sysinfo.gap"
(("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
(("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
(("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
(install-file "sysinfo.gap" share)
(copy-recursively "grp" (string-append share "/grp"))
(copy-recursively "pkg" (string-append share "/pkg"))
;; The following is not the C library libgap.so, but a
;; 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")))
(invoke "make" "install-gaproot")
;; Copy the directory of compiled packages; the make target
;; install-pkg is currently empty.
(copy-recursively "pkg" (string-append share "/pkg")))
#t)))))
(home-page "https://www.gap-system.org/")
(synopsis

View File

@ -5,9 +5,9 @@
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.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 © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019, 2020 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; 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.
;; 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
(method git-fetch)
(uri (git-reference
@ -185,7 +185,7 @@ use their packages mostly unmodified in our Android NDK build system.")
(base32
checksum))))
(define android-liblog
(define-public android-liblog
(package
(name "android-liblog")
(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)
(let ((out (assoc-ref outputs "out")))
(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/")
(synopsis "Logging library from the Android platform.")
(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.")
(license license:asl2.0)))
(define android-libcutils
(define-public android-libcutils
(package
(name "android-libcutils")
(version (android-platform-version))
@ -691,7 +700,7 @@ file system.")
(define-public android-udev-rules
(package
(name "android-udev-rules")
(version "20191103")
(version "20200613")
(source
(origin
(method git-fetch)
@ -700,7 +709,7 @@ file system.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0x2f2sv0x0ry7kccp47s0hlxps3hbpg37dj3xjjgpdm5hmn2cjq3"))))
(base32 "0cf5br8x6iwxc1cifv0i1klw7skgs8hghdx6qlqby68kyqg81bb2"))))
(build-system trivial-build-system)
(native-inputs `(("source" ,source)))
(arguments
@ -907,14 +916,14 @@ useful for reverse engineering, analysis of Android applications and more.")
(define-public fdroidserver
(package
(name "fdroidserver")
(version "1.1.1")
(version "1.1.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "fdroidserver" version))
(sha256
(base32
"0fp7q8faicx6i6wxm717qqaham3jpilb23mvynpz6v73z7hm6wcg"))))
"0m07f791z45w7r2dzx4yb6s54b3c3wykm3w9hn25p2jcyax082a2"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -922,14 +931,20 @@ useful for reverse engineering, analysis of Android applications and more.")
(add-after 'unpack 'fix-versioning
(lambda _
(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)))))
(propagated-inputs
`(("python-androguard" ,python-androguard)
("python-apache-libcloud" ,python-apache-libcloud)
("python-clint" ,python-clint)
("python-defusedxml" ,python-defusedxml)
("python-docker-py" ,python-docker-py)
("python-docker" ,python-docker)
("python-gitpython" ,python-gitpython)
("python-mwclient" ,python-mwclient)
("python-paramiko" ,python-paramiko)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -264,7 +264,7 @@ waveform until they line up with the proper sounds.")
(define-public pencil2d
(package
(name "pencil2d")
(version "0.6.4")
(version "0.6.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -273,7 +273,7 @@ waveform until they line up with the proper sounds.")
(file-name (git-file-name name version))
(sha256
(base32
"0zi8x0w8n817zds2lyw9l8j33c03kiybkrcyy3s5fg66mchmrwnr"))))
"06l60wawkhb3wrsj79p5f7ka5cgcyly36pbvm95fvwbkmlvmjzf1"))))
(build-system gnu-build-system)
(inputs
`(("qtbase" ,qtbase)

View File

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

View File

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

View File

@ -32,6 +32,7 @@
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -113,6 +114,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#: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 gnu)
#:use-module (guix build-system meson)
@ -127,6 +129,308 @@
#:use-module (srfi srfi-1)
#: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
(package
(name "vo-amrwbenc")
@ -474,7 +778,7 @@ engineers, musicians, soundtrack editors and composers.")
;; SSE instructions are available on Intel systems only.
,@(if (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
'("x64_64" "i686"))
'("x86_64" "i686"))
'()
'("--enable-sse=no"))
;; portmidi, libid3tag and libmad provide no .pc files, so
@ -1386,22 +1690,22 @@ also play midifiles using a Soundfont.")
(define-public faad2
(package
(name "faad2")
(version "2.8.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-"
(version-major+minor version) ".0/"
"faad2-" version ".tar.gz"))
(sha256
(base32
"089zqykqgmmysznvk0bi2pfvdqwclnn540d0zks83sv2pynpfjb5"))))
(version "2.8.8")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://sourceforge/faac/faad2-src/faad2-"
(version-major+minor version) ".0/"
"faad2-" version ".tar.gz"))
(sha256
(base32 "0va284hndhn0ynm4lyn219qw4y8wa4agfkqgwlaji7bqp6nkyp4q"))))
(build-system gnu-build-system)
(home-page "https://www.audiocoding.com/faad2.html")
(synopsis "MPEG-4 and MPEG-2 AAC decoder")
(description
"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR,
PS, and DAB+.")
(license license:gpl2)))
"FAAD2 is an MPEG-4 and MPEG-2 AAC decoder supporting LC, Main, LTP, SBR, -PS, and DAB+.")
(license license:gpl2+)))
(define-public faust
(package
@ -1991,6 +2295,48 @@ with applications that support them (e.g. PulseAudio).")
implementation of the Open Sound Control (@dfn{OSC}) protocol.")
(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
(package
(name "python-pyaudio")
@ -2582,9 +2928,12 @@ aimed at audio/musical applications.")
("automake" ,automake)
("pkg-config" ,pkg-config)
("libtool" ,libtool)))
(synopsis "Real-time library for sampling rate conversion")
(description "The @command{resample} software package contains free
sampling-rate conversion and filter design utilities.")
(synopsis "Sampling rate conversion and filter design utilities")
(description "This package contains the @command{resample} and
@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")
(license license:lgpl2.1+)))
@ -3676,14 +4025,14 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
(version "20.5")
(version "20.6")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
"1frg64q2d8cia6v7jia7kahzx0apwdl0z252mzlbwqdz5960nv90"))))
"1h4dsq5xcvwjbnayhn719cln0lg199w3xm59sl9d2jz8bq78gqgj"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests
@ -4398,6 +4747,38 @@ minimum.")
(home-page "https://git.zrythm.org/cgit/ztoolkit/")
(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
(package
(inherit ztoolkit)

View File

@ -305,7 +305,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL 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_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y

View File

@ -350,7 +350,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_LBDAF=y

View File

@ -370,7 +370,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y

View File

@ -876,7 +876,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL 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_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y

View File

@ -750,7 +750,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL 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_MODULES_TREE_LOOKUP=y
CONFIG_BLOCK=y

View File

@ -881,7 +881,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_LBDAF=y

View File

@ -872,7 +872,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_BLK_SCSI_REQUEST=y

View File

@ -302,7 +302,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_LBDAF=y

View File

@ -315,7 +315,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_BLK_DEV_BSG=y

View File

@ -322,7 +322,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_LBDAF=y

View File

@ -339,7 +339,9 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_BLOCK=y
CONFIG_BLK_DEV_BSG=y

View File

@ -880,7 +880,9 @@ CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL 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_UNUSED_SYMBOLS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set

View File

@ -781,7 +781,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL 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_UNUSED_SYMBOLS is not set
# CONFIG_TRIM_UNUSED_KSYMS is not set

View File

@ -850,7 +850,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_UNUSED_SYMBOLS=y
CONFIG_MODULES_TREE_LOOKUP=y

View File

@ -849,7 +849,9 @@ CONFIG_MODVERSIONS=y
CONFIG_ASM_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
# 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_UNUSED_SYMBOLS=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
/* 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,
passing it the audit module and preloading libfakechroot.so. */
static void
exec_with_loader (const char *store, int argc, char *argv[])
{
static const char *audit_library_path[] = LOADER_AUDIT_RUNPATH;
char *loader = concat (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;
char *loader_argv[loader_argc + 1];
loader_argv[0] = argv[0];
loader_argv[1] = "--audit";
loader_argv[2] = concat (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);
loader_argv[5] = concat (store,
loader_argv[7] = concat (store,
"@WRAPPED_PROGRAM@" + sizeof original_store);
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"));
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_parent = dirname (strdup (new_store));
mkdir_p (new_store_parent);
symlink (store, new_store);
err = symlink (store, new_store);
if (err < 0)
assert_perror (errno);
#ifdef GCONV_DIRECTORY
/* 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 linux)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages pcre)
@ -81,7 +82,7 @@
(define-public duplicity
(package
(name "duplicity")
(version "0.8.14")
(version "0.8.15")
(source
(origin
(method url-fetch)
@ -90,7 +91,7 @@
"-series/" version "/+download/duplicity-"
version ".tar.gz"))
(sha256
(base32 "1af7rppsd8kj66xhbc04x1di3rpncrz0prxq1z7npg11c769vb1x"))))
(base32 "1kg467mxg5a97v1rlv4shk32krgv8ys4nczq4b11av4bp1lgysdc"))))
(build-system python-build-system)
(native-inputs
`(("gettext" ,gnu-gettext) ; for msgfmt
@ -409,15 +410,14 @@ errors.")
(define-public rdiff-backup
(package
(name "rdiff-backup")
(version "2.0.3")
(version "2.0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/rdiff-backup/rdiff-backup/releases/"
"download/v" version "/rdiff-backup-" version ".tar.gz"))
(sha256
(base32
"1qfmvwwb942srhg6gw77ncy4z5z54b4wfz8bpd5bpml8hp1d5qh4"))))
(base32 "11rvjcp77zwgkphz1kyf5yqgr3rlss7dm9xzmvpvc4lp99xq7drb"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm)))
@ -1072,7 +1072,7 @@ interractive mode.")
(define-public burp
(package
(name "burp")
(version "2.3.30")
(version "2.3.32")
(source
(origin
(method git-fetch)
@ -1080,7 +1080,7 @@ interractive mode.")
(url "https://github.com/grke/burp")
(commit version)))
(sha256
(base32 "1f9i5d415psbr03fqd47p162qy25sypra1w8w16ym6jk1pvdjsgx"))
(base32 "0cxxf9ni34c9662ffmr2qc8xmh4g9pmg3swqvhn49mqgr5ra6k2g"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -1096,6 +1096,7 @@ interractive mode.")
(inputs
`(("acl" ,acl)
("librsync" ,librsync)
("ncurses" ,ncurses) ; for the live status monitor
("openssl" ,openssl)
("uthash" ,uthash)
("zlib" ,zlib)))

View File

@ -599,7 +599,7 @@ included.")
(native-inputs
`(("bc" ,bc)))
(inputs
`(("gcc:lib" ,gcc "lib")))))
`(("gcc:lib" ,(canonical-package gcc) "lib")))))
(define* (make-ld-wrapper name #:key
(target (const #f))
@ -1014,118 +1014,6 @@ with the Linux kernel.")
"glibc-CVE-2018-11237.patch"))))
(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)
"Return a GCC that targets LIBC."
(package (inherit base-gcc)

View File

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

View File

@ -798,14 +798,14 @@ closely reconstructs the mutational profile.")
(define-public r-nmf
(package
(name "r-nmf")
(version "0.22.0")
(version "0.23.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "NMF" version))
(sha256
(base32
"0b2ls3x1nkrnam45hagpys624nzxj3v7kxnp0q216yakvx5h57cq"))))
"0ls7q9yc9l1z10jphq5a11wkfgcxc3gm3sfjj376zx3vnc0wl30g"))))
(properties `((upstream-name . "NMF")))
(build-system r-build-system)
(propagated-inputs
@ -826,6 +826,8 @@ closely reconstructs the mutational profile.")
("r-reshape2" ,r-reshape2)
("r-rngtools" ,r-rngtools)
("r-stringr" ,r-stringr)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "http://renozao.github.io/NMF")
(synopsis "Algorithms and framework for nonnegative matrix factorization")
(description
@ -1502,14 +1504,14 @@ browser.")
(define-public r-oligoclasses
(package
(name "r-oligoclasses")
(version "1.50.0")
(version "1.50.4")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "oligoClasses" version))
(sha256
(base32
"05jy9qz3ir4maxackr1xqlfi1czhy1qd22wwibjdhfh5dp534cpn"))))
"1d8c3i8v8kcm1afgpz6zc1iysip7993y8456cqxl37f7n6n0ax67"))))
(properties `((upstream-name . "oligoClasses")))
(build-system r-build-system)
(propagated-inputs
@ -1537,14 +1539,14 @@ packages.")
(define-public r-oligo
(package
(name "r-oligo")
(version "1.52.0")
(version "1.52.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "oligo" version))
(sha256
(base32
"102szyiicws4c6l3k282236ml1m1vl9zmars4q1kdjfnvsyclfc4"))))
"1gpvr33pwzz1glzajcipvjcplb7yxvjj00q0ybqcc3wa47bhfkwd"))))
(properties `((upstream-name . "oligo")))
(build-system r-build-system)
(inputs `(("zlib" ,zlib)))
@ -1791,14 +1793,14 @@ determining dependencies between variables, code improvement suggestions.")
(define-public r-chippeakanno
(package
(name "r-chippeakanno")
(version "3.22.2")
(version "3.22.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ChIPpeakAnno" version))
(sha256
(base32
"199mlg0gwjy39afyk0ah6lzcm759bzxla4hgcajj0ay9jiibjqpa"))))
"0q3f55hh0a2hl96272js6gagmgps9cxs8s13pf6fii64rzaz5m7y"))))
(properties `((upstream-name . "ChIPpeakAnno")))
(build-system r-build-system)
(propagated-inputs
@ -3450,14 +3452,14 @@ surface of a flowcell.")
(define-public r-gkmsvm
(package
(name "r-gkmsvm")
(version "0.80.0")
(version "0.81.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gkmSVM" version))
(sha256
(base32
"0ljcga246ad0ql8x3drvrdsyp0f20mgp3p6lnl79xb76qgfdnm0p"))))
"119g5rhc7ffyviz04r04aj5z1g6abnj3ddd01g7db505sdr6lapj"))))
(properties `((upstream-name . "gkmSVM")))
(build-system r-build-system)
(propagated-inputs
@ -3622,14 +3624,14 @@ information about samples and features can be added to the plot.")
(define-public r-gosemsim
(package
(name "r-gosemsim")
(version "2.14.0")
(version "2.14.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "GOSemSim" version))
(sha256
(base32
"0mg4d8whq90iyl2jjj5dx3kyar17yqn00jvia3b4a8lhmjw8l1hk"))))
"0v4q9xr1cm5xr08pgbzrss41kh3yz7xyh31n55l0sjmr1629ykln"))))
(properties `((upstream-name . "GOSemSim")))
(build-system r-build-system)
(propagated-inputs
@ -3810,14 +3812,14 @@ All the visualization methods are developed based on ggplot2 graphics.")
(define-public r-clusterprofiler
(package
(name "r-clusterprofiler")
(version "3.16.0")
(version "3.16.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "clusterProfiler" version))
(sha256
(base32
"0m7919gzrd2fddb4kcznwpshhab1ha2yppnkxg11zmh40wcdawyi"))))
"11zsgb8wbdv8r4c04iczz4aala4yw4ai7rz8igdzz87c0940nxkb"))))
(properties
`((upstream-name . "clusterProfiler")))
(build-system r-build-system)
@ -3832,6 +3834,7 @@ All the visualization methods are developed based on ggplot2 graphics.")
("r-magrittr" ,r-magrittr)
("r-plyr" ,r-plyr)
("r-qvalue" ,r-qvalue)
("r-rlang" ,r-rlang)
("r-rvcheck" ,r-rvcheck)
("r-tidyr" ,r-tidyr)))
(native-inputs
@ -4087,7 +4090,8 @@ Affymetrix arrays.")
(properties `((upstream-name . "abseqR")))
(build-system r-build-system)
(inputs
`(("pandoc" ,ghc-pandoc)))
`(("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)))
(propagated-inputs
`(("r-biocparallel" ,r-biocparallel)
("r-biocstyle" ,r-biocstyle)
@ -4287,14 +4291,14 @@ Bioconductor.")
(define-public r-motifstack
(package
(name "r-motifstack")
(version "1.32.0")
(version "1.32.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "motifStack" version))
(sha256
(base32
"008f2mjcyyiz84ilrsldpqwvxy2lp93hjggrq4nrqwi78nyx3ls5"))))
"02vmkgn36n5xpmizy33znlzgmi3w5hnhsibgisbnhwwgxpkrwpcd"))))
(properties `((upstream-name . "motifStack")))
(build-system r-build-system)
(propagated-inputs
@ -4356,14 +4360,14 @@ position-specific scores within R and Bioconductor.")
(define-public r-atacseqqc
(package
(name "r-atacseqqc")
(version "1.12.3")
(version "1.12.4")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ATACseqQC" version))
(sha256
(base32
"12710c4024pndwwqiiqr6dhrd360z26fc8r3fxhs739gyd0ddk9r"))))
"1gs9862hhh4gr1akij6ykhcj29s9dzg1vnj87hqrm19dfgl43qbh"))))
(properties `((upstream-name . "ATACseqQC")))
(build-system r-build-system)
(propagated-inputs
@ -5236,14 +5240,14 @@ This algorithm is based on the publication by Hart et al., 2013 (Pubmed ID
(define-public r-rbowtie2
(package
(name "r-rbowtie2")
(version "1.10.0")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rbowtie2" version))
(sha256
(base32
"1z2dn0q3wcw8b9ibx388kh7p5km16i71sw9miqj3daw7g0v5bxp3"))))
"19v7wfvrd53j618c1xbiqnlsf2kxw697myryx0vb9s2aspknyzz7"))))
(properties `((upstream-name . "Rbowtie2")))
(build-system r-build-system)
(inputs
@ -5314,14 +5318,14 @@ Infinium HumanMethylation 450k assay.")
(define-public r-biocfilecache
(package
(name "r-biocfilecache")
(version "1.12.0")
(version "1.12.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocFileCache" version))
(sha256
(base32
"02chrzwccmazi7rdfpyriizhbgxyxlmprlw32w05wk54as6wrxv8"))))
"02yayjyliaqxcwqa0n2ccmsfflskqzf0gvdibh2r3nz5bi66imkf"))))
(properties `((upstream-name . "BiocFileCache")))
(build-system r-build-system)
(propagated-inputs
@ -5376,14 +5380,14 @@ Gaussian distributions.")
(define-public r-rbowtie
(package
(name "r-rbowtie")
(version "1.28.0")
(version "1.28.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rbowtie" version))
(sha256
(base32
"06y1qp915dlwjdi2fs3344sgya55pcv07f3i61y0cxb0bhbcgvrz"))))
"0589ggbfx6di42wvqyhnzgrhmb52swr3r5z22w6b8x0z2y7hl8b3"))))
(properties `((upstream-name . "Rbowtie")))
(build-system r-build-system)
(inputs
@ -5781,14 +5785,14 @@ annotations.")
(define-public r-rsubread
(package
(name "r-rsubread")
(version "2.2.4")
(version "2.2.6")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Rsubread" version))
(sha256
(base32
"0yznfqgp5cbz68n3rrfvm752267da16kl538zdrb1g1aw9zdfqc6"))))
"04h79qhq93d8id0rr5xnj9vf82ygwxzdlnck78yv738xd0jjvnpm"))))
(properties `((upstream-name . "Rsubread")))
(build-system r-build-system)
(inputs `(("zlib" ,zlib)))
@ -6330,14 +6334,14 @@ self-organizing map clustering and minimal spanning trees.")
(define-public r-mixomics
(package
(name "r-mixomics")
(version "6.12.1")
(version "6.12.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "mixOmics" version))
(sha256
(base32
"13kq9l5xwhwp30y5gfqfh5f11n63vn8rk195mb2y2mww4cwi6lv4"))))
"1nkqlvm9j1f4vfj3f3kyxqgan38rpa9imimvl9pwivvsfl647vvc"))))
(properties `((upstream-name . "mixOmics")))
(build-system r-build-system)
(propagated-inputs
@ -6456,14 +6460,14 @@ genes in the gene-set that are ranked above the leading edge).")
(define-public r-cicero
(package
(name "r-cicero")
(version "1.6.1")
(version "1.6.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "cicero" version))
(sha256
(base32
"0nf9yqg5krj26n4n82iyx3rsr84d46b17i9zfk35sh12l4xssbii"))))
"042ba6yfa7fksij2v7cwnp2sca3vmz7izn6fsxx9xswnncrkgcqh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@ -7048,14 +7052,14 @@ arrays based on fast wavelet-based functional models.")
(define-public r-variancepartition
(package
(name "r-variancepartition")
(version "1.18.2")
(version "1.18.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "variancePartition" version))
(sha256
(base32
"19bhkb8vd44m3nkznw075fx3y2p3a1bsazbhcfiqw9n4190k9bgv"))))
"1jrlhi2c5ibvq8a41g5hwdq4kk4rdd7m464rz5767zaaci7l2ay0"))))
(properties
`((upstream-name . "variancePartition")))
(build-system r-build-system)
@ -7762,14 +7766,14 @@ different graph related packages produced by Bioconductor.")
(define-public r-experimenthub
(package
(name "r-experimenthub")
(version "1.14.0")
(version "1.14.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ExperimentHub" version))
(sha256
(base32
"18d6kjfavy5b769gpkblihdkz2nz2hsgyjki8mp1sywi0ik08ncd"))))
"1kgvprchz1fg8pl1irj62mk2gyb4jcc9iimpypv4c2iccy5bp84x"))))
(properties `((upstream-name . "ExperimentHub")))
(build-system r-build-system)
(propagated-inputs
@ -7955,14 +7959,14 @@ analytics on packages.")
(define-public r-biocset
(package
(name "r-biocset")
(version "1.2.1")
(version "1.2.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "BiocSet" version))
(sha256
(base32
"14dmkc878lskbm001kgjyqmrwnn6s032z4h64f617f1xd9zx9wrj"))))
"041hq3rp0kv7kjwcjjrksk8lw3sj6j1v3wdcr8z611k0g0z6p0cj"))))
(properties `((upstream-name . "BiocSet")))
(build-system r-build-system)
(propagated-inputs
@ -8116,3 +8120,36 @@ dimensional mass cytometry data.")
Tool) analysis automatic by constructing a HTTP POST request according to
user's input and automatically retrieving results from GREAT web server.")
(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
(delete 'configure))))
(inputs
`(("tbb" ,tbb)
`(("python-wrapper" ,python-wrapper)
("tbb" ,tbb)
("zlib" ,zlib)))
(supported-systems '("x86_64-linux"))
(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
#: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
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/Makefile.in"
@ -1705,7 +1717,7 @@ genome (2.9 GB for paired-end).")
(("#include <sam.h>") "#include <samtools/sam.h>"))
#t)))))
(native-inputs
`(("gcc" ,gcc-5))) ;; doesn't build with later versions
`(("gcc@5" ,gcc-5))) ;; doesn't build with later versions
(inputs
`(("boost" ,boost)
("bowtie" ,bowtie)
@ -2149,7 +2161,7 @@ databases.")
(define-public clipper
(package
(name "clipper")
(version "1.2.1")
(version "2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2158,40 +2170,34 @@ databases.")
(file-name (git-file-name name version))
(sha256
(base32
"0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb"))
(modules '((guix build utils)))
(snippet
'(begin
;; remove unnecessary setup dependency
(substitute* "setup.py"
(("setup_requires = .*") ""))
#t))))
"1bcag4lb5bkzsj2vg7lrq24aw6yfgq275ifrbhd82l7kqgbbjbkv"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only Python 2 is supported
#:phases
`(#:phases
(modify-phases %standard-phases
;; This is fixed in upstream commit
;; f6c2990198f906bf97730d95695b4bd5a6d01ddb.
(add-after 'unpack 'fix-typo
(lambda _
(substitute* "clipper/src/readsToWiggle.pyx"
(("^sc.*") ""))
#t)))))
(add-before 'reset-gzip-timestamps 'make-files-writable
(lambda* (#:key outputs #:allow-other-keys)
;; Make sure .gz files are writable so that the
;; 'reset-gzip-timestamps' phase can do its work.
(let ((out (assoc-ref outputs "out")))
(for-each make-file-writable
(find-files out "\\.gz$"))
#t))))))
(inputs
`(("htseq" ,python2-htseq)
("python-pybedtools" ,python2-pybedtools)
("python-cython" ,python2-cython)
("python-scikit-learn" ,python2-scikit-learn)
("python-matplotlib" ,python2-matplotlib)
("python-pandas" ,python2-pandas)
("python-pysam" ,python2-pysam)
("python-numpy" ,python2-numpy)
("python-scipy" ,python2-scipy)))
`(("htseq" ,htseq)
("python-pybedtools" ,python-pybedtools)
("python-cython" ,python-cython)
("python-scikit-learn" ,python-scikit-learn)
("python-matplotlib" ,python-matplotlib)
("python-pandas" ,python-pandas)
("python-pysam" ,python-pysam)
("python-numpy" ,python-numpy)
("python-scipy" ,python-scipy)))
(native-inputs
`(("python-mock" ,python2-mock) ; for tests
("python-nose" ,python2-nose) ; for tests
("python-pytz" ,python2-pytz))) ; for tests
`(("python-setuptools-git" ,python-setuptools-git)
("python-mock" ,python-mock) ; for tests
("python-nose" ,python-nose) ; for tests
("python-pytz" ,python-pytz))) ; for tests
(home-page "https://github.com/YeoLab/clipper")
(synopsis "CLIP peak enrichment recognition")
(description
@ -2614,7 +2620,7 @@ with Python.")
(define-public delly
(package
(name "delly")
(version "0.7.9")
(version "0.8.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2622,7 +2628,7 @@ with Python.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "034jqsxswy9gqdh2zkgc1js99qkv75ks4xvzgmh0284sraagv61z"))
(base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
(modules '((guix build utils)))
(snippet
'(begin
@ -2646,9 +2652,9 @@ with Python.")
#t))))))
(inputs
`(("boost" ,boost)
("bzip2" ,bzip2)
("htslib" ,htslib)
("zlib" ,zlib)
("bzip2" ,bzip2)))
("zlib" ,zlib)))
(home-page "https://github.com/dellytools/delly")
(synopsis "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
`(("unzip" ,unzip) ; needed for archive from ftp
("perl" ,perl)
("pandoc" ,ghc-pandoc))) ; for documentation
("pandoc" ,pandoc))) ; for documentation
(home-page "https://ccb.jhu.edu/software/hisat2/index.shtml")
(synopsis "Graph-based alignment of genomic sequencing reads")
(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
(package
(name "r-biocviews")
(version "1.56.1")
(version "1.56.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biocViews" version))
(sha256
(base32
"0zcx8gha3x3jc0ra6ii6wwq2vfsmffrrnilknbq8h5xjrl55m6ci"))))
"0kw0qfm1fw5yv2rbz6x23431rh0fnzj66f2bls7j285biyjmmx7w"))))
(properties
`((upstream-name . "biocViews")))
(build-system r-build-system)
@ -7894,13 +7900,13 @@ on Bioconductor or which replace R functions.")
(define-public r-annotationdbi
(package
(name "r-annotationdbi")
(version "1.50.1")
(version "1.50.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version))
(sha256
(base32
"00pd8lsdppxlmx0l65phw0jhsm0qkwjc4wsdxpvgc31iiz9yslbj"))))
"0qcxfn4pvaksna0nvxr74ysn2wzaxn732pkhd6ffrj8pwhkhy5p3"))))
(properties
`((upstream-name . "AnnotationDbi")))
(build-system r-build-system)
@ -8059,13 +8065,13 @@ tab-delimited (tabix) files.")
(define-public r-delayedarray
(package
(name "r-delayedarray")
(version "0.14.0")
(version "0.14.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "DelayedArray" version))
(sha256
(base32
"1lz7a0rrlfv3w44n073mk8pw39z7lfs0njdxp5vpp0rdsmvdf1qk"))))
"0xi0i621hrl7k9rsc8x8nc3ib74sk8hxhbyr2lxqclw45pk95s7v"))))
(properties
`((upstream-name . "DelayedArray")))
(build-system r-build-system)
@ -8699,7 +8705,7 @@ paired-end data.")
("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown)
("r-s4vectors" ,r-s4vectors)
("pandoc" ,ghc-pandoc)))
("pandoc" ,pandoc)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(synopsis "RNA-centric annotation system")
@ -9831,13 +9837,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
(version "3.1.5")
(version "3.2.0")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
"1lbq2pqhb6ih6iqawlnzdh05zff71pwbw1cpfv2sld3pd7kz0zkm"))))
"1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@ -9854,11 +9860,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-ica" ,r-ica)
("r-igraph" ,r-igraph)
("r-irlba" ,r-irlba)
("r-jsonlite" ,r-jsonlite)
("r-kernsmooth" ,r-kernsmooth)
("r-leiden" ,r-leiden)
("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass)
("r-matrix" ,r-matrix)
("r-miniui" ,r-miniui)
("r-patchwork" ,r-patchwork)
("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly)
@ -9876,7 +9884,9 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-rtsne" ,r-rtsne)
("r-scales" ,r-scales)
("r-sctransform" ,r-sctransform)
("r-tsne" ,r-tsne)
("r-shiny" ,r-shiny)
("r-spatstat" ,r-spatstat)
("r-tibble" ,r-tibble)
("r-uwot" ,r-uwot)))
(home-page "http://www.satijalab.org/seurat")
(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
(package
(name "r-annotationhub")
(version "2.20.0")
(version "2.20.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationHub" version))
(sha256
(base32
"0r4xzf93bm9cpys5cg70wg0b8hxli80hvqwgh4hzbd45yyf5c4wz"))))
"04bz91m2wx1zm61rvpr0syyklz232fw74wrl73d965wi3x8fyda5"))))
(properties `((upstream-name . "AnnotationHub")))
(build-system r-build-system)
(propagated-inputs
@ -10115,17 +10125,18 @@ microarrays or GRanges for sequencing data.")
(define-public r-gage
(package
(name "r-gage")
(version "2.37.0")
(version "2.38.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "gage" version))
(sha256
(base32
"1zfaas4x6g7wiml6cmxa7b4f43az9s0lrw80k6sf7c96hsh1jijr"))))
"1bqmvjiya1df0b3h491lp1jxahiyidvaf9n094z0sk84x5y3xh2p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
("r-go-db" ,r-go-db)
("r-graph" ,r-graph)
("r-keggrest" ,r-keggrest)))
(home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
@ -10178,14 +10189,14 @@ provide added flexibility for data combination and manipulation.")
(define-public r-complexheatmap
(package
(name "r-complexheatmap")
(version "2.4.2")
(version "2.4.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ComplexHeatmap" version))
(sha256
(base32
"01jxxwxhf9n8baxgja4rb592p5210s4ppd7a5b4xby5aalhzkr0l"))))
"1gx0hzrkla92pgmfkrm2zp0ccnhizq6rs26zgzpi5x8a5lvghh5q"))))
(properties
`((upstream-name . "ComplexHeatmap")))
(build-system r-build-system)
@ -11862,6 +11873,9 @@ straight away. Its main features are:
(snippet
'(begin
(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))))
(build-system gnu-build-system)
(arguments
@ -12941,8 +12955,8 @@ once. This package provides tools to perform Drop-seq analyses.")
("r-rtracklayer" ,r-rtracklayer)
("r-rjson" ,r-rjson)
("salmon" ,salmon)
("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)))
(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
(package
(name "pigx-chipseq")
(version "0.0.42")
(version "0.0.43")
(source (origin
(method url-fetch)
(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"))
(sha256
(base32
"0xbvgqpk32a8iczhvac56cacr46rdkqb0allhhpvmj940idf72bi"))))
"0426i31b7mqqkbss5dgrvf5prkj4z1qrd7yrpd27vybs01xhdlks"))))
(build-system gnu-build-system)
;; parts of the tests rely on access to the network
(arguments '(#:tests? #f))
@ -13003,8 +13017,8 @@ expression report comparing samples in an easily configurable manner.")
("macs" ,macs)
("multiqc" ,multiqc)
("perl" ,perl)
("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)
("fastqc" ,fastqc)
("bowtie" ,bowtie)
("idr" ,idr)
@ -13028,7 +13042,7 @@ in an easily configurable manner.")
(define-public pigx-bsseq
(package
(name "pigx-bsseq")
(version "0.0.10")
(version "0.1.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@ -13036,10 +13050,13 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz"))
(sha256
(base32
"0l97wvkq4diq8lcarraj33bby1zzf0w804jwi8mlc5qddp8idwhy"))))
"0mpzlay2d5cjpmrcp7knff6rg1c2mqszd638n7lw0mc0cycbp9f8"))))
(build-system gnu-build-system)
(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
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
@ -13059,22 +13076,27 @@ in an easily configurable manner.")
("r-annotationhub" ,r-annotationhub)
("r-dt" ,r-dt)
("r-genomation" ,r-genomation)
("r-ggrepel" ,r-ggrepel)
("r-methylkit" ,r-methylkit)
("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown)
("r-bookdown" ,r-bookdown)
("r-ggplot2" ,r-ggplot2)
("r-ggbio" ,r-ggbio)
("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)
("snakemake" ,snakemake)
("bismark" ,bismark)
("fastqc" ,fastqc)
("bowtie" ,bowtie)
("bwa-meth" ,bwa-meth)
("fastqc" ,fastqc)
("methyldackel" ,methyldackel)
("multiqc" ,multiqc)
("trim-galore" ,trim-galore)
("cutadapt" ,cutadapt)
("samblaster" ,samblaster)
("samtools" ,samtools)))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
@ -13110,8 +13132,8 @@ methylation and segmentation.")
("python-magic" ,python-magic)
("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy)
("ghc-pandoc" ,ghc-pandoc)
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
("pandoc" ,pandoc)
("pandoc-citeproc" ,pandoc-citeproc)
("samtools" ,samtools)
("snakemake" ,snakemake)
("star" ,star)
@ -15378,12 +15400,34 @@ mutations from scRNA-Seq data.")
(string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
(string-append "INCLUDES= -I" htslib-ref "/include/htslib")
"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
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "tabix++" bin))
#t)))))
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(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")
(synopsis "C++ wrapper around tabix project")
(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
(modify-phases %standard-phases
(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
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib")))
(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)))))
(home-page "https://github.com/ekg/smithwaterman")
(synopsis "Implementation of the Smith-Waterman algorithm")
@ -15506,10 +15582,43 @@ neural networks.")
#:phases
(modify-phases %standard-phases
(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
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "fastahack" bin))
(let* ((out (assoc-ref outputs "out"))
(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)))))
(home-page "https://github.com/ekg/fastahack")
(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"))
(sha256
(base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
(patches (search-patches "vcflib-use-shared-libraries.patch"))
(modules '((guix build utils)))
(snippet
`(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
'("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
"libVCFH" "multichoose" "smithwaterman" "tabixpp"))
@ -15542,34 +15658,34 @@ library automatically handles index file generation and use.")
(build-system gnu-build-system)
(inputs
`(("htslib" ,htslib)
("fastahack" ,fastahack)
("perl" ,perl)
("python" ,python)
("smithwaterman" ,smithwaterman)
("tabixpp" ,tabixpp)
("xz" ,xz)
("zlib" ,zlib)))
(native-inputs
`(;; Submodules.
`(("pkg-config" ,pkg-config)
;; Submodules.
;; This package builds against the .o files so we need to extract the source.
("fastahack-src" ,(package-source fastahack))
("filevercmp-src" ,(package-source filevercmp))
("fsom-src" ,(package-source fsom))
("intervaltree-src" ,(package-source intervaltree))
("multichoose-src" ,(package-source multichoose))
("smithwaterman-src" ,(package-source smithwaterman))
("tabixpp-src" ,(package-source tabixpp))))
("multichoose-src" ,(package-source multichoose))))
(arguments
`(#: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
(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 'check)
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
@ -15581,34 +15697,39 @@ library automatically handles index file generation and use.")
(assoc-ref inputs source)
"--strip-components=1"))))))
(and
(unpack "fastahack-src" "fastahack")
(unpack "filevercmp-src" "filevercmp")
(unpack "fsom-src" "fsom")
(unpack "intervaltree-src" "intervaltree")
(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))))
(unpack "multichoose-src" "multichoose")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
(lib (string-append (assoc-ref outputs "out") "/lib")))
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib")))
(for-each (lambda (file)
(install-file file bin))
(find-files "bin" ".*"))
;; The header files in src/ do not interface libvcflib,
;; therefore they are left out.
(install-file "libvcflib.a" lib))
(install-file "libvcflib.so" 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)))))
(home-page "https://github.com/vcflib/vcflib/")
(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
(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
;; The latest release is older more than a year than the latest commit
(let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -57,12 +58,14 @@
(inputs `(("flex" ,flex)))
(propagated-inputs `(("m4" ,m4)))
(home-page "https://www.gnu.org/software/bison/")
(synopsis "Parser generator")
(synopsis "Yacc-compatible parser generator")
(description
"GNU Bison is a general-purpose parser generator. It can build a
deterministic or generalized LR parser from an annotated, context-free
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+)))
(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
(package
(name "libtorrent-rasterbar")
(version "1.2.7")
(source (origin
(method url-fetch)
(uri
(string-append
"https://github.com/arvidn/libtorrent/releases/download/libtorrent_"
(string-join (string-split version #\.) "_")
"/libtorrent-rasterbar-" version ".tar.gz"))
(sha256
(base32
"001g35janbxi20c7jzsf3ii9mkagz4kdsp7f3sz5r0n0cng0c05w"))))
(version "1.2.8")
(source
(origin
(method url-fetch)
(uri
(string-append "https://github.com/arvidn/libtorrent/"
"releases/download/libtorrent-" version "/"
"libtorrent-rasterbar-" version ".tar.gz"))
(sha256
(base32 "1phn4klzvfzvidv5g566pnrrxj8l0givpy6s4r17d45wznqxc006"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -402,9 +401,9 @@ and will take advantage of multiple processor cores where possible.")
(native-inputs `(("python" ,python-wrapper)
("pkg-config" ,pkg-config)))
(home-page "https://www.libtorrent.org/")
(synopsis "Feature complete BitTorrent implementation")
(synopsis "Feature-complete BitTorrent implementation")
(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
desktops.")
(license l:bsd-2)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; 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 Stefan Reichoer <stefan@xsteve.at>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
@ -46,6 +46,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#: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
@code{hdate}, and some snippets and scripts written in the binding languages.")
(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 Josh Marshall <joshua.r.marshall.1991@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -75,11 +76,62 @@
#:use-module (guix download)
#:use-module (guix git-download)
#: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 go)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#: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
(package
(name "check")
@ -297,7 +349,7 @@ a multi-paradigm automated test framework for C++ and Objective-C.")
(define-public catch-framework2
(package
(name "catch2")
(version "2.1.2")
(version "2.13.0")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(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))
(sha256
(base32
"14vcckqmbydjsg40ngi6iv999zimysh2l7fmrqj1d7xl990qz233"))))
"0i4w0c9280a5fyi00mvvf13wlnfzyifr487n1iyr30zvvj5s5f1h"))))
(build-system cmake-build-system)
(inputs
`(("python" ,python-wrapper)))
@ -1836,6 +1888,18 @@ seamlessly into your existing Python unit testing work flow.")
(license license:mpl2.0)
(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.
(define-public python2-hypothesis
(let ((hypothesis (package-with-python2
@ -1852,6 +1916,29 @@ seamlessly into your existing Python unit testing work flow.")
`(("python2-enum34" ,python2-enum34)
,@(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
(package
(name "python-lit")
@ -1910,13 +1997,13 @@ failures.")
(define-public python-pytest-flakes
(package
(name "python-pytest-flakes")
(version "4.0.0")
(version "4.0.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-flakes" version))
(sha256
(base32
"0hyind0gb950v9kfy0v97x66fb33slbqmxhrjvgbvsv0ayzn869l"))))
"0045h3hnrkn2jwr42jgy2j98npx4amwr6wxzi9j0nppaqz33l49p"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -2606,7 +2693,7 @@ provides a simple way to achieve this.")
(define-public umockdev
(package
(name "umockdev")
(version "0.14.1")
(version "0.14.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/martinpitt/umockdev/"
@ -2614,7 +2701,7 @@ provides a simple way to achieve this.")
"umockdev-" version ".tar.xz"))
(sha256
(base32
"1g78jcrvb7yyh0q5kv5409wjqf8nlfqnw1rknm3a247mcx317dpz"))))
"1nh6xsssmssmk0lxp9c9dmq3wzlpbpkg77nmmd09csbpybibgxfp"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -240,7 +240,9 @@ and 32-bit PowerPC architectures.")
`(("chez-scheme" ,chez-scheme)))
(arguments
`(#: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"
#:phases (modify-phases %standard-phases
(delete 'configure))))
@ -414,9 +416,13 @@ Chez Scheme.")
;; files.
(define (chez-make-flags name version)
`(let ((out (assoc-ref %outputs "out")))
(list (string-append "PREFIX=" out)
(string-append "DOCDIR=" out "/share/doc/"
,name "-" ,version))))
(list
;; Set 'chezversion' so that libraries are installed in
;; '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
(package

View File

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

View File

@ -47,8 +47,8 @@
#:use-module (guix build-system gnu))
(define-public cuirass
(let ((commit "136a8295e4e09724eccc230c127fb880aa84b57d")
(revision "38"))
(let ((commit "f2984c7230f69a6e50810edc5e9d36bd671801f9")
(revision "43"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@ -60,7 +60,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"04fzc2q8cd02dnlrarzlxq0yfi90735s5f6dw7g2k63rbxlhcq8j"))))
"1p9mlmhv4kz8wixgywh1ffm3140p4mkgz92n7ry3n5s9w5n7fpjl"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@ -93,8 +93,10 @@
(git (assoc-ref inputs "guile-git"))
(bytes (assoc-ref inputs "guile-bytestructures"))
(fibers (assoc-ref inputs "guile-fibers"))
(zlib (assoc-ref inputs "guile-zlib"))
(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"))
(effective (read-line
(open-pipe* OPEN_READ
@ -126,6 +128,7 @@
("guile-json" ,guile-json-4)
("guile-sqlite3" ,guile-sqlite3)
("guile-git" ,guile-git)
("guile-zlib" ,guile-zlib)
;; FIXME: this is propagated by "guile-git", but it needs to be among
;; the inputs to add it to GUILE_LOAD_PATH.
("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
(package
(name "global")
(version "6.6.4")
(version "6.6.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/global/global-"
version ".tar.gz"))
(sha256
(base32
"1515642wsjz7x3rsgaqk4sc7n0z2znl7idsk8jz8wgy5aswqqzlq"))))
"10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)
("libltdl" ,libltdl)

View File

@ -915,7 +915,7 @@ multiple processors and multiple cores when compressing data.")
(define-public pixz
(package
(name "pixz")
(version "1.0.6")
(version "1.0.7")
(source (origin
(method url-fetch)
(uri (string-append
@ -923,7 +923,7 @@ multiple processors and multiple cores when compressing data.")
"/pixz-" version ".tar.xz"))
(sha256
(base32
"1s3j7zw6j5zi3fhdxg287ndr3wf6swac7z21mqd1pyiln530gi82"))))
"1ifxr18f2h75gkcrkx8033kwmwmrcgxshpaawyc2n4dzn1p2rqz5"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -1807,20 +1807,18 @@ single-member files which can't be decompressed in parallel.")
(define-public innoextract
(package
(name "innoextract")
(version "1.8")
(version "1.9")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dscharrer/innoextract/releases"
"/download/" version
(uri (string-append "https://constexpr.org/innoextract/files/"
"innoextract-" version "/"
"/innoextract-" version ".tar.gz"))
(sha256
(base32
"0saj50n8ds85shygy4mq1h6s99510r9wgjjdll4dmvhra4lzcy2y"))))
(base32 "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f
#:configure-flags '("-DBoost_NO_BOOST_CMAKE=ON")))
`(#:tests? #f))
(inputs `(("boost" ,boost)
("libiconv" ,libiconv)
("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
;;; 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 Vasile Dumitrascu <va511e@yahoo.com>
;;;
@ -39,7 +39,7 @@
(package
(name "conky")
(home-page "https://github.com/brndnmtthws/conky")
(version "1.11.5")
(version "1.11.6")
(source
(origin
(method git-fetch)
@ -48,7 +48,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1a75ss48mn9pknrxy33dh5rdgm67a5kpddsyqfhlcn1761kfzzyp"))))
(base32 "0y2g66fjqp2hdk0y1h4ijxhnv34j16gizvxpmbigwh4n6zijcm6v"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests

View File

@ -11,6 +11,8 @@
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; 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.
;;;
@ -81,6 +83,42 @@ strings, configuration, bit streams, threading, translation, and cross-platform
operating system functions.")
(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
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "2"))
@ -246,7 +284,7 @@ as ordering relation.")
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
(version "3.7.3")
(version "3.9.1")
(home-page "https://github.com/nlohmann/json")
(source
(origin
@ -254,8 +292,7 @@ as ordering relation.")
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"04rry1xzis71z5gj1ylcj8b4li5q18zxhcwaviwvi3hx0frzxl9w"))
(base32 "0ar4mzp53lskxw3vdzw07f47njcshl3lwid9jfq6l7yx6ds2nyjc"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
@ -278,12 +315,40 @@ as ordering relation.")
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))
#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
`(("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
`(("fifo-map" ,fifo-map)))
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
intuitive syntax and trivial integration.")
@ -295,7 +360,7 @@ intuitive syntax and trivial integration.")
(define-public xtl
(package
(name "xtl")
(version "0.6.13")
(version "0.6.17")
(source (origin
(method git-fetch)
(uri
@ -304,7 +369,7 @@ intuitive syntax and trivial integration.")
(commit version)))
(sha256
(base32
"0py70lm2i3sxzpgca2cic8zfn6dn18q837h76a5fchl2c0kpxm91"))
"136djmx4l34ff5z4fw1c866x52vp7k4f8zcnbs49whymxzhzwpw0"))
(file-name (git-file-name name version))))
(native-inputs
`(("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 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Hendur Saga <hendursaga@yahoo.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,6 +54,8 @@
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux)
#:use-module (gnu packages lsof)
#:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
#:use-module (gnu packages password-utils)
#: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.")
(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
(package
(name "tomb")
@ -472,7 +518,7 @@ user's graphical desktop.")
(define-public scrypt
(package
(name "scrypt")
(version "1.2.1")
(version "1.3.1")
(source
(origin
(method url-fetch)
@ -480,20 +526,24 @@ user's graphical desktop.")
version ".tgz"))
(sha256
(base32
"0xy5yhrwwv13skv9im9vm76rybh9f29j2dh4hlh2x01gvbkza8a6"))))
"1hnl0r6pmyxiy4dmafmqk1db7wpc0x9rqpzqcwr9d2cmghcj6byz"))))
(build-system gnu-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-command-invocations
`(#:license-file-regexp "COPYRIGHT"
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-$PATH-assumptions
(lambda _
(substitute* "configure"
(("\\{POSIX_PATH\\}")
"{PATH}"))
(substitute* "Makefile.in"
(("command -p") ""))
#t))
(add-after 'install 'install-docs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out"))
(misc (string-append out "/share/doc/scrypt")))
(install-file "FORMAT" misc)
(doc (string-append out "/share/doc/" ,name "-" ,version)))
(install-file "FORMAT" doc)
#t))))))
(inputs
`(("openssl" ,openssl)))
@ -719,7 +769,7 @@ data on your platform, so the seed itself will be as random as possible.
"libdir=" out "/lib\n"
"includedir=" out "/include\n\n"
"Name: libcrypto++-" ,version "\n"
"Description: Class library of cryptographic schemes"
"Description: Class library of cryptographic schemes\n"
"Version: " ,version "\n"
"Libs: -L${libdir} -lcryptopp\n"
"Cflags: -I${includedir}\n"))
@ -1011,6 +1061,58 @@ Features:
(home-page "https://github.com/bitcoin-core/secp256k1")
(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
(package
(name "stoken")

View File

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

View File

@ -2,7 +2,8 @@
;;; Copyright © 2015, 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; 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.
;;;
@ -22,6 +23,7 @@
(define-module (gnu packages datastructures)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages boost)
#:use-module (gnu packages perl)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
@ -82,7 +84,7 @@ library.")
(define-public sparsehash
(package
(name "sparsehash")
(version "2.0.3")
(version "2.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -91,7 +93,7 @@ library.")
(file-name (git-file-name name version))
(sha256
(base32
"0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na"))))
"1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7"))))
(build-system gnu-build-system)
(synopsis "Memory-efficient hashtable implementations")
(description
@ -234,14 +236,34 @@ to the structure and choosing one or more fields to act as the key.")
"0m542xpys54bni29zibgrfpgpd0zgyny4h131virxsanixsbz52z")))))))
(build-system cmake-build-system)
(arguments
'(#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'install 'install-static-library
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-file "lib/libsdsl_static.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
`(("libdivsufsort" ,libdivsufsort)))
(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)
bytes of memory space, where n is the length of the string.")
(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 © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,29 +24,45 @@
#:use-module (guix download)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#: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-xyz)
#:use-module (gnu packages sphinx))
#:use-module (gnu packages sphinx)
#:use-module (gnu packages time)
#:use-module (gnu packages xml))
(define-public radicale
(package
(name "radicale")
(version "1.1.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "Radicale" version))
(sha256
(base32
"0ay90nj6fmr2aq8imi0mbjl4m2rzq7a83ikj8qs9gxsylj71j1y0"))))
(version "3.0.4")
(source
(origin
;; There are no tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
(url "https://github.com/Kozea/Radicale")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0hj9mmhrj32mzhxlnjcfijb7768cyjsn603nalp54clgb2gkmvw8"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; The tests are not distributed in the PyPi release.
(native-inputs
`(("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
;; TODO: Add python-pam
`(("python-requests" ,python-requests)))
`(("python-dateutil" ,python-dateutil)
("python-defusedxml" ,python-defusedxml)
("python-passlib" ,python-passlib)
("python-vobject" ,python-vobject)))
(synopsis "Basic CalDAV and CardDAV server")
(description "Radicale is a CalDAV and CardDAV server for UNIX-like
platforms. Calendars and address books are available for both local and remote
@ -58,6 +75,44 @@ clients.")
(home-page "https://radicale.org/")
(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
(package
(name "vdirsyncer")

View File

@ -202,7 +202,7 @@ unpacking them into a directory which can eventually be chrooted into.")
(define-public debianutils
(package
(name "debianutils")
(version "4.11")
(version "4.11.1")
(source (origin
(method git-fetch)
(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))
(sha256
(base32
"1fmhzvymajack7kh8g4qjbwd9mq85z6rxl1psd1sm67s5695i9rc"))))
"18ypb7fivch53wwrdf73yhf1fhkwn9kvw1kfdc1m450241d6191w"))))
(build-system gnu-build-system)
(arguments
'(#: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.
(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
(package
(name "rr")

View File

@ -205,14 +205,14 @@ It comes with a German-English dictionary with approximately 270,000 entries.")
(define-public grammalecte
(package
(name "grammalecte")
(version "1.10.0")
(version "1.12.0")
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://grammalecte.net/grammalecte/zip/"
"Grammalecte-fr-v" version ".zip"))
(sha256
(base32 "0lyngnvg995qdm9bhqj8vd8aywpcdqmzv3j4j77wxhsfa9k0pz08"))))
(base32 "1aifa7rj8zyxgk5cgmlgcws2hip7a7y6sr7kddjdnpfgdgy4jjgh"))))
(build-system python-build-system)
(home-page "https://grammalecte.net")
(synopsis "French spelling and grammar checker")

View File

@ -27,7 +27,7 @@
(define-public xxhash
(package
(name "xxhash")
(version "0.7.4")
(version "0.8.0")
(source
(origin
(method git-fetch)
@ -36,7 +36,7 @@
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "08j7wxshhzpyrnyilfnvhyv5ycm0yv5m7jf6q4kxcd7j4dcbhmpb"))))
(base32 "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags

View File

@ -12,7 +12,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; 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 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Pkill -9 <pkill9@runbox.com>
@ -520,7 +520,7 @@ a card with a smaller capacity than stated.")
(define-public python-parted
(package
(name "python-parted")
(version "3.11.2")
(version "3.11.6")
(source
(origin
(method git-fetch)
@ -529,7 +529,7 @@ a card with a smaller capacity than stated.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0r6916n3w4vldxrq30a3z2iagvxgly4vfmlidjm65vwqnyv17bvn"))))
(base32 "1xgrqhvn44vr3676j5sy2x3xfv2dzf7vncg25cmrsmkbd49x3z5j"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -555,9 +555,6 @@ a card with a smaller capacity than stated.")
(description "This package provides @code{parted} bindings for Python.")
(license license:gpl2+)))
(define-public python2-parted
(package-with-python2 python-parted))
(define-public duperemove
(package
(name "duperemove")
@ -692,7 +689,7 @@ passphrases.")
(define-public ndctl
(package
(name "ndctl")
(version "68")
(version "69")
(source (origin
(method git-fetch)
(uri (git-reference
@ -701,7 +698,7 @@ passphrases.")
(file-name (git-file-name name version))
(sha256
(base32
"0xmim7z4qp6x2ggndnbwd940c73pa1qlf3hxyn3qh5pyr69nh9y8"))))
"1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7"))))
(build-system gnu-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
@ -793,7 +790,7 @@ to create devices with respective mappings for the ATARAID sets discovered.")
(define-public libblockdev
(package
(name "libblockdev")
(version "2.23")
(version "2.24")
(source (origin
(method url-fetch)
(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"))
(sha256
(base32
"15c7g2gbkahmy8c6677pvbvblan5h8jxcqqmn6nlvqwqynq2mkjm"))))
"0wq7624pnprvfzrf39bq1cybd9lqwawbdg5bm0cchlpgvdq7q86w"))))
(build-system gnu-build-system)
(arguments
`(#: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!")
(home-page "http://roland65.free.fr/xfe/")
(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 base)
#:use-module (gnu packages bash)
#:use-module (gnu packages certs)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
@ -45,10 +46,12 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages groff)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libedit)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
@ -62,6 +65,7 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
#:use-module (gnu packages tls)
@ -73,10 +77,199 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#: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
(package
(name "dnsmasq")
@ -119,7 +312,8 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind
(package
(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
(method url-fetch)
(uri (string-append
@ -127,7 +321,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz"))
(sha256
(base32
"0xf07mmd0vi91jd15z8d3hhjva8v27l4ip4l8yzah4gg3zjv6y33"))))
"1jvi6ms51vyrhpflx05xlb7gblyd59zsyj28b8s3pl3xnkrv0rxm"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@ -609,14 +803,14 @@ Extensions} (DNSSEC).")
(define-public knot
(package
(name "knot")
(version "2.9.5")
(version "2.9.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
"knot-" version ".tar.xz"))
(sha256
(base32 "0xmzmhd2m9rb24clrrd9k058harsq67nyjplpbyxvy1g46xah28i"))
(base32 "1rxjjisr6rz1wa4279ghvj5zzhgyjhncmb9dkzqm8nw2qs1jhx5z"))
(modules '((guix build utils)))
(snippet
'(begin

View File

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

View File

@ -5,10 +5,11 @@
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; 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 © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -32,32 +33,84 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages python)
#:use-module (gnu packages bison)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages docbook)
#:use-module (gnu packages flex)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#: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
(package
(name "asciidoc")
(version "8.6.10")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/asciidoc/asciidoc/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/asciidoc/asciidoc")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly"))))
"1hrqkgjmp1gq3f9rkbr8l0y62fzvwb9n8ys35s25bg2ld04y4g4y"))))
(build-system gnu-build-system)
(arguments
`(#: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
local system.")
(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
(package
(name "dunst")
(version "1.4.1")
(version "1.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -45,7 +45,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2"))))
"0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target

View File

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

View File

@ -2,7 +2,7 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; 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 © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@ -28,7 +28,6 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages compression)

View File

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

View File

@ -27,8 +27,7 @@
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages erlang)
#:use-module (gnu packages version-control))
#:use-module (gnu packages erlang))
(define-public elixir
(package
@ -100,8 +99,7 @@
#t))
(delete 'configure))))
(inputs
`(("erlang" ,erlang)
("git" ,git)))
`(("erlang" ,erlang)))
(home-page "https://elixir-lang.org/")
(synopsis "Elixir programming language")
(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 Andreas Enge <andreas@enge.fr>
;;; 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 © 2016, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
@ -21,6 +21,7 @@
;;; Copyright © 2019 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2019 Amin Bandali <bandali@gnu.org>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -61,6 +62,7 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages linux) ; alsa-lib
#:use-module (gnu packages mail) ; for mailutils
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
@ -75,16 +77,17 @@
(define-public emacs
(package
(name "emacs")
(version "26.3")
(version "27.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz"))
(sha256
(base32
"119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d"))
"0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a"))
(patches (search-patches "emacs-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
"emacs-ignore-empty-xim-styles.patch"
"emacs-source-date-epoch.patch"))
(modules '((guix build utils)))
(snippet
@ -94,15 +97,7 @@
(for-each delete-file
(append (find-files "." "\\.elc$")
(find-files "." "loaddefs\\.el$")
;; This is the only "autoloads" file that
;; 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")))
(find-files "eshell" "^esh-groups\\.el$")))
;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns
@ -129,6 +124,7 @@
(arguments
`(#:tests? #f ; no check target
#:configure-flags (list "--with-modules"
"--with-cairo"
"--disable-build-details")
#:phases
(modify-phases %standard-phases
@ -155,7 +151,7 @@
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(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.
(define* (emacs-byte-compile-directory dir)
@ -179,7 +175,42 @@
;; which leads to conflicts.
(delete-file (string-append lisp-dir "/subdirs.el"))
;; 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
`(("gnutls" ,gnutls)
("ncurses" ,ncurses)
@ -191,12 +222,16 @@
;; TODO: Add the optional dependencies.
("libx11" ,libx11)
("gtk+" ,gtk+)
("cairo" ,cairo)
("pango" ,pango)
("harfbuzz" ,harfbuzz)
("libxft" ,libxft)
("libtiff" ,libtiff)
("giflib" ,giflib)
("libjpeg" ,libjpeg-turbo)
("imagemagick" ,imagemagick)
("acl" ,acl)
("jansson" ,jansson)
("gmp" ,gmp)
;; When looking for libpng `configure' links with `-lpng -lz', so we
;; must also provide zlib as an input.
@ -243,117 +278,57 @@ languages.")
(license license:gpl3+)))
(define-public emacs-next
(let ((commit "c36c5a3dedbb2e0349be1b6c3b7567ea7b594f1c")
(let ((commit "2ea34662c20f71d35dd52a5ed996542c7386b9cb")
(revision "0")
(emacs-version "27.0.91"))
(package
(inherit emacs)
(emacs-version "28.0.50.1"))
(package/inherit emacs
(name "emacs-next")
(version (git-version emacs-version revision commit))
(source
(origin
(inherit (package-source emacs))
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/emacs.git")
(url "https://git.savannah.gnu.org/git/emacs.git/")
(commit commit)))
(sha256
(base32 "0mlrg2npy1r79laahkgzhxd1qassfcdz8qk1cpw7mqgf6y5x505h"))
(file-name (git-file-name name version))
(patches (search-patches "emacs27-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
"emacs-source-date-epoch.patch"))
(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))))
(sha256
(base32
"0igjm9kwiswn2dpiy2k9xikbdfc7njs07ry48fqz70anljj8y7y3"))))
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags)
`(cons* "--with-harfbuzz" ,flags))
((#:phases phases)
`(modify-phases ,phases
;; The 'reset-gzip-timestamps phase will throw a
;; permission error if gzip files aren't writable then
(add-before
'reset-gzip-timestamps
'make-compressed-files-writable
(lambda _
(for-each make-file-writable
(find-files %output ".*\\.t?gz$"))
#t))
;; restore the dump file that Emacs installs somewhere in
;; 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)
(replace '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+point (package-version emacs-next)))
"bin/emacs")
#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
`(("autoconf" ,autoconf) ; needed when building from trunk
,@(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"))))))))
`(("autoconf" ,autoconf)
,@(package-native-inputs emacs))))))
(define-public emacs-minimal
;; This is the version that you should use as an input to packages that just
;; need to byte-compile .el files.
(package (inherit emacs)
(package/inherit emacs
(name "emacs-minimal")
(synopsis "The extensible text editor (used only for byte-compilation)")
(build-system gnu-build-system)
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#: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
`(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
("ncurses" ,ncurses)))
@ -361,8 +336,7 @@ languages.")
`(("pkg-config" ,pkg-config)))))
(define-public emacs-xwidgets
(package
(inherit emacs)
(package/inherit emacs
(name "emacs-xwidgets")
(synopsis "The extensible, customizable, self-documenting text
editor (with xwidgets support)")
@ -370,14 +344,18 @@ editor (with xwidgets support)")
(arguments
(substitute-keyword-arguments (package-arguments emacs)
((#: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
`(("webkitgtk" ,webkitgtk)
("libxcomposite" ,libxcomposite)
,@(package-inputs emacs)))))
(define-public emacs-no-x
(package (inherit emacs)
(package/inherit emacs
(name "emacs-no-x")
(synopsis "The extensible, customizable, self-documenting text
editor (console only)")
@ -386,13 +364,21 @@ editor (console only)")
(package-inputs emacs)
'("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
"imagemagick" "libpng" "librsvg" "libxpm" "libice"
"libsm"
"libsm" "cairo" "pango" "harfbuzz"
;; 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
(package (inherit emacs)
(package/inherit emacs
(name "emacs-no-x-toolkit")
(synopsis "The extensible, customizable, self-documenting text
editor (without an X toolkit)" )
@ -400,13 +386,16 @@ editor (without an X toolkit)" )
(inputs (append `(("inotify-tools" ,inotify-tools))
(alist-delete "gtk+" (package-inputs emacs))))
(arguments
`(,@(substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags cf)
`(cons "--with-x-toolkit=no" ,cf)))))))
(substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags ''())
`(cons "--with-x-toolkit=no" ,flags))
((#:phases phases)
`(modify-phases ,phases
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))))
(define-public emacs-wide-int
(package
(inherit emacs)
(package/inherit emacs
(name "emacs-wide-int")
(synopsis "The extensible, customizable, self-documenting text
editor (with wide ints)" )
@ -418,7 +407,7 @@ editor (with wide ints)" )
(define-public guile-emacs
(let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")
(revision "0"))
(package (inherit emacs)
(package/inherit emacs
(name "guile-emacs")
(version (git-version "0.0.0" revision commit))
(source (origin
@ -442,6 +431,8 @@ editor (with wide ints)" )
;; Tests aren't passing for now.
#:tests? #f
,@(package-arguments emacs))
((#:configure-flags flags ''())
`(delete "--with-cairo" ,flags))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'autogen
@ -450,7 +441,9 @@ editor (with wide ints)" )
;; Build sometimes fails: deps/dispnew.d: No such file or directory
(add-before 'build 'make-deps-dir
(lambda _
(invoke "mkdir" "-p" "src/deps"))))))))))
(invoke "mkdir" "-p" "src/deps")))
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap))))))))
(define-public m17n-db
(package

View File

@ -251,8 +251,7 @@ usable on embedded products.")
(origin-patches (package-source gcc-7))
(search-patches "gcc-7-cross-environment-variables.patch")))))
(native-inputs
`(("gcc@5" ,gcc-5)
("flex" ,flex)
`(("flex" ,flex)
("isl" ,isl-0.18)
,@(alist-delete "isl" (package-native-inputs xgcc))))
(arguments
@ -1162,14 +1161,14 @@ SPI, I2C, JTAG.")
(define-public fc-host-tools
(package
(name "fc-host-tools")
(version "11")
(version "13")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.freecalypso.org/pub/GSM/"
"FreeCalypso/fc-host-tools-r" version ".tar.bz2"))
(sha256
(base32
"0s87lp6gd8i8ivrdd7mnnalysr65035nambcm992rgla7sk76sj1"))))
"0bpxz4y0z3hmlirzvfwq0k45yzn9fzgqs9r1fpkrhn48gr2zrpa8"))))
(build-system gnu-build-system)
(arguments
`(#: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-smsendpdu: Send multiple short messages given in PDU format via SMS
@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")
(home-page "https://www.freecalypso.org/")
(license license:public-domain)))

View File

@ -5,7 +5,7 @@
;;; Copyright © 2015, 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2018 David Thompson <dthompson2@worcester.edu>
;;; 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, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; 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.")
(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
;; No release for a long time, new commits fix build issues
(let ((commit "9cc42adff67946175d2b7e25c6ae69cc374e98a0")
@ -479,7 +537,7 @@ The following systems are supported:
(define-public mgba
(package
(name "mgba")
(version "0.8.2")
(version "0.8.3")
(source
(origin
(method git-fetch)
@ -488,7 +546,7 @@ The following systems are supported:
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dlwhn3hrpaqnl5hjs53y8j2i16idxrg3gy688gcwrc9z1a6bkn2"))
(base32 "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@ -535,7 +593,7 @@ and Game Boy Color games.")
(define-public sameboy
(package
(name "sameboy")
(version "0.13.3")
(version "0.13.6")
(source
(origin
(method git-fetch)
@ -544,7 +602,7 @@ and Game Boy Color games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1mv5a7p6plz0359l3z9g232rgaq2h3yby5949ps0s88cxj94w9qm"))))
(base32 "04w8lybi7ssnax37ka4qw7pmcm7cgnmk90p9m73zbyp5chgpqqzc"))))
(build-system gnu-build-system)
(native-inputs
`(("rgbds" ,rgbds)
@ -1339,7 +1397,7 @@ play them on systems for which they were never designed!")
(define-public mame
(package
(name "mame")
(version "0.222")
(version "0.224")
(source
(origin
(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 #\.)))))
(file-name (git-file-name name version))
(sha256
(base32 "1bfnwfxsnmza4s77ca0cyx4b290dwadkbbc2lyd7xa0yqrh7vvlx"))
(base32 "0dpg4hz2f1wlp0rmk5c5xq57fy0sblh97z3l66p814wkgzap4bhx"))
(modules '((guix build utils)))
(snippet
;; Remove bundled libraries.

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