summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2020-06-27 10:23:11 +0200
committerMarius Bakke <marius@gnu.org>2020-06-27 10:23:11 +0200
commit425fd7eb6a5f07eb9b854a5a29488e6f0b0acf3c (patch)
tree44479010890dd9aaf8bc52cab73f7c241a2fd9ea
parentfe9f2d150019b9fc17f08f5a002d7ca932fc3eb0 (diff)
parent88dbef3b9868a565da1eba37c9d409cce972becc (diff)
downloadguix-patches-425fd7eb6a5f07eb9b854a5a29488e6f0b0acf3c.tar
guix-patches-425fd7eb6a5f07eb9b854a5a29488e6f0b0acf3c.tar.gz
Merge branch 'master' into staging
-rw-r--r--.dir-locals.el2
-rw-r--r--.guix-channel4
-rw-r--r--Makefile.am1
-rw-r--r--build-aux/git-authenticate.scm31
-rw-r--r--configure.ac1
-rw-r--r--doc/contributing.texi54
-rw-r--r--doc/guix-cookbook.texi34
-rw-r--r--doc/guix.texi213
-rwxr-xr-xetc/committer.scm.in250
-rw-r--r--etc/news.scm74
-rw-r--r--gnu/build/hurd-boot.scm190
-rw-r--r--gnu/build/image.scm18
-rw-r--r--gnu/build/vm.scm13
-rw-r--r--gnu/ci.scm72
-rw-r--r--gnu/image.scm2
-rw-r--r--gnu/installer.scm3
-rw-r--r--gnu/installer/final.scm6
-rw-r--r--gnu/installer/newt/final.scm8
-rw-r--r--gnu/local.mk25
-rw-r--r--gnu/machine/ssh.scm7
-rw-r--r--gnu/packages/admin.scm22
-rw-r--r--gnu/packages/algebra.scm42
-rw-r--r--gnu/packages/audio.scm93
-rw-r--r--gnu/packages/base.scm20
-rw-r--r--gnu/packages/bioconductor.scm54
-rw-r--r--gnu/packages/bioinformatics.scm124
-rw-r--r--gnu/packages/bison.scm12
-rw-r--r--gnu/packages/bittorrent.scm9
-rw-r--r--gnu/packages/bootloaders.scm6
-rw-r--r--gnu/packages/build-tools.scm85
-rw-r--r--gnu/packages/busybox.scm14
-rw-r--r--gnu/packages/c.scm37
-rw-r--r--gnu/packages/cdrom.scm51
-rw-r--r--gnu/packages/check.scm88
-rw-r--r--gnu/packages/chromium.scm363
-rw-r--r--gnu/packages/ci.scm8
-rw-r--r--gnu/packages/convmv.scm60
-rw-r--r--gnu/packages/cran.scm446
-rw-r--r--gnu/packages/crates-io.scm1174
-rw-r--r--gnu/packages/cross-base.scm2
-rw-r--r--gnu/packages/crypto.scm4
-rw-r--r--gnu/packages/cups.scm8
-rw-r--r--gnu/packages/curl.scm26
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/debian.scm6
-rw-r--r--gnu/packages/diffoscope.scm36
-rw-r--r--gnu/packages/dns.scm7
-rw-r--r--gnu/packages/docbook.scm58
-rw-r--r--gnu/packages/docker.scm13
-rw-r--r--gnu/packages/efi.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm607
-rw-r--r--gnu/packages/emulators.scm166
-rw-r--r--gnu/packages/engineering.scm89
-rw-r--r--gnu/packages/enlightenment.scm9
-rw-r--r--gnu/packages/fonts.scm120
-rw-r--r--gnu/packages/fontutils.scm24
-rw-r--r--gnu/packages/game-development.scm57
-rw-r--r--gnu/packages/games.scm473
-rw-r--r--gnu/packages/gdb.scm51
-rw-r--r--gnu/packages/geo.scm7
-rw-r--r--gnu/packages/gettext.scm6
-rw-r--r--gnu/packages/gimp.scm12
-rw-r--r--gnu/packages/glib.scm6
-rw-r--r--gnu/packages/gnome-xyz.scm10
-rw-r--r--gnu/packages/gnome.scm68
-rw-r--r--gnu/packages/gnunet.scm10
-rw-r--r--gnu/packages/gnuzilla.scm6
-rw-r--r--gnu/packages/golang.scm217
-rw-r--r--gnu/packages/graph.scm74
-rw-r--r--gnu/packages/graphics.scm8
-rw-r--r--gnu/packages/guile-xyz.scm298
-rw-r--r--gnu/packages/guile.scm15
-rw-r--r--gnu/packages/haskell-apps.scm56
-rw-r--r--gnu/packages/haskell-web.scm22
-rw-r--r--gnu/packages/haskell-xyz.scm48
-rw-r--r--gnu/packages/hurd.scm14
-rw-r--r--gnu/packages/icu4c.scm16
-rw-r--r--gnu/packages/image-processing.scm38
-rw-r--r--gnu/packages/inkscape.scm11
-rw-r--r--gnu/packages/ipfs.scm5
-rw-r--r--gnu/packages/irc.scm3
-rw-r--r--gnu/packages/java.scm70
-rw-r--r--gnu/packages/kde-multimedia.scm43
-rw-r--r--gnu/packages/kde.scm10
-rw-r--r--gnu/packages/kodi.scm4
-rw-r--r--gnu/packages/libusb.scm10
-rw-r--r--gnu/packages/linphone.scm8
-rw-r--r--gnu/packages/linux.scm105
-rw-r--r--gnu/packages/lisp-xyz.scm267
-rw-r--r--gnu/packages/lua.scm167
-rw-r--r--gnu/packages/lxde.scm14
-rw-r--r--gnu/packages/machine-learning.scm19
-rw-r--r--gnu/packages/mail.scm43
-rw-r--r--gnu/packages/mate.scm20
-rw-r--r--gnu/packages/maths.scm1
-rw-r--r--gnu/packages/messaging.scm123
-rw-r--r--gnu/packages/mpd.scm12
-rw-r--r--gnu/packages/music.scm6
-rw-r--r--gnu/packages/networking.scm207
-rw-r--r--gnu/packages/ocaml.scm15
-rw-r--r--gnu/packages/openkinect.scm1
-rw-r--r--gnu/packages/package-management.scm37
-rw-r--r--gnu/packages/pantheon.scm65
-rw-r--r--gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch522
-rw-r--r--gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch68
-rw-r--r--gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch86
-rw-r--r--gnu/packages/patches/ffmpeg-prefer-dav1d.patch43
-rw-r--r--gnu/packages/patches/gdb-hurd.patch69
-rw-r--r--gnu/packages/patches/grub-cross-system-i686.patch79
-rw-r--r--gnu/packages/patches/iputils-libcap-compat.patch37
-rw-r--r--gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch31
-rw-r--r--gnu/packages/patches/lib2geom-fix-tests.patch172
-rw-r--r--gnu/packages/patches/lib2geom-link-tests-against-glib.patch34
-rw-r--r--gnu/packages/patches/lib2geom-use-system-googletest.patch94
-rw-r--r--gnu/packages/patches/python-memcached-syntax-warnings.patch24
-rw-r--r--gnu/packages/patches/quassel-qt-514-compat.patch130
-rw-r--r--gnu/packages/patches/sssd-fix-samba.patch50
-rw-r--r--gnu/packages/patches/tup-unbundle-dependencies.patch66
-rw-r--r--gnu/packages/patches/ungoogled-chromium-system-jsoncpp.patch65
-rw-r--r--gnu/packages/patches/ungoogled-chromium-system-zlib.patch47
-rw-r--r--gnu/packages/patches/xmoto-remove-glext.patch23
-rw-r--r--gnu/packages/patches/xmoto-reproducible.patch24
-rw-r--r--gnu/packages/patches/xmoto-utf8.patch16
-rw-r--r--gnu/packages/perl-check.scm56
-rw-r--r--gnu/packages/perl-compression.scm34
-rw-r--r--gnu/packages/perl.scm566
-rw-r--r--gnu/packages/photo.scm123
-rw-r--r--gnu/packages/python-check.scm47
-rw-r--r--gnu/packages/python-compression.scm1
-rw-r--r--gnu/packages/python-science.scm129
-rw-r--r--gnu/packages/python-web.scm48
-rw-r--r--gnu/packages/python-xyz.scm395
-rw-r--r--gnu/packages/radio.scm64
-rw-r--r--gnu/packages/ruby.scm69
-rw-r--r--gnu/packages/rust-apps.scm37
-rw-r--r--gnu/packages/sdl.scm15
-rw-r--r--gnu/packages/search.scm8
-rw-r--r--gnu/packages/sequoia.scm42
-rw-r--r--gnu/packages/shells.scm18
-rw-r--r--gnu/packages/skarnet.scm4
-rw-r--r--gnu/packages/sssd.scm3
-rw-r--r--gnu/packages/statistics.scm91
-rw-r--r--gnu/packages/sync.scm6
-rw-r--r--gnu/packages/syncthing.scm6
-rw-r--r--gnu/packages/syndication.scm6
-rw-r--r--gnu/packages/terminals.scm2
-rw-r--r--gnu/packages/text-editors.scm2
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/tmux.scm90
-rw-r--r--gnu/packages/tor.scm25
-rw-r--r--gnu/packages/toys.scm6
-rw-r--r--gnu/packages/video.scm118
-rw-r--r--gnu/packages/vim.scm28
-rw-r--r--gnu/packages/vlang.scm116
-rw-r--r--gnu/packages/vpn.scm17
-rw-r--r--gnu/packages/web.scm4
-rw-r--r--gnu/packages/wm.scm5
-rw-r--r--gnu/packages/xorg.scm6
-rw-r--r--gnu/services/nix.scm1
-rw-r--r--gnu/services/shepherd.scm3
-rw-r--r--gnu/services/virtualization.scm146
-rw-r--r--gnu/services/web.scm3
-rw-r--r--gnu/system.scm3
-rw-r--r--gnu/system/hurd.scm5
-rw-r--r--gnu/system/image.scm122
-rw-r--r--gnu/system/images/hurd.scm85
-rw-r--r--gnu/system/mapped-devices.scm3
-rw-r--r--gnu/system/uuid.scm2
-rw-r--r--gnu/tests/install.scm5
-rw-r--r--guix/build-system/cmake.scm5
-rw-r--r--guix/build-system/gnu.scm30
-rw-r--r--guix/build/compile.scm7
-rw-r--r--guix/build/gnu-dist.scm46
-rw-r--r--guix/build/lisp-utils.scm22
-rw-r--r--guix/build/po.scm22
-rw-r--r--guix/build/profiles.scm6
-rw-r--r--guix/channels.scm255
-rw-r--r--guix/ci.scm34
-rw-r--r--guix/download.scm2
-rw-r--r--guix/git-authenticate.scm41
-rw-r--r--guix/inferior.scm9
-rw-r--r--guix/lint.scm40
-rw-r--r--guix/nar.scm8
-rw-r--r--guix/openpgp.scm21
-rw-r--r--guix/profiles.scm42
-rw-r--r--guix/scripts/challenge.scm4
-rw-r--r--guix/scripts/describe.scm1
-rw-r--r--guix/scripts/environment.scm3
-rw-r--r--guix/scripts/pack.scm21
-rw-r--r--guix/scripts/pull.scm24
-rw-r--r--guix/scripts/repl.scm77
-rw-r--r--guix/scripts/system.scm5
-rw-r--r--guix/scripts/time-machine.scm15
-rw-r--r--guix/self.scm156
-rw-r--r--guix/store.scm6
-rw-r--r--guix/store/database.scm98
-rw-r--r--guix/store/deduplication.scm110
-rw-r--r--guix/tests/gnupg.scm32
-rw-r--r--guix/ui.scm31
-rw-r--r--nix/boost/.gitignore3
-rw-r--r--nix/libstore/.gitignore3
-rw-r--r--nix/libstore/optimise-store.cc3
-rw-r--r--nix/libutil/.gitignore2
-rw-r--r--tests/channels.scm131
-rw-r--r--tests/git-authenticate.scm27
-rw-r--r--tests/guix-environment-container.sh2
-rw-r--r--tests/guix-repl.sh84
-rw-r--r--tests/lint.scm39
208 files changed, 10241 insertions, 3154 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index b88ec7a795..155255a770 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -37,6 +37,7 @@
(eval . (put 'with-file-lock 'scheme-indent-function 1))
(eval . (put 'with-file-lock/no-wait 'scheme-indent-function 1))
(eval . (put 'with-profile-lock 'scheme-indent-function 1))
+ (eval . (put 'with-writable-file 'scheme-indent-function 1))
(eval . (put 'package 'scheme-indent-function 0))
(eval . (put 'origin 'scheme-indent-function 0))
@@ -99,6 +100,7 @@
(eval . (put 'eventually 'scheme-indent-function 1))
(eval . (put 'call-with-progress-reporter 'scheme-indent-function 1))
+ (eval . (put 'with-repository 'scheme-indent-function 2))
(eval . (put 'with-temporary-git-repository 'scheme-indent-function 2))
(eval . (put 'with-environment-variables 'scheme-indent-function 1))
(eval . (put 'with-fresh-gnupg-setup 'scheme-indent-function 1))
diff --git a/.guix-channel b/.guix-channel
index 3e618d79f8..b852180cf2 100644
--- a/.guix-channel
+++ b/.guix-channel
@@ -2,4 +2,6 @@
(channel
(version 0)
- (news-file "etc/news.scm"))
+ (news-file "etc/news.scm")
+ (keyring-reference "keyring")
+ (url "https://git.savannah.gnu.org/git/guix.git")) ;the primary URL
diff --git a/Makefile.am b/Makefile.am
index 9cf9318e8a..8988cdfa12 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -477,6 +477,7 @@ SH_TESTS = \
tests/guix-environment-container.sh \
tests/guix-graph.sh \
tests/guix-describe.sh \
+ tests/guix-repl.sh \
tests/guix-lint.sh
TESTS = $(SCM_TESTS) $(SH_TESTS)
diff --git a/build-aux/git-authenticate.scm b/build-aux/git-authenticate.scm
index 5e1fdaaa24..e670264f28 100644
--- a/build-aux/git-authenticate.scm
+++ b/build-aux/git-authenticate.scm
@@ -218,6 +218,17 @@
(string-downcase (string-filter char-set:graphic fingerprint)))))
%historical-committers))
+(define %use-historical-authorizations?
+ ;; Whether to allow authentication of past commits using
+ ;; %HISTORICAL-AUTHORIZED-SIGNING-KEYS for when '.guix-authorizations' was
+ ;; missing.
+ (getenv "GUIX_USE_HISTORICAL_AUTHORIZATIONS"))
+
+(define %introductory-commit
+ ;; This is the commit that appears in the official 'guix' channel
+ ;; introduction. XXX: Keep in sync with (guix channels)!
+ "9edb3f66fd807b096b48283debdcddccfea34bad")
+
(define %commits-with-bad-signature
;; Commits with a known-bad signature.
'("6a34f4ccc8a5d4a48e25ad3c9c512f8634928b91")) ;2016-12-29
@@ -242,7 +253,10 @@
(match args
((_ start end)
(define start-commit
- (commit-lookup repository (string->oid start)))
+ (commit-lookup repository
+ (string->oid (if %use-historical-authorizations?
+ start
+ %introductory-commit))))
(define end-commit
(commit-lookup repository (string->oid end)))
@@ -252,7 +266,7 @@
(filter-map (lambda (id)
(false-if-exception
(commit-lookup repository (string->oid id))))
- (previously-authenticated-commits)))
+ (previously-authenticated-commits "channels/guix")))
(define commits
;; Commits to authenticate, excluding the closure of
@@ -263,6 +277,14 @@
(define reporter
(progress-reporter/bar (length commits)))
+ (define historical-authorizations
+ ;; List of authorizations in effect before '.guix-authorizations' was
+ ;; introduced. By default, assume there were no authorizations; this
+ ;; is what 'guix pull' does.
+ (if %use-historical-authorizations?
+ %historical-authorized-signing-keys
+ '()))
+
(format #t (G_ "Authenticating ~a to ~a (~a commits)...~%")
(commit-short-id start-commit)
(commit-short-id end-commit)
@@ -272,9 +294,10 @@
(lambda (report)
(authenticate-commits repository commits
#:default-authorizations
- %historical-authorized-signing-keys
+ historical-authorizations
#:report-progress report)))))
- (cache-authenticated-commit (oid->string (commit-id end-commit)))
+ (cache-authenticated-commit "channels/guix"
+ (oid->string (commit-id end-commit)))
(unless (null? stats)
(format #t (G_ "Signing statistics:~%"))
diff --git a/configure.ac b/configure.ac
index cbf92dad30..7675eef7c4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -301,6 +301,7 @@ AC_CONFIG_FILES([Makefile
etc/guix-daemon.cil
guix/config.scm])
+AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 88128e5498..2a73d2c47a 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -67,21 +67,6 @@ gpg: using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
@code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch
this key from a key server, if you have not done it yet).
-From there on, you can authenticate all the commits included in your
-checkout by running:
-
-@example
-make authenticate
-@end example
-
-The first run takes a couple of minutes, but subsequent runs are faster.
-
-@quotation Note
-You are advised to run @command{make authenticate} after every
-@command{git pull} invocation. This ensures you keep receiving valid
-changes to the repository
-@end quotation
-
The easiest way to set up a development environment for Guix is, of
course, by using Guix! The following command starts a new shell where
all the dependencies and appropriate environment variables are set up to
@@ -146,6 +131,21 @@ Finally, you have to invoke @code{make check} to run tests
fails, take a look at installation instructions (@pxref{Installation})
or send a message to the @email{guix-devel@@gnu.org, mailing list}.
+From there on, you can authenticate all the commits included in your
+checkout by running:
+
+@example
+make authenticate
+@end example
+
+The first run takes a couple of minutes, but subsequent runs are faster.
+
+@quotation Note
+You are advised to run @command{make authenticate} after every
+@command{git pull} invocation. This ensures you keep receiving valid
+changes to the repository.
+@end quotation
+
@node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed
@@ -991,16 +991,16 @@ rebuilding induced, commits go to different branches, along these lines:
@item 300 dependent packages or less
@code{master} branch (non-disruptive changes).
-@item between 300 and 1,200 dependent packages
+@item between 300 and 1,800 dependent packages
@code{staging} branch (non-disruptive changes). This branch is intended
-to be merged in @code{master} every 3 weeks or so. Topical changes
+to be merged in @code{master} every 6 weeks or so. Topical changes
(e.g., an update of the GNOME stack) can instead go to a specific branch
(say, @code{gnome-updates}).
-@item more than 1,200 dependent packages
+@item more than 1,800 dependent packages
@code{core-updates} branch (may include major and potentially disruptive
changes). This branch is intended to be merged in @code{master} every
-2.5 months or so.
+6 months or so.
@end table
All these branches are @uref{@value{SUBSTITUTE-SERVER},
@@ -1128,18 +1128,20 @@ browse issues:
@itemize
@item
+@url{https://issues.guix.gnu.org} provides a pleasant
+interface@footnote{The web interface at
+@url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
+software written in Guile, and you can help! See
+@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse
+bug reports and patches, and to participate in discussions;
+@item
@url{https://bugs.gnu.org/guix} lists bug reports;
@item
@url{https://bugs.gnu.org/guix-patches} lists patch submissions.
@end itemize
-You can also access both of these @i{via} the (nicer)
-@url{https://issues.guix.gnu.org} interface@footnote{The web interface
-at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
-software written in Guile, and you can help! See
-@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. To view
-discussions related to issue number @var{n}, go to
-@indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or
+To view discussions related to issue number @var{n}, go to
+@indicateurl{https://issues.guix.gnu.org/@var{n}} or
@indicateurl{https://bugs.gnu.org/@var{n}}.
If you use Emacs, you may find it more convenient to interact with
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 1342826c97..ec6217c69c 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -109,8 +109,8 @@ Let's get started!
Guix uses the Guile implementation of Scheme. To start playing with the
language, install it with @code{guix install guile} and start a
-@uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop,
-REPL} by running @code{guile} from the command line.
+@dfn{REPL}---short for @uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop,
+@dfn{read-eval-print loop}}---by running @code{guile} from the command line.
Alternatively you can also run @code{guix environment --ad-hoc guile -- guile}
if you'd rather not have Guile installed in your user profile.
@@ -118,7 +118,7 @@ if you'd rather not have Guile installed in your user profile.
In the following examples, lines show what you would type at the REPL;
lines starting with ``@result{}'' show evaluation results, while lines
starting with ``@print{}'' show things that get printed. @xref{Using Guile
-Interactively,,, guile, GNU Guile Reference Manual}), for more details on the
+Interactively,,, guile, GNU Guile Reference Manual}, for more details on the
REPL.
@itemize
@@ -843,12 +843,32 @@ tags, so if the @code{version} is tagged, then it can be used directly. Sometim
the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append
"v" version))}.
-To ensure that the source code from the Git repository is stored in a unique
-directory with a readable name we use @code{(file-name (git-file-name name
+To ensure that the source code from the Git repository is stored in a
+directory with a descriptive name, we use @code{(file-name (git-file-name name
version))}.
-Note that there is also a @code{git-version} procedure that can be used to derive the
-version when packaging programs for a specific commit.
+The @code{git-version} procedure can be used to derive the
+version when packaging programs for a specific commit, following the
+Guix contributor guidelines (@pxref{Version Numbers,,, guix, GNU Guix
+Reference Manual}).
+
+How does one obtain the @code{sha256} hash that's in there, you ask? By
+invoking @command{guix hash} on a checkout of the desired commit, along
+these lines:
+
+@example
+git clone https://github.com/libgit2/libgit2/
+cd libgit2
+git checkout v0.26.6
+guix hash -rx .
+@end example
+
+@command{guix hash -rx} computes a SHA256 hash over the whole directory,
+excluding the @file{.git} sub-directory (@pxref{Invoking guix hash,,,
+guix, GNU Guix Reference Manual}).
+
+In the future, @command{guix download} will hopefully be able to do
+these steps for you, just like it does for regular downloads.
@subsubsection Snippets
diff --git a/doc/guix.texi b/doc/guix.texi
index 15e077a41c..de34939248 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -239,7 +239,7 @@ Programming Interface
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions.
-* Invoking guix repl:: Fiddling with Guix interactively.
+* Invoking guix repl:: Programming Guix in Guile
Defining Packages
@@ -3721,13 +3721,17 @@ this option is primarily useful when the daemon was running with
@cindex updating Guix
@cindex @command{guix pull}
@cindex pull
+@cindex security, @command{guix pull}
+@cindex authenticity, of code obtained with @command{guix pull}
Packages are installed or upgraded to the latest version available in
the distribution currently available on your local machine. To update
that distribution, along with the Guix tools, you must run @command{guix
pull}: the command downloads the latest Guix source code and package
descriptions, and deploys it. Source code is downloaded from a
@uref{https://git-scm.com, Git} repository, by default the official
-GNU@tie{}Guix repository, though this can be customized.
+GNU@tie{}Guix repository, though this can be customized. @command{guix
+pull} ensures that the code it downloads is @emph{authentic} by
+verifying that commits are signed by Guix developers.
Specifically, @command{guix pull} downloads code from the @dfn{channels}
(@pxref{Channels}) specified by one of the followings, in this order:
@@ -3925,14 +3929,25 @@ Make sure you understand its security implications before using
@option{--allow-downgrades}.
@end quotation
+@item --disable-authentication
+Allow pulling channel code without authenticating it.
+
+@cindex authentication, of channel code
+By default, @command{guix pull} authenticates code downloaded from
+channels by verifying that its commits are signed by authorized
+developers, and raises an error if this is not the case. This option
+instructs it to not perform any such verification.
+
+@quotation Note
+Make sure you understand its security implications before using
+@option{--disable-authentication}.
+@end quotation
+
@item --system=@var{system}
@itemx -s @var{system}
Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
the system type of the build host.
-@item --verbose
-Produce verbose output, writing build logs to the standard error output.
-
@item --bootstrap
Use the bootstrap Guile to build the latest Guix. This option is only
useful to Guix developers.
@@ -4135,6 +4150,28 @@ add a meta-data file @file{.guix-channel} that contains:
(directory "guix"))
@end lisp
+@cindex primary URL, channels
+@subsection Primary URL
+
+Channel authors can indicate the primary URL of their channel's Git
+repository in the @file{.guix-channel} file, like so:
+
+@lisp
+(channel
+ (version 0)
+ (url "https://example.org/guix.git"))
+@end lisp
+
+This allows @command{guix pull} to determine whether it is pulling code
+from a mirror of the channel; when that is the case, it warns the user
+that the mirror might be stale and displays the primary URL. That way,
+users cannot be tricked into fetching code from a stale mirror that does
+not receive security updates.
+
+This feature only makes sense for authenticated repositories, such as
+the official @code{guix} channel, for which @command{guix pull} ensures
+the code it fetches is authentic.
+
@cindex news, for channels
@subsection Writing Channel News
@@ -5345,7 +5382,8 @@ configuration triplets,, autoconf, Autoconf}).
@item --compression=@var{tool}
@itemx -C @var{tool}
Compress the resulting tarball using @var{tool}---one of @code{gzip},
-@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression.
+@code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no
+compression.
@item --symlink=@var{spec}
@itemx -S @var{spec}
@@ -5474,7 +5512,7 @@ package definitions.
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions.
-* Invoking guix repl:: Fiddling with Guix interactively.
+* Invoking guix repl:: Programming Guix in Guile
@end menu
@node Package Modules
@@ -8248,12 +8286,47 @@ has an associated gexp compiler, such as a @code{<package>}.
@node Invoking guix repl
@section Invoking @command{guix repl}
-@cindex REPL, read-eval-print loop
-The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop}
-(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile,
-GNU Guile Reference Manual}). Compared to just launching the @command{guile}
+@cindex REPL, read-eval-print loop, script
+The @command{guix repl} command makes it easier to program Guix in Guile
+by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive
+programming (@pxref{Using Guile Interactively,,, guile,
+GNU Guile Reference Manual}), or by running Guile scripts
+(@pxref{Running Guile Scripts,,, guile,
+GNU Guile Reference Manual}).
+Compared to just launching the @command{guile}
command, @command{guix repl} guarantees that all the Guix modules and all its
-dependencies are available in the search path. You can use it this way:
+dependencies are available in the search path.
+
+The general syntax is:
+
+@example
+guix repl @var{options} [@var{file} @var{args}]
+@end example
+
+When a @var{file} argument is provided, @var{file} is
+executed as a Guile scripts:
+
+@example
+guix repl my-script.scm
+@end example
+
+To pass arguments to the script, use @code{--} to prevent them from
+being interpreted as arguments to @command{guix repl} itself:
+
+@example
+guix repl -- my-script.scm --input=foo.txt
+@end example
+
+To make a script executable directly from the shell, using the guix
+executable that is on the user's search path, add the following two
+lines at the top of the script:
+
+@example
+@code{#!/usr/bin/env -S guix repl --}
+@code{!#}
+@end example
+
+Without a file name argument, a Guile REPL is started:
@example
$ guix repl
@@ -8302,7 +8375,7 @@ Add @var{directory} to the front of the package module search path
(@pxref{Package Modules}).
This allows users to define their own packages and make them visible to
-the command-line tool.
+the script or REPL.
@item -q
Inhibit loading of the @file{~/.guile} file. By default, that
@@ -9098,7 +9171,7 @@ store.
@section Invoking @command{guix hash}
@cindex @command{guix hash}
-The @command{guix hash} command computes the SHA256 hash of a file.
+The @command{guix hash} command computes the hash of a file.
It is primarily a convenience tool for anyone contributing to the
distribution: it computes the cryptographic hash of a file, which can be
used in the definition of a package (@pxref{Defining Packages}).
@@ -9953,6 +10026,17 @@ Parse the @code{source} URL to determine if a tarball from GitHub is
autogenerated or if it is a release tarball. Unfortunately GitHub's
autogenerated tarballs are sometimes regenerated.
+@item derivation
+Check that the derivation of the given packages can be successfully
+computed for all the supported systems (@pxref{Derivations}).
+
+@item profile-collisions
+Check whether installing the given packages in a profile would lead to
+collisions. Collisions occur when several packages with the same name
+but a different version or a different store file name are propagated.
+@xref{package Reference, @code{propagated-inputs}}, for more information
+on propagated inputs.
+
@item archival
@cindex Software Heritage, source code archive
@cindex archival of source code, Software Heritage
@@ -24583,6 +24667,107 @@ Return true if @var{obj} is a platform object.
Return the name of @var{platform}---a string such as @code{"arm"}.
@end deffn
+
+@subsubheading The Hurd in a Virtual Machine
+
+@cindex @code{hurd}
+@cindex the Hurd
+
+Service @code{hurd-vm} provides support for running GNU/Hurd in a
+virtual machine (VM), a so-called ``Childhurd''. The virtual machine is
+a Shepherd service that can be referred to by the names @code{hurd-vm}
+and @code{childhurd} and be controlled with commands such as:
+
+@example
+herd start hurd-vm
+herd stop childhurd
+@end example
+
+The given GNU/Hurd operating system configuration is cross-compiled.
+
+@defvr {Scheme Variable} hurd-vm-service-type
+This is the type of the Hurd in a Virtual Machine service. Its value
+must be a @code{hurd-vm-configuration} object, which specifies the
+operating system (@pxref{operating-system Reference}) and the disk size
+for the Hurd Virtual Machine, the QEMU package to use as well as the
+options for running it.
+
+For example:
+
+@lisp
+(service hurd-vm-service-type
+ (hurd-vm-configuration
+ (disk-size (* 5000 (expt 2 20))) ;5G
+ (memory-size 1024))) ;1024MiB
+@end lisp
+
+would create a disk image big enough to build GNU@tie{}Hello, with some
+extra memory.
+@end defvr
+
+@deftp {Data Type} hurd-vm-configuration
+The data type representing the configuration for
+@code{hurd-vm-service-type}.
+
+@table @asis
+@item @code{os} (default: @var{%hurd-vm-operating-system})
+The operating system to instantiate. This default is bare-bones with a
+permissive OpenSSH secure shell daemon listening on port 2222
+(@pxref{Networking Services, @code{openssh-service-type}}).
+
+@item @code{qemu} (default: @code{qemu-minimal})
+The QEMU package to use.
+
+@item @code{image} (default: @var{hurd-vm-disk-image})
+The procedure used to build the disk-image built from this
+configuration.
+
+@item @code{disk-size} (default: @code{'guess})
+The size of the disk image.
+
+@item @code{memory-size} (default: @code{512})
+The memory size of the Virtual Machine in mebibytes.
+
+@item @code{options} (default: @code{'("--snapshot")})
+The extra options for running QEMU.
+
+@item @code{id} (default: @code{#f})
+If set, a non-zero positive integer used to parameterize Childhurd
+instances. It is appended to the service's name,
+e.g. @code{childhurd1}.
+
+@item @code{net-options} (default: @var{hurd-vm-net-options})
+The procedure used to produce the list of QEMU networking options.
+
+By default, it produces
+
+@lisp
+'("--device" "rtl8139,netdev=net0"
+ "--netdev" "user,id=net0\
+ ,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{(+ 10022 (* 1000 @var{ID}))}
+<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
+@end example
+
+@end table
+@end deftp
+
+Note that by default the VM image is volatile, i.e., once stopped the
+contents are lost. If you want a stateful image instead, override the
+configuration's @code{image} and @code{options} without
+the @code{--snapshot} flag using something along these lines:
+
+@lisp
+(service hurd-vm-service-type
+ (hurd-vm-configuration
+ (image (const "/out/of/store/writable/hurd.img"))
+ (options '("--hda"))))
+@end lisp
+
@node Version Control Services
@subsection Version Control Services
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
new file mode 100755
index 0000000000..2f247835f3
--- /dev/null
+++ b/etc/committer.scm.in
@@ -0,0 +1,250 @@
+#!@GUILE@ \
+--no-auto-compile -s
+!#
+
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; 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/>.
+
+;;; Commentary:
+
+;; This script stages and commits changes to package definitions.
+
+;;; Code:
+
+(import (sxml xpath)
+ (srfi srfi-1)
+ (srfi srfi-9)
+ (ice-9 format)
+ (ice-9 popen)
+ (ice-9 match)
+ (ice-9 rdelim)
+ (ice-9 textual-ports))
+
+(define (read-excursion port)
+ "Read an expression from PORT and reset the port position before returning
+the expression."
+ (let ((start (ftell port))
+ (result (read port)))
+ (seek port start SEEK_SET)
+ result))
+
+(define (surrounding-sexp port line-no)
+ "Return the top-level S-expression surrounding the change at line number
+LINE-NO in PORT."
+ (let loop ((i (1- line-no))
+ (last-top-level-sexp #f))
+ (if (zero? i)
+ last-top-level-sexp
+ (match (peek-char port)
+ (#\(
+ (let ((sexp (read-excursion port)))
+ (read-line port)
+ (loop (1- i) sexp)))
+ (_
+ (read-line port)
+ (loop (1- i) last-top-level-sexp))))))
+
+(define-record-type <hunk>
+ (make-hunk file-name
+ old-line-number
+ new-line-number
+ diff)
+ hunk?
+ (file-name hunk-file-name)
+ ;; Line number before the change
+ (old-line-number hunk-old-line-number)
+ ;; Line number after the change
+ (new-line-number hunk-new-line-number)
+ ;; The full diff to be used with "git apply --cached"
+ (diff hunk-diff))
+
+(define* (hunk->patch hunk #:optional (port (current-output-port)))
+ (let ((file-name (hunk-file-name hunk)))
+ (format port
+ "diff --git a/~a b/~a~%--- a/~a~%+++ b/~a~%~a"
+ file-name file-name file-name file-name
+ (hunk-diff hunk))))
+
+(define (diff-info)
+ "Read the diff and return a list of <hunk> values."
+ (let ((port (open-pipe* OPEN_READ
+ "git" "diff"
+ "--no-prefix"
+ ;; Do not include any context lines. This makes it
+ ;; easier to find the S-expression surrounding the
+ ;; change.
+ "--unified=0")))
+ (define (extract-line-number line-tag)
+ (abs (string->number
+ (car (string-split line-tag #\,)))))
+ (define (read-hunk)
+ (reverse
+ (let loop ((lines '()))
+ (let ((line (read-line port 'concat)))
+ (cond
+ ((eof-object? line) lines)
+ ((or (string-prefix? "@@ " line)
+ (string-prefix? "diff --git" line))
+ (unget-string port line)
+ lines)
+ (else (loop (cons line lines))))))))
+ (define info
+ (let loop ((acc '())
+ (file-name #f))
+ (let ((line (read-line port)))
+ (cond
+ ((eof-object? line) acc)
+ ((string-prefix? "--- " line)
+ (match (string-split line #\space)
+ ((_ file-name)
+ (loop acc file-name))))
+ ((string-prefix? "@@ " line)
+ (match (string-split line #\space)
+ ((_ old-start new-start . _)
+ (loop (cons (make-hunk file-name
+ (extract-line-number old-start)
+ (extract-line-number new-start)
+ (string-join (cons* line "\n"
+ (read-hunk)) ""))
+ acc)
+ file-name))))
+ (else (loop acc file-name))))))
+ (close-pipe port)
+ info))
+
+(define (old-sexp hunk)
+ "Using the diff information in HUNK return the unmodified S-expression
+corresponding to the top-level definition containing the staged changes."
+ ;; TODO: We can't seek with a pipe port...
+ (let* ((port (open-pipe* OPEN_READ
+ "git" "show" (string-append "HEAD:"
+ (hunk-file-name hunk))))
+ (contents (get-string-all port)))
+ (close-pipe port)
+ (call-with-input-string contents
+ (lambda (port)
+ (surrounding-sexp port (hunk-old-line-number hunk))))))
+
+(define (new-sexp hunk)
+ "Using the diff information in HUNK return the modified S-expression
+corresponding to the top-level definition containing the staged changes."
+ (call-with-input-file (hunk-file-name hunk)
+ (lambda (port)
+ (surrounding-sexp port
+ (hunk-new-line-number hunk)))))
+
+(define* (commit-message file-name old new #:optional (port (current-output-port)))
+ "Print ChangeLog commit message for changes between OLD and NEW."
+ (define (get-values expr field)
+ (match ((sxpath `(// ,field quasiquote *)) expr)
+ (() '())
+ ((first . rest)
+ (map cadadr first))))
+ (define (listify items)
+ (match items
+ ((one) one)
+ ((one two)
+ (string-append one " and " two))
+ ((one two . more)
+ (string-append (string-join (drop-right items 1) ", ")
+ ", and " (first (take-right items 1))))))
+ (define variable-name
+ (second old))
+ (define version
+ (and=> ((sxpath '(// version *any*)) new)
+ first))
+ (format port
+ "gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
+ variable-name version file-name variable-name version)
+ (for-each (lambda (field)
+ (let ((old-values (get-values old field))
+ (new-values (get-values new field)))
+ (or (equal? old-values new-values)
+ (let ((removed (lset-difference eq? old-values new-values))
+ (added (lset-difference eq? new-values old-values)))
+ (format port
+ "[~a]: ~a~%" field
+ (match (list (map symbol->string removed)
+ (map symbol->string added))
+ ((() added)
+ (format #f "Add ~a."
+ (listify added)))
+ ((removed ())
+ (format #f "Remove ~a."
+ (listify removed)))
+ ((removed added)
+ (format #f "Remove ~a; add ~a."
+ (listify removed)
+ (listify added)))))))))
+ '(inputs propagated-inputs native-inputs)))
+
+(define (group-hunks-by-sexp hunks)
+ "Return a list of pairs associating all hunks with the S-expression they are
+modifying."
+ (fold (lambda (sexp hunk acc)
+ (match acc
+ (((previous-sexp . hunks) . rest)
+ (if (equal? sexp previous-sexp)
+ (cons (cons previous-sexp
+ (cons hunk hunks))
+ rest)
+ (cons (cons sexp (list hunk))
+ acc)))
+ (_
+ (cons (cons sexp (list hunk))
+ acc))))
+ '()
+ (map new-sexp hunks)
+ hunks))
+
+(define (new+old+hunks hunks)
+ (map (match-lambda
+ ((new . hunks)
+ (cons* new (old-sexp (first hunks)) hunks)))
+ (group-hunks-by-sexp hunks)))
+
+(define (main . args)
+ (match (diff-info)
+ (()
+ (display "Nothing to be done." (current-error-port)))
+ (hunks
+ (for-each (match-lambda
+ ((new old . hunks)
+ (for-each (lambda (hunk)
+ (let ((port (open-pipe* OPEN_WRITE
+ "git" "apply"
+ "--cached"
+ "--unidiff-zero")))
+ (hunk->patch hunk port)
+ (unless (eqv? 0 (status:exit-val (close-pipe port)))
+ (error "Cannot apply")))
+ (sleep 1))
+ hunks)
+ (commit-message (hunk-file-name (first hunks))
+ old new
+ (current-output-port))
+ (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
+ (commit-message (hunk-file-name (first hunks))
+ old new
+ port)
+ (sleep 1)
+ (unless (eqv? 0 (status:exit-val (close-pipe port)))
+ (error "Cannot commit")))))
+ (new+old+hunks hunks)))))
+
+(main)
diff --git a/etc/news.scm b/etc/news.scm
index 6bf88ccb44..62ec68bab2 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -13,6 +13,80 @@
(channel-news
(version 0)
+ (entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835")
+ (title (en "@command{guix pull} authenticates channels")
+ (de "@command{guix pull} authentifiziert Kanäle")
+ (fr "@command{guix pull} authentifie les canaux"))
+ (body
+ (en "The @command{guix pull} and @command{guix time-machine} commands
+now authenticate the source code that they pull, unless the new
+@option{--disable-authentication} option is passed. What this means is that
+Guix ensures that each commit received is cryptographically signed by an
+authorized developer. This protects you from attempts to tamper with the Guix
+repository and from attempts to ship malicious code to users.
+
+This feature is currently limited to the @code{guix} channel but will soon be
+available to third-party channel authors.")
+ (de "Die Befehle @command{guix pull} und @command{guix time-machine}
+prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die
+neue Befehlszeilenoption @option{--disable-authentication} angegeben
+wurde. Das bedeutet, Guix stellt sicher, dass jeder empfangene Commit durch
+einen autorisierten Entwickler kryptografisch signiert wurde. Das schützt Sie
+vor Versuchen, das Guix-Repository zu manipulieren oder bösartigen Code an die
+Nutzer auszuliefern.
+
+Diese Funktionalität ist auf den @code{guix}-Kanal beschränkt, sie wird jedoch
+bald auch Autoren dritter Kanäle zur Verfügung stehen.")
+ (fr "Les commandes @command{guix pull} et @command{guix time-machine}
+authentifient dorénavant le code source qu'elles obtiennent, à moins que la
+nouvelle option @option{--disable-authentication} soit utilisée. Cela
+signifie que Guix s'assure que chaque soumission (@i{commit}) récupéré dispose
+d'une signature cryptographique par un·e développeur·euse autorisé·e. Cela te
+protège de tentatives de modifications du dépôt Guix et de tentatives de
+livrer du code malintentionné.
+
+Cette fonctionnalité n'est actuellement disponible que pour le canal
+@code{guix} mais le sera bientôt pour les canaux tiers.")))
+
+ (entry (commit "c924e541390f9595d819edc33c19d979917c15ec")
+ (title (en "@command{guix repl} adds support for running Guile scripts")
+ (de "@command{guix repl} kann Guile-Skripte ausführen")
+ (fr "@command{guix repl} permet d'exécuter des scripts en langage Guile"))
+ (body
+ (en "The @command{guix repl} command can now be used to run
+Guile scripts. Compared to just launching the @command{guile} command,
+@command{guix repl} guarantees that all the Guix modules and all its
+dependencies are available in the search path. Scripts are run like this:
+
+@example
+guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
+@end example
+
+Run @command{info \"(guix) Invoking guix repl\"} for more information.")
+ (de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von
+Guile-Skripten verwendet werden. Im Vergleich zum Befehl
+@command{guile} garantiert @command{guix repl}, dass alle Guix-Module und
+alle seine Abhängigkeiten im Suchpfad verfügbar sind. Skripte werden wie
+folgt ausgeführt:
+
+@example
+guix repl -- my-script,scm --option1 --option2 --option2=option-arg arg1 arg2
+@end example
+
+Weitere Informationen erhalten Sie mit
+@command{info \"(guix.de) Aufruf von guix repl\"}.")
+ (fr "La commande @command{guix repl} peut maintenant être utilisée
+pour exécuter des scripts en langage Guile. Par rapport au simple lancement
+de la commande @command{guile}, @command{guix repl} garantit que tous les
+modules Guix et toutes ses dépendances sont disponibles dans le chemin
+de recherche. Les scripts sont exécutés comme ceci :
+
+@example
+guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
+@end example
+
+Exécutez @command{info \"(guix.fr) Invoquer guix repl\"} pour plus d'informations.")))
+
(entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b")
(title (en "Add support to boot from a Btrfs subvolume")
(de "Unterstützung für Systemstart von einem
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index 09326233d2..aea2ac3307 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -80,16 +80,8 @@ Return the value associated with OPTION, or #f on failure."
(string-append root (if (string-suffix? "/" root) "" "/") dir))
(mkdir (scope "dev"))
- (for-each (lambda (file)
- (call-with-output-file (scope file)
- (lambda (port)
- (display file port) ;avoid hard-linking
- (chmod port #o666))))
- '("dev/null"
- "dev/zero"
- "dev/full"
- "dev/random"
- "dev/urandom"))
+ ;; Don't create /dev/null etc just yet; the store
+ ;; messes-up the permission bits.
;; Don't create /dev/console, /dev/vcs, etc.: they are created by
;; console-run on first boot.
@@ -115,6 +107,143 @@ Return the value associated with OPTION, or #f on failure."
;; settings?
)
+(define (passive-translator-xattr? file-name)
+ "Return true if FILE-NAME has an extended @code{gnu.translator} attribute
+set."
+ (catch 'system-error
+ (lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
+ (lambda args
+ (if (= ENODATA (system-error-errno args))
+ #f
+ (apply throw args)))))
+
+(define (passive-translator-installed? file-name)
+ "Return true if @file{showtrans} finds a translator installed on FILE-NAME."
+ (with-output-to-port (%make-void-port "w")
+ (lambda _
+ (with-error-to-port (%make-void-port "w")
+ (lambda _
+ (zero? (system* "showtrans" "--silent" file-name)))))))
+
+(define (translated? file-name)
+ "Return true if a translator is installed on FILE-NAME."
+ (if (string-contains %host-type "linux-gnu")
+ (passive-translator-xattr? file-name)
+ (passive-translator-installed? file-name)))
+
+(define* (set-translator file-name command #:optional (mode #o600))
+ "Setup translator COMMAND on FILE-NAME."
+ (unless (translated? file-name)
+ (let ((dir (dirname file-name)))
+ (unless (directory-exists? dir)
+ (mkdir-p dir))
+ (unless (file-exists? file-name)
+ (call-with-output-file file-name
+ (lambda (port)
+ (display file-name port) ;avoid hard-linking
+ (chmod port mode)))))
+ (catch 'system-error
+ (lambda _
+ (setxattr file-name "gnu.translator" (string-join command "\0" 'suffix)))
+ (lambda (key . args)
+ (let ((errno (system-error-errno (cons key args))))
+ (format (current-error-port) "~a: ~a\n"
+ (strerror errno) file-name)
+ (format (current-error-port) "Ignoring...Good Luck!\n"))))))
+
+(define-syntax-rule (false-if-EEXIST exp)
+ "Evaluate EXP but return #f if it raises to 'system-error with EEXIST."
+ (catch 'system-error
+ (lambda () exp)
+ (lambda args
+ (if (= EEXIST (system-error-errno args))
+ #f
+ (apply throw args)))))
+
+(define* (set-hurd-device-translators #:optional (root "/"))
+ "Make some of the device nodes needed on GNU/Hurd."
+
+ (define (scope dir)
+ (string-append root (if (string-suffix? "/" root) "" "/") dir))
+
+ (define scope-set-translator
+ (match-lambda
+ ((file-name command)
+ (scope-set-translator (list file-name command #o600)))
+ ((file-name command mode)
+ (let ((mount-point (scope file-name)))
+ (set-translator mount-point command mode)))))
+
+ (define (mkdir* dir)
+ (let ((dir (scope dir)))
+ (unless (file-exists? dir)
+ (mkdir-p dir))))
+
+ (define servers
+ '(("servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
+ ("servers/crash-kill" ("/hurd/crash" "--kill"))
+ ("servers/crash-suspend" ("/hurd/crash" "--suspend"))
+ ("servers/password" ("/hurd/password"))
+ ("servers/socket/1" ("/hurd/pflocal"))
+ ("servers/socket/2" ("/hurd/pfinet"
+ "--interface" "eth0"
+ "--address"
+ "10.0.2.15" ;the default QEMU guest IP
+ "--netmask" "255.255.255.0"
+ "--gateway" "10.0.2.2"
+ "--ipv6" "/servers/socket/16"))))
+
+ (define devices
+ '(("dev/full" ("/hurd/null" "--full") #o666)
+ ("dev/null" ("/hurd/null") #o666)
+ ("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed")
+ #o644)
+ ("dev/zero" ("/hurd/storeio" "--store-type=zero") #o666)
+
+ ("dev/console" ("/hurd/term" "/dev/console" "device" "console"))
+
+ ("dev/klog" ("/hurd/streamio" "kmsg"))
+ ("dev/mem" ("/hurd/storeio" "--no-cache" "mem") #o660)
+ ("dev/shm" ("/hurd/tmpfs" "--mode=1777" "50%") #o644)
+ ("dev/time" ("/hurd/storeio" "--no-cache" "time") #o644)
+
+ ("dev/vcs" ("/hurd/console"))
+ ("dev/tty" ("/hurd/magic" "tty") #o666)
+
+ ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
+ #o666)
+ ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
+ #o666)
+ ("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console")
+ #o666)
+
+ ("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0")
+ #o666)
+ ("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1")
+ #o666)
+ ("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2")
+ #o666)
+
+ ("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0")
+ #o666)
+ ("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1")
+ #o666)
+ ("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2")
+ #o666)))
+
+ (for-each scope-set-translator servers)
+ (mkdir* (scope "dev/vcs/1"))
+ (mkdir* (scope "dev/vcs/2"))
+ (mkdir* (scope "dev/vcs/2"))
+ (rename-file (scope "/dev/console") (scope "/dev/console-"))
+ (for-each scope-set-translator devices)
+
+ (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
+ (mkdir* (scope "dev/fd"))
+ (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
+ (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
+ (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr"))))
+
(define* (boot-hurd-system #:key (on-error 'debug))
"This procedure is meant to be called from an early RC script.
@@ -126,20 +255,9 @@ starting the Shepherd.
XXX TODO: see linux-boot.scm:boot-system.
XXX TODO: add proper file-system checking, mounting
XXX TODO: move bits to (new?) (hurd?) (activation?) services
-XXX TODO: use settrans/setxattr instead of MAKEDEV
+XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
"
- (define translators
- '(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
- ("/servers/crash-kill" ("/hurd/crash" "--kill"))
- ("/servers/crash-suspend" ("/hurd/crash" "--suspend"))
- ("/servers/password" ("/hurd/password"))
- ("/servers/socket/1" ("/hurd/pflocal"))
- ("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0"
- "--address" "10.0.2.15" ;the default QEMU guest IP
- "--netmask" "255.255.255.0"
- "--gateway" "10.0.2.2"
- "--ipv6" "/servers/socket/16"))))
(display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n")
@@ -147,35 +265,13 @@ XXX TODO: use settrans/setxattr instead of MAKEDEV
(call-with-error-handling
(lambda ()
- (define (translated? node)
- ;; Return true if a translator is installed on NODE.
- (with-output-to-port (%make-void-port "w")
- (lambda ()
- (with-error-to-port (%make-void-port "w")
- (lambda ()
- (zero? (system* "showtrans" "--silent" node)))))))
-
(let* ((args (command-line))
(system (find-long-option "--system" args))
(to-load (find-long-option "--load" args)))
- (format #t "Creating essential servers...\n")
- (setenv "PATH" (string-append system "/profile/bin"
- ":" system "/profile/sbin"))
- (for-each (match-lambda
- ((node command)
- (unless (translated? node)
- (mkdir-p (dirname node))
- (apply invoke "settrans" "--create" node command))))
- translators)
-
- (format #t "Creating essential device nodes...\n")
- (with-directory-excursion "/dev"
- (invoke "MAKEDEV" "--devdir=/dev" "std")
- (invoke "MAKEDEV" "--devdir=/dev" "vcs")
- (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6")
- (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2")
- (invoke "MAKEDEV" "--devdir=/dev" "console"))
+ (format #t "Setting-up essential translators...\n")
+ (setenv "PATH" (string-append system "/profile/bin"))
+ (set-hurd-device-translators)
(false-if-exception (delete-file "/hurd"))
(let ((hurd/hurd (readlink* (string-append system "/profile/hurd"))))
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index 893b846976..e7b0418182 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -77,7 +77,7 @@ take the partition metadata size into account, take a 25% margin."
(uuid (partition-uuid partition))
(journal-options "lazy_itable_init=1,lazy_journal_init=1"))
(apply invoke
- `("mke2fs" "-t" ,fs "-d" ,root
+ `("fakeroot" "mke2fs" "-t" ,fs "-d" ,root
"-L" ,label "-U" ,(uuid->string uuid)
"-E" ,(format #f "root_owner=~a:~a,~a"
owner-uid owner-gid journal-options)
@@ -93,7 +93,8 @@ take the partition metadata size into account, take a 25% margin."
"Handle the creation of VFAT partition images. See 'make-partition-image'."
(let ((size (partition-size partition))
(label (partition-label partition)))
- (invoke "mkdosfs" "-n" label "-C" target "-F" "16" "-S" "1024"
+ (invoke "fakeroot" "mkdosfs" "-n" label "-C" target
+ "-F" "16" "-S" "1024"
(size-in-kib
(if (eq? size 'guess)
(estimate-partition-size root)
@@ -137,12 +138,13 @@ produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
true, reset timestamps on store files and, if DEDUPLICATE? is true,
deduplicates files common to CLOSURE and the rest of PREFIX."
(let ((items (call-with-input-file closure read-reference-graph)))
- (register-items items
- #:prefix prefix
- #:deduplicate? deduplicate?
- #:reset-timestamps? reset-timestamps?
- #:registration-time %epoch
- #:schema schema)))
+ (parameterize ((sql-schema schema))
+ (with-database (store-database-file #:prefix prefix) db
+ (register-items db items
+ #:prefix prefix
+ #:deduplicate? deduplicate?
+ #:reset-timestamps? reset-timestamps?
+ #:registration-time %epoch)))))
(define* (initialize-efi-partition root
#:key
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 0f0ceae18f..287d099f79 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -223,12 +223,13 @@ produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
true, reset timestamps on store files and, if DEDUPLICATE? is true,
deduplicates files common to CLOSURE and the rest of PREFIX."
(let ((items (call-with-input-file closure read-reference-graph)))
- (register-items items
- #:prefix prefix
- #:deduplicate? deduplicate?
- #:reset-timestamps? reset-timestamps?
- #:registration-time %epoch
- #:schema schema)))
+ (parameterize ((sql-schema schema))
+ (with-database (store-database-file #:prefix prefix) db
+ (register-items db items
+ #:prefix prefix
+ #:deduplicate? deduplicate?
+ #:reset-timestamps? reset-timestamps?
+ #:registration-time %epoch)))))
;;;
diff --git a/gnu/ci.scm b/gnu/ci.scm
index fa67168e22..834e0f1260 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -53,6 +53,7 @@
#:use-module (gnu system image)
#:use-module (gnu system vm)
#:use-module (gnu system install)
+ #:use-module (gnu system images hurd)
#:use-module (gnu tests)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
@@ -185,18 +186,21 @@ SYSTEM."
(remove (either from-32-to-64? same? pointless?)
%cross-targets)))
-(define %guixsd-supported-systems
- '("x86_64-linux" "i686-linux" "armhf-linux"))
+;; Architectures that are able to build or cross-build Guix System images.
+;; This does not mean that other architectures are not supported, only that
+;; they are often not fast enough to support Guix System images building.
+(define %guix-system-supported-systems
+ '("x86_64-linux" "i686-linux"))
-(define %u-boot-systems
- '("armhf-linux"))
+(define %guix-system-images
+ (list hurd-barebones-disk-image))
-(define (qemu-jobs store system)
- "Return a list of jobs that build QEMU images for SYSTEM."
+(define (image-jobs store system)
+ "Return a list of jobs that build images for SYSTEM."
(define (->alist drv)
`((derivation . ,(derivation-file-name drv))
- (description . "Stand-alone QEMU image of the GNU system")
- (long-description . "This is a demo stand-alone QEMU image of the GNU
+ (description . "Stand-alone image of the GNU system")
+ (long-description . "This is a demo stand-alone image of the GNU
system.")
(license . ,(license-name gpl3+))
(max-silent-time . 600)
@@ -211,29 +215,33 @@ system.")
(parameterize ((%graft? #f))
(->alist drv))))))
+ (define (build-image image)
+ (run-with-store store
+ (mbegin %store-monad
+ (set-guile-for-build (default-guile))
+ (lower-object (system-image image)))))
+
(define MiB
(expt 2 20))
- (if (member system %guixsd-supported-systems)
- (list (->job 'usb-image
- (run-with-store store
- (mbegin %store-monad
- (set-guile-for-build (default-guile))
- (lower-object
- (system-image
- (image
- (inherit efi-disk-image)
- (size (* 1500 MiB))
- (operating-system installation-os)))))))
- (->job 'iso9660-image
- (run-with-store store
- (mbegin %store-monad
- (set-guile-for-build (default-guile))
- (lower-object
- (system-image
- (image
- (inherit iso9660-image)
- (operating-system installation-os))))))))
+ (if (member system %guix-system-supported-systems)
+ `(,(->job 'usb-image
+ (build-image
+ (image
+ (inherit efi-disk-image)
+ (size (* 1500 MiB))
+ (operating-system installation-os))))
+ ,(->job 'iso9660-image
+ (build-image
+ (image
+ (inherit iso9660-image)
+ (operating-system installation-os))))
+ ;; Only cross-compile Guix System images from x86_64-linux for now.
+ ,@(if (string=? system "x86_64-linux")
+ (map (lambda (image)
+ (->job (image-name image) (build-image image)))
+ %guix-system-images)
+ '()))
'()))
(define channel-build-system
@@ -305,11 +313,7 @@ system.")
"." system))))
(cons name (test->thunk test))))
- (if (and (member system %guixsd-supported-systems)
-
- ;; XXX: Our build farm has too few ARMv7 machines and they are very
- ;; slow, so skip system tests there.
- (not (string=? system "armhf-linux")))
+ (if (member system %guix-system-supported-systems)
;; Override the value of 'current-guix' used by system tests. Using a
;; channel instance makes tests that rely on 'current-guix' less
;; expensive. It also makes sure we get a valid Guix package when this
@@ -486,7 +490,7 @@ Return #f if no such checkout is found."
(package->job store package
system))))
(append (filter-map job all)
- (qemu-jobs store system)
+ (image-jobs store system)
(system-test-jobs store system
#:source source
#:commit commit)
diff --git a/gnu/image.scm b/gnu/image.scm
index 19b466527b..dc66f2c533 100644
--- a/gnu/image.scm
+++ b/gnu/image.scm
@@ -67,6 +67,8 @@
(define-record-type* <image>
image make-image
image?
+ (name image-name ;symbol
+ (default #f))
(format image-format) ;symbol
(target image-target
(default #f))
diff --git a/gnu/installer.scm b/gnu/installer.scm
index 79113cb0ef..2c7315bde0 100644
--- a/gnu/installer.scm
+++ b/gnu/installer.scm
@@ -440,5 +440,6 @@ selected keymap."
;; some reason, unicode support is not correctly installed
;; when calling this in 'installer-builder'.
(setenv "LANG" "en_US.UTF-8")
- (execl #$(program-file "installer-real" installer-builder)
+ (execl #$(program-file "installer-real" installer-builder
+ #:guile guile-3.0-latest)
"installer-real"))))
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index a742c2a0cd..685aa81d89 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -137,12 +137,6 @@ USERS."
"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."
-
- ;; Remove when integrated in (gnu services herd).
- (define (restart-service name)
- (with-shepherd-action name ('restart) result
- result))
-
(catch #t
(lambda ()
(let ((tmp-dir "/remove"))
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 5cb4f6816d..fa8d6fea71 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -25,6 +25,7 @@
#:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
+ #:use-module (guix colors)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
@@ -101,6 +102,13 @@ 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?))
diff --git a/gnu/local.mk b/gnu/local.mk
index aa5b67ab5f..396629cc93 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -35,6 +35,7 @@
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
#
# This file is part of GNU Guix.
#
@@ -133,6 +134,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/compton.scm \
%D%/packages/conky.scm \
%D%/packages/connman.scm \
+ %D%/packages/convmv.scm \
%D%/packages/cook.scm \
%D%/packages/coq.scm \
%D%/packages/cpio.scm \
@@ -536,6 +538,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/vim.scm \
%D%/packages/virtualization.scm \
%D%/packages/visidata.scm \
+ %D%/packages/vlang.scm \
%D%/packages/vnc.scm \
%D%/packages/vpn.scm \
%D%/packages/vulkan.scm \
@@ -629,6 +632,8 @@ GNU_SYSTEM_MODULES = \
%D%/system/uuid.scm \
%D%/system/vm.scm \
\
+ %D%/system/images/hurd.scm \
+ \
%D%/machine.scm \
%D%/machine/digital-ocean.scm \
%D%/machine/ssh.scm \
@@ -751,6 +756,7 @@ dist_patch_DATA = \
%D%/packages/patches/akonadi-not-relocatable.patch \
%D%/packages/patches/akonadi-timestamps.patch \
%D%/packages/patches/allegro-mesa-18.2.5-and-later.patch \
+ %D%/packages/patches/alsa-modular-synth-fix-vocoder.patch \
%D%/packages/patches/amule-crypto-6.patch \
%D%/packages/patches/anki-mpv-args.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
@@ -804,6 +810,7 @@ dist_patch_DATA = \
%D%/packages/patches/bitcoin-core-python-compat.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.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 \
%D%/packages/patches/calibre-remove-test-sqlite.patch \
@@ -888,6 +895,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-fix-scheme-indent-function.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 \
%D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
@@ -914,7 +922,6 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \
- %D%/packages/patches/ffmpeg-prefer-dav1d.patch \
%D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
@@ -965,6 +972,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-9-strmov-store-file-names.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gd-brect-bounds.patch \
+ %D%/packages/patches/gdb-hurd.patch \
%D%/packages/patches/gdm-default-session.patch \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
@@ -1041,6 +1049,7 @@ dist_patch_DATA = \
%D%/packages/patches/grocsvs-dont-use-admiral.patch \
%D%/packages/patches/gromacs-tinyxml2.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
+ %D%/packages/patches/grub-cross-system-i686.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/grub-setup-root.patch \
%D%/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch \
@@ -1101,9 +1110,11 @@ dist_patch_DATA = \
%D%/packages/patches/inetutils-hurd.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
+ %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/jacal-fix-texinfo.patch \
+ %D%/packages/patches/jamvm-2.0.0-disable-branch-patching.patch \
%D%/packages/patches/jamvm-arm.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \
@@ -1158,8 +1169,7 @@ dist_patch_DATA = \
%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-link-tests-against-glib.patch \
- %D%/packages/patches/lib2geom-use-system-googletest.patch \
+ %D%/packages/patches/lib2geom-fix-tests.patch \
%D%/packages/patches/liba52-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \
%D%/packages/patches/liba52-set-soname.patch \
@@ -1423,6 +1433,7 @@ dist_patch_DATA = \
%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-packaging-test-arch.patch \
@@ -1447,6 +1458,7 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
+ %D%/packages/patches/quassel-qt-514-compat.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
@@ -1499,6 +1511,7 @@ dist_patch_DATA = \
%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/sssd-fix-samba.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/suitesparse-mongoose-cmake.patch \
%D%/packages/patches/superlu-dist-awpm-grid.patch \
@@ -1538,6 +1551,7 @@ dist_patch_DATA = \
%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 \
%D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
@@ -1549,6 +1563,8 @@ dist_patch_DATA = \
%D%/packages/patches/u-boot-video-rockchip-fix-build.patch \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/udiskie-no-appindicator.patch \
+ %D%/packages/patches/ungoogled-chromium-system-jsoncpp.patch \
+ %D%/packages/patches/ungoogled-chromium-system-zlib.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 \
@@ -1603,9 +1619,6 @@ dist_patch_DATA = \
%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/xmoto-utf8.patch \
- %D%/packages/patches/xmoto-remove-glext.patch \
- %D%/packages/patches/xmoto-reproducible.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 \
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 116da86327..7194181681 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -210,10 +210,9 @@ exist on the machine."
(use-modules (gnu build file-systems)
(gnu system uuid))
- (define uuid
- (string->uuid #$(uuid->string (file-system-device fs))))
-
- (find-partition-by-uuid uuid))))
+ (let ((uuid (uuid #$(uuid->string (file-system-device fs))
+ '#$(uuid-type (file-system-device fs)))))
+ (find-partition-by-uuid uuid)))))
(remote-let ((result remote-exp))
(unless result
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 1a0e19b19a..de2f6534f8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -231,8 +231,14 @@ usual file attributes can be checked for inconsistencies.")
`(("ncurses" ,ncurses)))
(arguments
`(#:tests? #f ; no test suite
- #:make-flags (list "CC=gcc"
- (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:make-flags
+ (let ((target ,(%current-target-system)))
+ (list ,(string-append "CC=" (cc-for-target))
+ (string-append "PKG_CONFIG="
+ (if target
+ (string-append target "-pkg-config")
+ "pkg-config"))
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
@@ -435,7 +441,7 @@ graphs and can export its output to different formats.")
(define-public facter
(package
(name "facter")
- (version "4.0.25")
+ (version "4.0.26")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -444,7 +450,7 @@ graphs and can export its output to different formats.")
(file-name (git-file-name name version))
(sha256
(base32
- "04nbk9rn5lfhbivsx68dggsp05czm7mzfr1i7yv6168bl92d233y"))))
+ "0bab3by926gavbhkvp0in82vim575ybj8z6av3b12jdvla1s9rmz"))))
(build-system ruby-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -1358,7 +1364,7 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
- (version "1.9.0")
+ (version "1.9.1")
(source (origin
(method url-fetch)
(uri
@@ -1368,7 +1374,7 @@ system administrator.")
version ".tar.gz")))
(sha256
(base32
- "0p7r3cl16pjwbc48ff1gbhjw51lngrghvwblxz5lxpyzqlwi88xb"))
+ "1zxd6hxwhxqrm876wsn9bfajbfc4hc6l9ivzj5rjg80hzv71ch99"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -3466,7 +3472,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
- (version "3.1.01-1")
+ (version "3.1.03-1")
(source
(origin
(method git-fetch)
@@ -3475,7 +3481,7 @@ Python loading in HPC environments.")
(commit version)))
(file-name (git-file-name real-name version))
(sha256
- (base32 "0r204w0r06ibdr4dck7yw2nmvj7xq68bjr7xwwiy7liqdml0n0yc"))))
+ (base32 "0539hvlq021wxhbwzdp7qliiq1jgw60mxlwrwx0z2x8qi1zqdzg6"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index b78e6ef304..90af1453eb 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -43,6 +44,7 @@
#:use-module (gnu packages graphviz)
#:use-module (gnu packages image)
#:use-module (gnu packages java)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
@@ -946,6 +948,46 @@ minimization and curve fitting. It is mature code, based on decades-old
algorithms from the FORTRAN library MINPACK.")
(license license:bsd-2)))
+(define-public symengine
+ (package
+ (name "symengine")
+ (version "0.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/symengine/symengine.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "129iv9maabmb42ylfdv0l0g94mcbf3y4q3np175008rcqdr8z6h1"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags
+ ;; These are the suggested build options in the README.
+ '("-DCMAKE_BUILD_TYPE=Release"
+ "-DWITH_GMP=on"
+ "-DWITH_MPFR=on"
+ "-DWITH_MPC=on"
+ "-DINTEGER_CLASS=flint"
+ "-DWITH_LLVM=on"
+ "-DWITH_SYMENGINE_THREAD_SAFE=on"
+ "-DBUILD_SHARED_LIBS=on"))) ;also build libsymengine
+ (native-inputs
+ `(("llvm" ,llvm)))
+ (inputs
+ `(("flint" ,flint)
+ ("gmp" ,gmp)
+ ("mpc" ,mpc)
+ ("mpfr" ,mpfr)))
+ (home-page "https://github.com/symengine/symengine")
+ (synopsis "Fast symbolic manipulation library")
+ (description
+ "SymEngine is a standalone fast C++ symbolic manipulation library.
+Optional thin wrappers allow usage of the library from other languages.")
+ (license (list license:expat ;SymEngine
+ license:bsd-3)))) ;3rd party code
+
(define-public eigen
(package
(name "eigen")
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index c8d15a3bb7..74ef7111c3 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -175,7 +175,9 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
"/" version "/ams-" version ".tar.bz2"))
(sha256
(base32
- "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
+ "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))
+ (patches
+ (search-patches "alsa-modular-synth-fix-vocoder.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -183,6 +185,17 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
"CXXFLAGS=-std=gnu++11")
#: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)))
;; Insert an extra space between linker flags.
(add-before 'configure 'add-missing-space
(lambda _
@@ -203,7 +216,7 @@ implementation of Adaptive Multi Rate Narrowband and Wideband
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)
- ("gcc" ,gcc-5)))
+ ("gcc@5" ,gcc-5)))
(home-page "http://alsamodular.sourceforge.net/")
(synopsis "Realtime modular synthesizer and effect processor")
(description
@@ -2331,7 +2344,29 @@ background file post-processing.")
(file-name (git-file-name name version))
(sha256
(base32
- "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))))
+ "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
+ (modules '((guix build utils)
+ (ice-9 ftw)))
+ (snippet
+ ;; The build system doesn't allow us to unbundle the following
+ ;; libraries. hidapi is also heavily patched and upstream not
+ ;; actively maintained.
+ '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
+ "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
+ (with-directory-excursion "./external_libraries"
+ (for-each
+ delete-file-recursively
+ (scandir "."
+ (lambda (x)
+ (and (eq? (stat:type (stat x)) 'directory)
+ (not (member (basename x) keep-dirs)))))))
+ ;; To find the Guix provided ableton-link library.
+ (substitute* "lang/CMakeLists.txt"
+ (("include\\(\\.\\./external_libraries/link/\
+AbletonLinkConfig\\.cmake\\)")
+ "find_package(AbletonLink NAMES AbletonLink ableton-link \
+link REQUIRED)"))
+ #t))))
(build-system cmake-build-system)
(outputs
'("out" ;core language
@@ -2342,44 +2377,16 @@ background file post-processing.")
"-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
"-DSC_EL=off") ;scel is packaged individually as
;emacs-scel
- #:modules ((guix build utils)
- (guix build cmake-build-system)
- (ice-9 ftw))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'rm-bundled-libs
- (lambda _
- ;; The build system doesn't allow us to unbundle the following
- ;; libraries. hidapi is also heavily patched.
- (let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" "TLSF-2.4.6"
- "oscpack_1_1_0" "." "..")))
- (with-directory-excursion "./external_libraries"
- (for-each
- delete-file-recursively
- (scandir "."
- (lambda (x)
- (and (eq? (stat:type (stat x)) 'directory)
- (not (member (basename x) keep-dirs))))))))
- (substitute* "lang/CMakeLists.txt"
- (("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)")
- "find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)"))
- #t))
- ;; Some tests are broken (see:
- ;; https://github.com/supercollider/supercollider/issues/3555 and
- ;; https://github.com/supercollider/supercollider/issues/1736
- (add-after 'rm-bundled-libs 'disable-broken-tests
+ ;; HOME must be defined otherwise supercollider throws a "ERROR:
+ ;; Primitive '_FileMkDir' failed." error when generating the doc.
+ ;; The graphical tests also hang without it.
+ (add-after 'unpack 'set-home-directory
(lambda _
- (substitute* "testsuite/server/supernova/CMakeLists.txt"
- (("server_test.cpp")
- "")
- (("perf_counter_test.cpp")
- ""))
- (substitute* "testsuite/CMakeLists.txt"
- (("add_subdirectory\\(sclang\\)")
- ""))
- (delete-file "testsuite/sclang/CMakeLists.txt")
+ (setenv "HOME" (getcwd))
#t))
- (add-after 'disable-broken-tests 'patch-scclass-dir
+ (add-after 'unpack 'patch-scclass-dir
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(scclass-dir
@@ -2391,6 +2398,11 @@ background file post-processing.")
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
(string-append "Path(\"" scclass-dir "\")")))
#t)))
+ (add-before 'build 'prepare-x
+ (lambda _
+ (system "Xvfb &")
+ (setenv "DISPLAY" ":0")
+ #t))
(add-before 'install 'install-ide
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -2403,7 +2415,8 @@ background file post-processing.")
(native-inputs
`(("ableton-link" ,ableton-link)
("pkg-config" ,pkg-config)
- ("qttools" ,qttools)))
+ ("qttools" ,qttools)
+ ("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("jack" ,jack-1)
("libsndfile" ,libsndfile)
@@ -3573,14 +3586,14 @@ on the ALSA software PCM plugin.")
(define-public snd
(package
(name "snd")
- (version "19.9")
+ (version "20.4")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ccrma-ftp.stanford.edu/pub/Lisp/"
"snd-" version ".tar.gz"))
(sha256
(base32
- "13s8fahpsjygjdrcwmprcrz23ny3klaj2rh2xzdv3bfs69gxvhys"))))
+ "0irdizlng2s3akmxdbfxcbd93bbjz9543nh7fisszim6v0ks59d9"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; no tests
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index c66ea5a187..71888976e6 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -342,10 +342,7 @@ used to apply commands with arbitrarily long arguments.")
(list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
" tests/misc/kill.sh"
" tests/misc/nice.sh"
- " tests/misc/shred-passes.sh"
" tests/split/fail.sh"
- " tests/split/l-chunk.sh"
- " tests/dd/stats.sh"
" test-fdutimensat"
" test-futimens"
" test-linkat"
@@ -365,7 +362,15 @@ used to apply commands with arbitrarily long arguments.")
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (string-append "#!" (which "sh"))))
- #t)))))
+ #t))
+ ,@(if (hurd-target?)
+ `((add-after 'unpack 'remove-tests
+ (lambda _
+ (substitute* "Makefile.in"
+ ;; this test hangs
+ (("^ *tests/misc/timeout-group.sh.*") ""))
+ #t)))
+ '()))))
(synopsis "Core GNU utilities (file, text, shell)")
(description
"GNU Coreutils package includes all of the basic command-line tools that
@@ -554,8 +559,8 @@ included.")
;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream).
;; Keep this version around until the patch is updated.
(define-public binutils-2.33
- (package/inherit
- binutils
+ (package
+ (inherit binutils)
(version "2.33.1")
(source (origin
(inherit (package-source binutils))
@@ -570,8 +575,7 @@ included.")
(properties '())))
(define-public binutils-gold
- (package
- (inherit binutils)
+ (package/inherit binutils+documentation
(name "binutils-gold")
(arguments
`(#:phases
diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm
index 406ed2fb14..002f4a0edb 100644
--- a/gnu/packages/bioconductor.scm
+++ b/gnu/packages/bioconductor.scm
@@ -1396,14 +1396,14 @@ the Human Protein Atlas project.")
(define-public r-regioner
(package
(name "r-regioner")
- (version "1.20.0")
+ (version "1.20.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "regioneR" version))
(sha256
(base32
- "10i21gxv0n7lrflhj5ja672xjizy1i4y4iq3pmjgbf0dpy1lxsih"))))
+ "0bzjwzj5mvb49wgvs3gd3jfpm7s0zfkca763i65i7m994lgvz33c"))))
(properties `((upstream-name . "regioneR")))
(build-system r-build-system)
(propagated-inputs
@@ -5119,14 +5119,14 @@ that arising from 16s metagenomic surveys.")
(define-public r-wiggleplotr
(package
(name "r-wiggleplotr")
- (version "1.12.0")
+ (version "1.12.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "wiggleplotr" version))
(sha256
(base32
- "15l8f7ls2mwhsw68sr1k4r19hmdzjriibr5hpnfbanzj5x6yhdjq"))))
+ "1wknigh1md3w4h68caqlpq945maipdkpmw10hc2rlx4nbbpcnawp"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@@ -6117,14 +6117,14 @@ for other R packages to compile and link against.")
(define-public r-flowworkspace
(package
(name "r-flowworkspace")
- (version "4.0.3")
+ (version "4.0.6")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "flowWorkspace" version))
(sha256
(base32
- "1fi76m6r5x4w390996989rignffdzl11k3prpimpwjd3566c276w"))))
+ "123ny8n3jjgmsnpghk1dafxkwmcyr513gxi8y4h4qszq4s6ai15v"))))
(properties `((upstream-name . "flowWorkspace")))
(build-system r-build-system)
(propagated-inputs
@@ -6248,14 +6248,14 @@ sequential way to mimic the manual gating strategy.")
(define-public r-cytoml
(package
(name "r-cytoml")
- (version "2.0.0")
+ (version "2.0.5")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "CytoML" version))
(sha256
(base32
- "0zpq2j4y9i5lls1kj2w4spl8qjp3076idsr2a2rjvy1fykzlp01q"))))
+ "174brv027mm90lydfg6hnhazwh8jy4vf6ial4hpsfalwa5jrz55n"))))
(properties `((upstream-name . "CytoML")))
(build-system r-build-system)
(inputs
@@ -6286,6 +6286,7 @@ sequential way to mimic the manual gating strategy.")
("r-runit" ,r-runit)
("r-tibble" ,r-tibble)
("r-xml" ,r-xml)
+ ("r-xml2" ,r-xml2)
("r-yaml" ,r-yaml)))
(native-inputs
`(("r-knitr" ,r-knitr)))
@@ -6455,14 +6456,14 @@ genes in the gene-set that are ranked above the leading edge).")
(define-public r-cicero
(package
(name "r-cicero")
- (version "1.6.0")
+ (version "1.6.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "cicero" version))
(sha256
(base32
- "0n78lf5hz6zzl550dbf4imis43pv91zicfff8y4lspckljhz9z75"))))
+ "0nf9yqg5krj26n4n82iyx3rsr84d46b17i9zfk35sh12l4xssbii"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
@@ -6482,6 +6483,7 @@ genes in the gene-set that are ranked above the leading edge).")
("r-plyr" ,r-plyr)
("r-reshape2" ,r-reshape2)
("r-s4vectors" ,r-s4vectors)
+ ("r-stringi" ,r-stringi)
("r-stringr" ,r-stringr)
("r-tibble" ,r-tibble)
("r-tidyr" ,r-tidyr)
@@ -6673,14 +6675,14 @@ metrics, with methods for objects produced by the @code{methylumi} and
(define-public r-gdsfmt
(package
(name "r-gdsfmt")
- (version "1.24.0")
+ (version "1.24.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "gdsfmt" version))
(sha256
(base32
- "00hggma0i15w03xi9jr02v2593jbqkcxyfcvpp7mdzrshn99m9p6"))
+ "0ipf60wylbhvwk9q3mbnak0f1n6k7spfh90s1c1c0b47ryxsri67"))
(modules '((guix build utils)))
;; Remove bundled sources of zlib, lz4, and xz. Don't attempt to build
;; them and link with system libraries instead.
@@ -8087,3 +8089,31 @@ metrics, such as the elbow method and Horn's parallel analysis, which has
relevance for data reduction in single-cell RNA-seq (scRNA-seq) and high
dimensional mass cytometry data.")
(license license:gpl3)))
+
+(define-public r-rgreat
+ (package
+ (name "r-rgreat")
+ (version "1.20.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "rGREAT" version))
+ (sha256
+ (base32
+ "0n8dw9ibb2klsczcxvvinpi9l53w8cs436i0c8w2jmramayl593v"))))
+ (properties `((upstream-name . "rGREAT")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-genomicranges" ,r-genomicranges)
+ ("r-getoptlong" ,r-getoptlong)
+ ("r-iranges" ,r-iranges)
+ ("r-rcurl" ,r-rcurl)
+ ("r-rjson" ,r-rjson)))
+ (native-inputs `(("r-knitr" ,r-knitr)))
+ (home-page "https://github.com/jokergoo/rGREAT")
+ (synopsis "Client for GREAT analysis")
+ (description
+ "This package makes GREAT (Genomic Regions Enrichment of Annotations
+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)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f60a918d75..957c88d0c6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -53,6 +54,7 @@
#:use-module (guix build-system ruby)
#:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
+ #:use-module (guix deprecation)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages algebra)
@@ -941,7 +943,9 @@ Python.")
("python-future" ,python-future)
("python-click" ,python-click)
("python-h5py" ,python-h5py)
- ("python-pandas" ,python-pandas)))
+ ;; FIXME: Upgrade to pandas 1.0 when
+ ;; https://github.com/biocore/biom-format/issues/837 is resolved.
+ ("python-pandas" ,python-pandas-0.25)))
(native-inputs
`(("python-cython" ,python-cython)
("python-pytest" ,python-pytest)
@@ -2406,12 +2410,18 @@ interval trees with associated meta-data. It is primarily used by the
(name "python-deeptools")
(version "3.4.3")
(source (origin
- (method url-fetch)
- (uri (pypi-uri "deepTools" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/deeptools/deepTools.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1azgjniss5ff6a90nicdjkxyjwqmi3gzfn09gra42hwlz19hipxb"))))
+ "0l09vyynz6s6w7fnyd94rpys4a6aja6kp4gli64pngdxdz3md1nl"))))
(build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-nose" ,python-nose)))
(propagated-inputs
`(("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
@@ -2421,7 +2431,7 @@ interval trees with associated meta-data. It is primarily used by the
("python-pysam" ,python-pysam)
("python-scipy" ,python-scipy)
("python-deeptoolsintervals" ,python-deeptoolsintervals)
- ("python-plotly" ,python-plotly)))
+ ("python-plotly" ,python-plotly-2.4.1)))
(home-page "https://pypi.org/project/deepTools/")
(synopsis "Useful tools for exploring deep sequencing data")
(description "This package addresses the challenge of handling large amounts
@@ -2436,6 +2446,8 @@ annotations of the genome.")
;; remainder of the code is licensed under the MIT license.
(license (list license:bsd-3 license:expat))))
+(define-deprecated deeptools python-deeptools)
+
(define-public cutadapt
(package
(name "cutadapt")
@@ -2599,51 +2611,6 @@ trees (phylogenies) and characters.")
with Python.")
(license license:expat)))
-(define-public deeptools
- (package
- (name "deeptools")
- (version "3.1.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/deeptools/deepTools.git")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1vggnf52g6q2vifdl4cyi7s2fnfqq0ky2zrkj5zv2qfzsc3p3siw"))))
- (build-system python-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- ;; This phase fails, but it's not needed.
- (delete 'reset-gzip-timestamps))))
- (inputs
- `(("python-plotly" ,python-plotly)
- ("python-scipy" ,python-scipy)
- ("python-numpy" ,python-numpy)
- ("python-numpydoc" ,python-numpydoc)
- ("python-matplotlib" ,python-matplotlib)
- ("python-pysam" ,python-pysam)
- ("python-py2bit" ,python-py2bit)
- ("python-pybigwig" ,python-pybigwig)))
- (native-inputs
- `(("python-mock" ,python-mock) ;for tests
- ("python-nose" ,python-nose) ;for tests
- ("python-pytz" ,python-pytz))) ;for tests
- (home-page "https://github.com/deeptools/deepTools")
- (synopsis "Tools for normalizing and visualizing deep-sequencing data")
- (description
- "DeepTools addresses the challenge of handling the large amounts of data
-that are now routinely generated from DNA sequencing centers. To do so,
-deepTools contains useful modules to process the mapped reads data to create
-coverage files in standard bedGraph and bigWig file formats. By doing so,
-deepTools allows the creation of normalized coverage files or the comparison
-between two files (for example, treatment and control). Finally, using such
-normalized and standardized files, multiple visualizations can be created to
-identify enrichments with functional annotations of the genome.")
- (license license:gpl3+)))
-
(define-public delly
(package
(name "delly")
@@ -3050,16 +3017,16 @@ dynamic programming or a variety of heuristics.")
(define-public express
(package
(name "express")
- (version "1.5.1")
+ (version "1.5.3")
(source (origin
- (method url-fetch)
- (uri
- (string-append
- "http://bio.math.berkeley.edu/eXpress/downloads/express-"
- version "/express-" version "-src.tgz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/adarob/eXpress.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "03rczxd0gjp2l1jxcmjfmf5j94j77zqyxa6x063zsc585nj40n0c"))))
+ "18nb22n7x820fzjngf4qgyb3mspqkw7xyk7v7s5ps6wfrd8qwscb"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no "check" target
@@ -3076,6 +3043,12 @@ dynamic programming or a variety of heuristics.")
(("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/\\.\\./bamtools/lib")
(string-append (assoc-ref inputs "bamtools") "/lib"))
(("libprotobuf.a") "libprotobuf.so"))
+ #t))
+ (add-after 'unpack 'remove-update-check
+ (lambda _
+ (substitute* "src/main.cpp"
+ (("#include \"update_check.h\"") "")
+ (("check_version\\(PACKAGE_VERSION\\);") ""))
#t)))))
(inputs
`(("boost" ,boost)
@@ -7716,13 +7689,13 @@ ID and species. It is used by functions in the GenomeInfoDb package.")
(define-public r-genomeinfodb
(package
(name "r-genomeinfodb")
- (version "1.24.0")
+ (version "1.24.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
- "0ab92nq7lvhvhgp512qhiiphpby0b17c666qska6p8a636zzmqiv"))))
+ "1cqs53p4m5q1dr59war72bccphy01ilw4xra24fmngrv4x32rznd"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@@ -7813,13 +7786,13 @@ coding changes and predict coding outcomes.")
(define-public r-limma
(package
(name "r-limma")
- (version "3.44.1")
+ (version "3.44.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "limma" version))
(sha256
(base32
- "0l6f6lz1rghj8c5s14ljbnmsrwz27fi6a7g42n15n3d3msvflw36"))))
+ "09fnqxx4rzq5n447aqg2l6y0idfwgz2jxz99sifxsr2q8afzbcj6"))))
(build-system r-build-system)
(home-page "http://bioinf.wehi.edu.au/limma")
(synopsis "Package for linear models for microarray and RNA-seq data")
@@ -7950,13 +7923,13 @@ annotation data packages using SQLite data storage.")
(define-public r-biomart
(package
(name "r-biomart")
- (version "2.44.0")
+ (version "2.44.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biomaRt" version))
(sha256
(base32
- "0ag26q9283p9mfz4zx8qnx1w7b7ilmsb8wyx737z9cqy9a0i57wj"))))
+ "0np4nh3gj60mgb6312z7x0z9fg5bhrhw872sp3dzgmqc8q8b84iz"))))
(properties
`((upstream-name . "biomaRt")))
(build-system r-build-system)
@@ -8923,13 +8896,13 @@ of gene-level counts.")
(define-public r-rhdf5
(package
(name "r-rhdf5")
- (version "2.32.0")
+ (version "2.32.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "rhdf5" version))
(sha256
(base32
- "097znwl95y2vd6asyqxs62m7binwxqmna7ss0302yl3b0s72skcy"))))
+ "102zam2j43jwgaz9ch6y2jjbc3qf56ngmggikf99s8l3w9ggbskm"))))
(build-system r-build-system)
(propagated-inputs
`(("r-rhdf5lib" ,r-rhdf5lib)))
@@ -10840,14 +10813,14 @@ provided.")
(define-public r-hdf5array
(package
(name "r-hdf5array")
- (version "1.16.0")
+ (version "1.16.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "HDF5Array" version))
(sha256
(base32
- "1g848s0qc6i4ipd7y2s5pk8k1xggk2kfy0gnr8wjjs2gq3914aw4"))))
+ "01767v90nl0499jcicpxngbbs0af5p9c5aasi5va01w3v5bnqddn"))))
(properties `((upstream-name . "HDF5Array")))
(build-system r-build-system)
(inputs
@@ -13437,14 +13410,14 @@ cases include:
(name "miniasm")
(version "0.3")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/lh3/miniasm/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lh3/miniasm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0g89pa98dvh34idv7w1zv12bsbyr3a11c4qb1cdcz68gyda88s4v"))))
+ (base32
+ "04dv5wv8bhsw1imxwyd438bnn9kby7svp44nbcz8lsadzjjci5gs"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
@@ -13457,7 +13430,8 @@ cases include:
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin")))
(install-file "miniasm" bin)
- (install-file "minidot" bin)))))))
+ (install-file "minidot" bin)
+ #t))))))
(home-page "https://github.com/lh3/miniasm")
(synopsis "Ultrafast de novo assembly for long noisy reads")
(description "Miniasm is a very fast OLC-based de novo assembler for noisy
diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm
index ae8d1a141b..725f38263f 100644
--- a/gnu/packages/bison.scm
+++ b/gnu/packages/bison.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -64,6 +65,17 @@ grammar. It is versatile enough to have many applications, from parsers for
simple tools through complex programming languages.")
(license gpl3+)))
+(define-public bison-3.6
+ (package
+ (inherit bison)
+ (version "3.6.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/bison/bison-" version ".tar.xz"))
+ (sha256
+ (base32 "0gdpnjh6ra9xa9vj6hzjdf0c04x4pjyy8vssm3qdb7fya4v7knq6"))))))
+
(define-public bison-3.0
(package
(inherit bison)
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 8b041cb3f5..52160b9025 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -42,7 +42,6 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
- #:use-module (gnu packages file)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@@ -50,7 +49,6 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
- #:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
#:use-module (gnu packages ncurses)
@@ -104,12 +102,9 @@
'("applications" "icons" "pixmaps")))
#t)))))
(inputs
- `(("inotify-tools" ,inotify-tools)
- ("libevent" ,libevent)
+ `(("libevent" ,libevent)
("curl" ,curl)
- ("cyrus-sasl" ,cyrus-sasl)
("openssl" ,openssl)
- ("file" ,file)
("zlib" ,zlib)
("gtk+" ,gtk+)))
(native-inputs
@@ -131,7 +126,7 @@ DHT, µTP, PEX and Magnet Links.")
;; or any future license endorsed by Mnemosyne LLC.
;;
;; A few files files carry an MIT/X11 license header.
- (license l:gpl3+)))
+ (license (list l:gpl2 l:gpl3))))
(define-public libtorrent
(package
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index ea80cf020e..07b406b42a 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
@@ -11,7 +11,6 @@
;;; Copyright © 2019 nee <nee@cock.li>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
-;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019, 2020 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
@@ -97,7 +96,8 @@
(patches (search-patches
"grub-efi-fat-serial-number.patch"
"grub-setup-root.patch"
- "grub-verifiers-Blocklist-fallout-cleanup.patch"))))
+ "grub-verifiers-Blocklist-fallout-cleanup.patch"
+ "grub-cross-system-i686.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 9ff32b22f9..a0f3ae7f71 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,12 +37,16 @@
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages package-management)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages ninja)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -106,8 +111,8 @@ generate such a compilation database.")
(license license:gpl3+)))
(define-public gn
- (let ((commit "ec938ddaa276646eb8f1ab33e160c156011d8217")
- (revision "1736")) ;as returned by `git describe`, used below
+ (let ((commit "eb997b5ab9c3f1ba6a2c52072785884864a84eae")
+ (revision "1794")) ;as returned by `git describe`, used below
(package
(name "gn")
(version (git-version "0.0" revision commit))
@@ -117,7 +122,7 @@ generate such a compilation database.")
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
- "0j1qjwp2biw12s6npzpx4z8nvih7pyn68q6cz2k4700bk9y0d574"))
+ "1vfkcy34wqhg7wsk7jdzhgnnzwim10wgbxv5bnavxzjcs871i2xa"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -276,6 +281,80 @@ other lower-level build files.")
scripted definition of a software project and outputs @file{Makefile}s or
other lower-level build files.")))
+(define-public tup
+ (package
+ (name "tup")
+ (version "0.7.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://gittup.org/tup/releases/tup-v"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0gnd2598xqgwihdkfkx7qn0q6p4n7npam1fy83mp7s04zwj99syc"))
+ (patches (search-patches "tup-unbundle-dependencies.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; NOTE: Tup uses a slightly modified Lua, so it cannot be
+ ;; unbundled. See: src/lula/tup-lua.patch
+ (delete-file-recursively "src/pcre")
+ (delete-file-recursively "src/sqlite3")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; There is a bootstrap script, but it doesn't do what you think - it
+ ;; builds tup.
+ (delete 'bootstrap)
+ (replace 'configure
+ (lambda _
+ (substitute* "src/tup/link.sh"
+ (("`git describe`") ,version))
+ (with-output-to-file "tup.config"
+ (lambda _
+ (format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y~%")))
+ #t))
+ (delete 'check)
+ (replace 'build
+ (lambda _
+ ;; Based on bootstrap-nofuse.sh, but with a detour to patch-shebang.
+ (invoke "./build.sh")
+ (invoke "./build/tup" "init")
+ (invoke "./build/tup" "generate" "--verbose" "build-nofuse.sh")
+ (patch-shebang "build-nofuse.sh")
+ (invoke "./build-nofuse.sh")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((outdir (assoc-ref outputs "out"))
+ (ftdetect (string-append outdir
+ "/share/vim/vimfiles/ftdetect")))
+ (install-file "tup" (string-append outdir "/bin"))
+ (install-file "tup.1" (string-append outdir "/share/man/man1"))
+ (install-file "contrib/syntax/tup.vim"
+ (string-append outdir "/share/vim/vimfiles/syntax"))
+ (mkdir-p ftdetect)
+ (with-output-to-file (string-append ftdetect "/tup.vim")
+ (lambda _
+ (display "au BufNewFile,BufRead Tupfile,*.tup setf tup")))
+ #t))))))
+ (inputs
+ `(("fuse" ,fuse)
+ ("pcre" ,pcre)
+ ("pcre" ,pcre "bin") ; pcre-config
+ ("sqlite" ,sqlite)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://gittup.org/tup/")
+ (synopsis "Fast build system that's hard to get wrong")
+ (description "Tup is a generic build system based on a directed acyclic
+graphs of commands to be executed. Tup instruments your build to detect the
+exact dependencies of the commands, allowing you to take advantage of ideal
+parallelism during incremental builds, and detecting any situations where
+a build worked by accident.")
+ (license license:gpl2)))
+
(define-public osc
(package
(name "osc")
diff --git a/gnu/packages/busybox.scm b/gnu/packages/busybox.scm
index e3431aa31b..305a61f40b 100644
--- a/gnu/packages/busybox.scm
+++ b/gnu/packages/busybox.scm
@@ -32,7 +32,7 @@
(define-public busybox
(package
(name "busybox")
- (version "1.29.3")
+ (version "1.31.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -40,11 +40,18 @@
version ".tar.bz2"))
(sha256
(base32
- "1dzg45vgy2w1xcd3p6h8d76ykhabbvk1h0lf8yb24ikrwlv8cr4p"))))
+ "1659aabzp8w4hayr4z8kcpbk2z1q2wqhw7i1yb0l72b45ykl1yfh"))
+ (patches
+ (search-patches
+ "busybox-1.31.1-fix-build-with-glibc-2.31.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'disable-timestamps
+ (lambda _
+ (setenv "KCONFIG_NOTIMESTAMP" "1")
+ #t))
(add-before 'configure 'disable-taskset
;; This feature fails its tests in the build environment,
;; was default 'n' until after 1.26.2.
@@ -75,6 +82,9 @@
(substitute* "testsuite/date/date-works-1"
(("/bin/date") (which "date")))
+ (substitute* "testsuite/start-stop-daemon.tests"
+ (("/bin/false") (which "false")))
+
;; The pidof tests assume that pid 1 is called "init" but that is not
;; true in guix build environment
(substitute* "testsuite/pidof.tests"
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index c107a36c6a..13ca6d06f9 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright @ 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -436,3 +437,39 @@ with essential JSON handling functions, sufficiently good JSON support (not
"Liblogging is an easy to use library for logging. It offers an enhanced
replacement for the syslog() call, but retains its ease of use.")
(license license:bsd-2)))
+
+(define-public unifdef
+ (package
+ (name "unifdef")
+ (version "2.12")
+ (source (origin
+ (method url-fetch)
+ ;; https://dotat.at/prog/unifdef/unifdef-2.12.tar.xz
+ (uri (string-append "https://dotat.at/prog/" name "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "00647bp3m9n01ck6ilw6r24fk4mivmimamvm4hxp5p6wxh10zkj3"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file-recursively "FreeBSD")
+ (delete-file-recursively "win32")
+ #t))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (delete 'configure))
+ #:make-flags (list "CC=gcc" (string-append "prefix=" %output))
+ #:tests? #f)) ;no test suite
+ (native-inputs
+ `(("perl" ,perl)))
+ (home-page "https://dotat.at/prog/unifdef/")
+ (synopsis "Utility to selectively processes conditional C preprocessor")
+ (description "The @command{unifdef} utility selectively processes
+conditional C preprocessor @code{#if} and @code{#ifdef} directives. It
+removes from a file both the directives and the additional text that they
+delimit, while otherwise leaving the file alone. It can be useful for
+avoiding distractions when studying code that uses @code{#ifdef} heavily for
+portability.")
+ (license (list license:bsd-2 ;all files except...
+ license:bsd-3)))) ;...the unidef.1 manual page
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 67236f86de..ac8dd26af0 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,9 +39,11 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix gexp)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
@@ -242,6 +245,54 @@ extra-robust data verification, synchronization, error handling and scratch
reconstruction capability.")
(license gpl2))) ; libraries under lgpl2.1
+(define-public cdrdao
+ (package
+ (name "cdrdao")
+ (version "1.2.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cdrdao/cdrdao.git")
+ (commit
+ (string-append "rel_" (string-replace-substring version "." "_")))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1gcl8ibyylamy2d1piq3749nw3xrlp12r0spzp2gmni57b8a6b7j"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags
+ (list
+ ;; GCDMaster depends on obsolete libgnomeuimm, see
+ ;; <https://github.com/cdrdao/cdrdao/issues/3>.
+ "--without-gcdmaster"
+ ;; Use the native SCSI interface.
+ "--without-scglib")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'fix-configure.ac
+ (lambda _
+ ;; Remove reference to missing macro.
+ (substitute* "configure.ac" (("^AM_GCONF_SOURCE_2.*") ""))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ao" ,ao)
+ ("lame" ,lame)
+ ("libmad" ,libmad)
+ ("libvorbis" ,libvorbis)))
+ (home-page "http://cdrdao.sourceforge.net")
+ (synopsis "Read and write CDs in disk-at-once mode")
+ (description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
+based on a textual description of the contents. This mode writes the complete
+disc – lead-in, one or more tracks, and lead-out – in a single step and is
+commonly used with audio CDs. @code{cdrdao} can also handle the bin/cue
+format, commonly used for VCDs or disks with subchannel data.")
+ (license gpl2+)))
+
(define-public cdrtools
(package
(name "cdrtools")
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 6ae4273738..c71edc7655 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -24,7 +24,7 @@
;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017, 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Nikita <nikita@n0.is>
-;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2017, 2018, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
@@ -33,6 +33,7 @@
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Josh Marshall <joshua.r.marshall.1991@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -105,8 +106,8 @@ source code editors and IDEs.")
;; Some packages require this older version. Removed once no longer needed.
(define-public check-0.12
- (package/inherit
- check
+ (package
+ (inherit check)
(version "0.12.0")
(source (origin
(method url-fetch)
@@ -116,6 +117,54 @@ source code editors and IDEs.")
(base32
"0d22h8xshmbpl9hba9ch3xj8vb9ybm5akpsbbh7yj07fic4h2hj6"))))))
+(define-public clitest
+ (package
+ (name "clitest")
+ (version "0.3.0")
+ (home-page "https://github.com/aureliojargas/clitest")
+ (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
+ "0zw5wra9hc717srmcar1wm4i34kyj8c49ny4bb7y3nrvkjp2pdb5"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; This package is distributed as a single shell script and comes
+ ;; without a proper build system.
+ (delete 'configure)
+ (delete 'build)
+ (replace 'check
+ (lambda _
+ (substitute* "test.md"
+ ;; One test looks for an error from grep in the form "grep: foo",
+ ;; but our grep returns the absolute file name on errors. Adjust
+ ;; the test to cope with that.
+ (("sed 's/\\^e\\*grep: \\.\\*/")
+ "sed 's/.*e*grep: .*/"))
+
+ (setenv "HOME" "/tmp")
+ (invoke "./clitest" "test.md")))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "clitest" (string-append out "/bin"))
+ (install-file "README.md"
+ (string-append out "/share/doc/clitest-" ,version))
+ #t))))))
+ (native-inputs
+ `(("perl" ,perl))) ;for tests
+ (synopsis "Command line test tool")
+ (description
+ "@command{clitest} is a portable shell script that performs automatic
+testing of Unix command lines.")
+ (license license:expat)))
+
(define-public cunit
(package
(name "cunit")
@@ -970,6 +1019,33 @@ supports coverage of subprocesses.")
(define-public python2-pytest-runner-2
(package-with-python2 python-pytest-runner-2))
+(define-public python-pytest-lazy-fixture
+ (package
+ (name "python-pytest-lazy-fixture")
+ (version "0.6.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-lazy-fixture" version))
+ (sha256
+ (base32 "1b0hmnsxw4s2wf9pks8dg6dfy5cx3zcbzs8517lfccxsfizhqz8f"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make the installed plugin discoverable by Pytest.
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))))))
+ (propagated-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/tvorog/pytest-lazy-fixture")
+ (synopsis "Use fixtures in @code{pytest.mark.parametrize}")
+ (description "This plugin helps to use fixtures in
+@code{pytest.mark.parametrize}.")
+ (license license:expat)))
+
(define-public python-pytest-mock
(package
(name "python-pytest-mock")
@@ -1822,13 +1898,13 @@ failures.")
(define-public python-pytest-flakes
(package
(name "python-pytest-flakes")
- (version "1.0.1")
+ (version "4.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "pytest-flakes" version))
(sha256
(base32
- "0flag3n33kbhyjrhzmq990rvg4yb8hhhl0i48q9hw0ll89jp28lw"))))
+ "0hyind0gb950v9kfy0v97x66fb33slbqmxhrjvgbvsv0ayzn869l"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -1839,7 +1915,7 @@ failures.")
;; It's easier to run tests after install.
;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs)
- (invoke "py.test" "-vv"))))))
+ (invoke "py.test" "-vv" "-k" "not test_syntax_error"))))))
(native-inputs
`(("python-coverage" ,python-coverage)
("python-pytest" ,python-pytest)
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 9ab7ca1f91..d9ba53d832 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -98,6 +98,7 @@
"third_party/angle/src/third_party/compiler" ;BSD-2
"third_party/angle/src/third_party/libXNVCtrl" ;Expat
"third_party/angle/src/third_party/trace_event" ;BSD-3
+ "third_party/angle/src/third_party/volk" ;Expat
"third_party/angle/third_party/vulkan-headers" ;ASL2.0
"third_party/angle/third_party/vulkan-loader" ;ASL2.0
"third_party/angle/third_party/vulkan-tools" ;ASL2.0
@@ -117,6 +118,7 @@
;; XXX: This is a minified version of <https://d3js.org/>.
"third_party/catapult/tracing/third_party/d3" ;BSD-3
"third_party/catapult/tracing/third_party/gl-matrix" ;Expat
+ "third_party/catapult/tracing/third_party/jpeg-js" ;ASL2.0
;; XXX: Minified version of <https://github.com/Stuk/jszip>.
"third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
"third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
@@ -136,6 +138,7 @@
"third_party/depot_tools/owners.py" ;BSD-3
"third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
+ "third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
@@ -148,6 +151,7 @@
"third_party/google_input_tools/third_party/closure_library" ;ASL2.0
"third_party/google_input_tools/third_party/closure_library/third_party/closure" ;Expat
"third_party/googletest" ;BSD-3
+ "third_party/harfbuzz-ng" ;Expat
"third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
"third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3
@@ -171,6 +175,7 @@
"third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3
"third_party/lss" ;BSD-3
+ "third_party/mako" ;Expat
"third_party/markupsafe" ;BSD-3
"third_party/mesa_headers" ;Expat, SGI
"third_party/metrics_proto" ;BSD-3
@@ -199,6 +204,7 @@
"third_party/qcms" ;Expat
"third_party/rnnoise" ;BSD-3
"third_party/s2cellid" ;ASL2.0
+ "third_party/schema_org" ;CC-BY-SA3.0
"third_party/skia" ;BSD-3
"third_party/skia/include/third_party/skcms" ;BSD-3
"third_party/skia/third_party/skcms" ;BSD-3
@@ -208,6 +214,13 @@
"third_party/spirv-headers" ;ASL2.0
"third_party/SPIRV-Tools" ;ASL2.0
"third_party/sqlite" ;Public domain
+ "third_party/swiftshader" ;ASL2.0
+ "third_party/swiftshader/third_party/astc-encoder" ;ASL2.0
+ "third_party/swiftshader/third_party/llvm-7.0" ;NCSA
+ "third_party/swiftshader/third_party/llvm-subzero" ;NCSA
+ "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/usb_ids" ;BSD-3
"third_party/usrsctp" ;BSD-2
"third_party/wayland/wayland_scanner_wrapper.py" ;BSD-3
@@ -235,36 +248,73 @@
"v8/third_party/inspector_protocol" ;BSD-3
"v8/third_party/v8/builtins")) ;PSFL
-(define* (computed-origin-method gexp-promise hash-algo hash
- #:optional (name "source")
- #:key (system (%current-system))
- (guile (default-guile)))
- "Return a derivation that executes the G-expression that results
-from forcing GEXP-PROMISE."
- (mlet %store-monad ((guile (package->derivation guile system)))
- (gexp->derivation (or name "computed-origin")
- (force gexp-promise)
- #:graft? #f ;nothing to graft
- #:system system
- #:guile-for-build guile)))
-
-(define %chromium-version "81.0.4044.138")
-(define %ungoogled-revision "c2a89fb6b5b559c826796c811741fa8ed3e11de8")
+(define %blacklisted-files
+ ;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a
+ ;; nonfree license according to LICENSES in the same directory. As we don't
+ ;; run the Blink performance tests, just remove everything to save ~24MiB.
+ '("third_party/blink/perf_tests"))
+
+(define %ungoogled-revision "f08ce8b3f1300ef0750b5d6bf967b9cbbfd9a56d")
(define %debian-revision "debian/81.0.4044.92-1")
-(define package-revision "0")
-(define %package-version (string-append %chromium-version "-"
- package-revision "."
- (string-take %ungoogled-revision 7)))
+(define %gentoo-revision "55ef09d6709f4e4cbe23418e4ade0f219fa2fa1f")
-(define %chromium-origin
+(define (gentoo-patch name revision hash)
(origin
(method url-fetch)
- (uri (string-append "https://commondatastorage.googleapis.com"
- "/chromium-browser-official/chromium-"
- %chromium-version ".tar.xz"))
- (sha256
- (base32
- "19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l"))))
+ (uri (string-append "https://gitweb.gentoo.org/repo/gentoo.git/plain"
+ "/www-client/chromium/files/" name "?id=" revision))
+ (file-name (string-append "ungoogled-" name))
+ (sha256 (base32 hash))))
+
+(define %gentoo-patches
+ (list (gentoo-patch "chromium-fix-char_traits.patch" %gentoo-revision
+ "1zr9wj2rj5phwdiffykd8w3srmzn0xxgmznz762qp7rs7amnp8ns")
+ (gentoo-patch "chromium-blink-style_format.patch" %gentoo-revision
+ "098akk5l01m0n3zz08ycz1kp3xmjnbng6d399z1fnb2zigbf0b0z")
+ (gentoo-patch "chromium-78-protobuf-export.patch" %gentoo-revision
+ "1wbw29daqwyrnij4991v84955ydqfvvjpz4s2p40agnzmgdzwnsx")
+ (gentoo-patch "chromium-79-gcc-alignas.patch" %gentoo-revision
+ "1a6l4i9cicy8dpxxjamyw8cl2nmqfv3x9gbffrsr8571my6fh17s")
+ (gentoo-patch "chromium-80-gcc-quiche.patch" %gentoo-revision
+ "0rdlsymw6h8i6yhysiq4la53pwivzv1i9lh0gprh5cl367r1haww")
+ (gentoo-patch "chromium-82-gcc-noexcept.patch" %gentoo-revision
+ "0pljnysjvbv2ck0s159qssjhv1pfr32i0nb66smmfmfix2yaizqc")
+ (gentoo-patch "chromium-82-gcc-incomplete-type.patch" %gentoo-revision
+ "04751dnpmiasifhq29a1kyxlnq6f2fmd2qbkv7hxdlsxbzg3lhsv")
+ (gentoo-patch "chromium-82-gcc-template.patch" %gentoo-revision
+ "1ilmx9wmzyrwmfvr2mwc7m5z6lnbhjkms5k40i8yavqah6kcdbw2")
+ (gentoo-patch "chromium-82-gcc-iterator.patch" %gentoo-revision
+ "1xljai9cj99pf4q3l8hz90i8mhdbd8v6h1vj8y37v6j8p78n3zvj")
+ (gentoo-patch "chromium-83-gcc-template.patch" %gentoo-revision
+ "1bb1anqdrimza7d0gg4fmxij00563jd9k1azy8sz1ybd8gvrphqi")
+ (gentoo-patch "chromium-83-gcc-include.patch" %gentoo-revision
+ "0rs9jj71ridplndi967m0z47vqd8ryykg36gjx8iyf3580vr2hlw")
+ (gentoo-patch "chromium-83-gcc-permissive.patch" %gentoo-revision
+ "04mrmrg3pbwl3gph2n1dkbv4miz80xww1gysd39six028nxacjpg")
+ (gentoo-patch "chromium-83-gcc-iterator.patch" %gentoo-revision
+ "0q66399va607kjnk8n9xlcr740q7c522p2z7abyd2hgq2bxgglnv")
+ (gentoo-patch "chromium-83-gcc-serviceworker.patch" %gentoo-revision
+ "0klvcqqzldfhvqr3plja64qamgff1m2z1zcn325bj32gmpypqjx9")
+ (gentoo-patch "chromium-83-gcc-10.patch" %gentoo-revision
+ "0vfvh1jypqcb274bggacg165mw2q5gmn237cvrrwcjqalz0ahnry")
+ (gentoo-patch "chromium-83-icu67.patch" %gentoo-revision
+ "05spmjhg5f56mkq3f96vm4s2d9h6vqdxz5g8ibd9pf8ddnh4blnx")))
+
+(define (debian-patch name revision hash)
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://salsa.debian.org/chromium-team/chromium/-/raw/"
+ revision "/debian/patches/" name))
+ (file-name (match (string-split name #\/)
+ ((category name)
+ (string-append "ungoogled-chromium-" category "-" name))))
+ (sha256 (base32 hash))))
+
+(define %debian-patches
+ (list (debian-patch "system/nspr.patch" %debian-revision
+ "1x6ydc8pfks2c1dlwf0c58par6znjknvs9815576ycx27jl633dy")
+ (debian-patch "system/openjpeg.patch" %debian-revision
+ "0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j")))
(define %ungoogled-origin
(origin
@@ -275,145 +325,70 @@ from forcing GEXP-PROMISE."
(string-take %ungoogled-revision 7)))
(sha256
(base32
- "0bbr4a2gkgm3ykdgpj8x58sd3dwam6qkifhzfs2997681g7b2v2q"))))
-
-(define %debian-origin
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://salsa.debian.org/chromium-team/chromium.git")
- (commit %debian-revision)))
- (file-name (git-file-name "debian-chromium-packaging"
- (match (string-split %debian-revision #\/)
- ((_ revision) revision)
- (_ (string-take %debian-revision 7)))))
- (sha256
- (base32
- "0srgbcqga3l75bfkv3bnmjk416189nazsximvzdx2k5n8v5k4p3m"))))
+ "0kc40p8f7cls696gh6ign37l8j4x1pyyz32jkkli9cmrpbsjsadl"))))
-;; This is a "computed" origin that does the following:
-;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
-;; *) Applies Debians Chromium patches, for their unbundling and GCC work.
+;; This is a source 'snippet' that does the following:
+;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
+;; *) Runs the ungoogled patch-, domain substitution-, and scrubbing scripts.
;; *) Prunes all third_party directories that are not explicitly preserved.
;; *) Adjusts "GN" build files such that system libraries are preferred.
-(define ungoogled-chromium-source
- (let ((chromium-source %chromium-origin)
- (ungoogled-source %ungoogled-origin)
- (debian-source %debian-origin))
- (origin
- (method computed-origin-method)
- (file-name (string-append "ungoogled-chromium-" %package-version ".tar.xz"))
- (sha256 #f)
- (uri
- (delay
- (with-imported-modules '((guix build utils))
- #~(begin
- (use-modules (guix build utils)
- (ice-9 rdelim)
- (srfi srfi-1)
- (srfi srfi-26))
- (let ((chromium-dir (string-append "chromium-" #$%chromium-version))
- (preserved-files (list #$@%preserved-third-party-files)))
-
- (set-path-environment-variable
- "PATH" '("bin")
- (list #+(canonical-package patch)
- #+(canonical-package xz)
- #+(canonical-package tar)
- #+python-wrapper))
-
- (copy-recursively #+ungoogled-source "/tmp/ungoogled")
-
- (with-directory-excursion "/tmp/ungoogled"
-
- (format #t "Unpacking chromium tarball...~%")
- (force-output)
- (invoke "tar" "xf" #+chromium-source)
-
- ;; Ungoogled-Chromium contains a forked subset of the Debian
- ;; patches. Disable those, as we apply newer versions later.
- (substitute* "patches/series"
- ((".*/debian/.*")
- ""))
-
- (format #t "Ungooglifying...~%")
- (force-output)
- (invoke "python" "utils/prune_binaries.py" chromium-dir
- "pruning.list")
- (invoke "python" "utils/patches.py" "apply"
- chromium-dir "patches")
- (invoke "python" "utils/domain_substitution.py" "apply" "-r"
- "domain_regex.list" "-f" "domain_substitution.list"
- "-c" "/tmp/domainscache.tar.gz" chromium-dir)
-
- (with-directory-excursion chromium-dir
-
- (format #t "Applying Debian patches...~%")
- (force-output)
- (let* ((debian #+debian-source)
- (patches (string-append debian "/debian/patches"))
- (series (string-append patches "/series")))
- (with-input-from-file series
- (lambda ()
- (let loop ((line (read-line)))
- (unless (eof-object? line)
- (when (and (> (string-length line) 1)
- (not (string-prefix? "#" line))
- ;; Skip the Debian-specific ones.
- (not (string-prefix? "debianization/" line))
- (not (string-prefix? "buster/" line))
- (not (any (cute string-suffix? <> line)
- ;; These conflict with Ungoogled.
- '("widevine-buildflag.patch"
- "signin.patch"
- "third-party-cookies.patch"
-
- ;; Disable workarounds for the
- ;; Chromium "-lite" tarball. We
- ;; use the "full" version and don't
- ;; need these patches.
- "closure.patch"
- "owners.patch"
-
- ;; XXX: 'fixes/inspector.patch'
- ;; makes v8 reuse the top-level
- ;; third_party/inspector_protocol
- ;; instead of its own bundled copy,
- ;; but that does not work here for
- ;; some reason. Ignore that patch
- ;; and those that depend on it.
- "inspector.patch"))))
- (invoke "patch" "--force" "-p1" "--input"
- (string-append patches "/" line)
- "--no-backup-if-mismatch"))
- (loop (read-line)))))))
-
- (format #t "Pruning third party files...~%")
- (force-output)
- (apply invoke (string-append #+python-2 "/bin/python")
- "build/linux/unbundle/remove_bundled_libraries.py"
- "--do-remove" preserved-files)
-
- (format #t "Replacing GN files...~%")
- (force-output)
- (invoke "python" "build/linux/unbundle/replace_gn_files.py"
- "--system-libraries" "ffmpeg" "flac" "fontconfig"
- "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
- "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
- "libxslt" "openh264" "opus" "re2" "snappy" "yasm"
- "zlib"))
-
- (format #t (string-append "Packing new ungoogled tarball ...~%"))
- (force-output)
- (invoke "tar" "cvfa" #$output
- ;; Avoid non-determinism in the archive.
- "--mtime=@0"
- "--owner=root:0"
- "--group=root:0"
- "--sort=name"
- chromium-dir)
-
- #t)))))))))
+(define ungoogled-chromium-snippet
+ ;; Note: delay to cope with cyclic module imports at the top level.
+ (delay
+ #~(begin
+ (let ((chromium-dir (getcwd)))
+ (set-path-environment-variable
+ "PATH" '("bin")
+ (list #+patch #+python-wrapper #+xz))
+
+ ;; Apply patches before running the ungoogled scripts because
+ ;; domain substitution may break some of the patches.
+ (format #t "Applying assorted build fixes...~%")
+ (force-output)
+ (for-each (lambda (patch)
+ (invoke "patch" "-p1" "--force" "--input"
+ patch "--no-backup-if-mismatch"))
+ (append
+ '#+%gentoo-patches '#+%debian-patches
+ '#+(list (local-file
+ (search-patch
+ "ungoogled-chromium-system-jsoncpp.patch"))
+ (local-file
+ (search-patch
+ "ungoogled-chromium-system-zlib.patch")))))
+
+ (with-directory-excursion #+%ungoogled-origin
+ (format #t "Ungooglifying...~%")
+ (force-output)
+ (invoke "python" "utils/prune_binaries.py" chromium-dir
+ "pruning.list")
+ (invoke "python" "utils/patches.py" "apply"
+ chromium-dir "patches")
+ (invoke "python" "utils/domain_substitution.py" "apply" "-r"
+ "domain_regex.list" "-f" "domain_substitution.list"
+ "-c" "/tmp/domainscache.tar.gz" chromium-dir))
+
+ ;; Run after the ungoogled scripts to avoid interfering with
+ ;; patches or file lists.
+ (format #t "Removing blacklisted files...~%")
+ (force-output)
+ (for-each delete-file-recursively '#$%blacklisted-files)
+
+ (format #t "Pruning third party files...~%")
+ (force-output)
+ (apply invoke (string-append #+python-2 "/bin/python")
+ "build/linux/unbundle/remove_bundled_libraries.py"
+ "--do-remove" '#$%preserved-third-party-files)
+
+ (format #t "Replacing GN files...~%")
+ (force-output)
+ (invoke "python" "build/linux/unbundle/replace_gn_files.py"
+ "--system-libraries" "ffmpeg" "flac" "fontconfig"
+ "freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
+ "libjpeg" "libpng" "libvpx" "libwebp" "libxml"
+ "libxslt" "openh264" "opus" "re2" "snappy" "yasm"
+ "zlib")
+ #t))))
(define opus+custom
(package/inherit opus
@@ -430,9 +405,19 @@ from forcing GEXP-PROMISE."
(define-public ungoogled-chromium
(package
(name "ungoogled-chromium")
- (version %package-version)
+ (version (string-append "83.0.4103.116-0."
+ (string-take %ungoogled-revision 7)))
(synopsis "Graphical web browser")
- (source ungoogled-chromium-source)
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://commondatastorage.googleapis.com"
+ "/chromium-browser-official/chromium-"
+ (car (string-split version #\-)) ".tar.xz"))
+ (sha256
+ (base32
+ "1hravbi1lazmab2mih465alfzji1kzy38zya1visbwz9zs6pw35v"))
+ (modules '((guix build utils)))
+ (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
@@ -472,7 +457,6 @@ from forcing GEXP-PROMISE."
"enable_remoting=false"
"enable_reporting=false"
"enable_service_discovery=false"
- "enable_swiftshader=false"
"enable_vr=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
@@ -496,6 +480,7 @@ from forcing GEXP-PROMISE."
"use_openh264=true"
"use_pulseaudio=true"
"link_pulseaudio=true"
+ "icu_use_data_file=false"
;; VA-API acceleration is currently only supported on x86_64-linux.
,@(if (string-prefix? "x86_64" (or (%current-target-system)
@@ -622,17 +607,6 @@ from forcing GEXP-PROMISE."
(substitute* "device/udev_linux/udev1_loader.cc"
(("libudev\\.so\\.1")
(string-append udev "/lib/libudev.so.1")))
- (substitute*
- '("ui/ozone/platform/x11/gl_ozone_glx.cc"
- "ui/ozone/common/egl_util.cc"
- "ui/gl/init/gl_initializer_x11.cc"
- "third_party/angle/src/libANGLE/renderer/gl/glx/FunctionsGLX.cpp")
- (("libGL\\.so\\.1")
- (string-append mesa "/lib/libGL.so.1"))
- (("libEGL\\.so\\.1")
- (string-append mesa "/lib/libEGL.so.1"))
- (("libGLESv2\\.so\\.2")
- (string-append mesa "/lib/libGLESv2.so.2")))
#t)))
(add-before 'configure 'prepare-build-environment
(lambda* (#:key inputs #:allow-other-keys)
@@ -649,14 +623,11 @@ from forcing GEXP-PROMISE."
;; Clang plugins or newer versions.
"-Wno-unknown-warning-option")))
+ (setenv "CFLAGS" "-Wno-unknown-warning-option")
+
;; TODO: pre-compile instead. Avoids a race condition.
(setenv "PYTHONDONTWRITEBYTECODE" "1")
- (substitute*
- ;; From Debians 'system/node.patch'.
- "third_party/devtools-frontend/src/scripts/devtools_paths.py"
- (("/usr/bin/nodejs") (which "node")))
-
;; XXX: How portable is this.
(mkdir-p "third_party/node/linux/node-linux-x64")
(symlink (string-append (assoc-ref inputs "node") "/bin")
@@ -708,7 +679,7 @@ from forcing GEXP-PROMISE."
(lib (string-append out "/lib"))
(man (string-append out "/share/man/man1"))
(applications (string-append out "/share/applications"))
- (install-regexp (make-regexp "\\.(bin|pak)$"))
+ (install-regexp (make-regexp "\\.(bin|pak|so)$"))
(locales (string-append lib "/locales"))
(resources (string-append lib "/resources"))
(preferences (assoc-ref inputs "master-preferences"))
@@ -745,6 +716,10 @@ from forcing GEXP-PROMISE."
(symlink "../lib/chromium" exe)
(install-file "chromedriver" bin)
+ (for-each (lambda (so)
+ (install-file so (string-append lib "/swiftshader")))
+ (find-files "swiftshader" "\\.so$"))
+
(wrap-program exe
;; Avoid file manager crash. See <https://bugs.gnu.org/26593>.
`("XDG_DATA_DIRS" ":" prefix (,(string-append gtk+ "/share")))))
@@ -761,7 +736,7 @@ from forcing GEXP-PROMISE."
#t))))))
(native-inputs
`(("bison" ,bison)
- ("clang" ,clang-9)
+ ("clang" ,clang-10)
("gn" ,gn)
("gperf" ,gperf)
("ninja" ,ninja)
@@ -785,14 +760,18 @@ from forcing GEXP-PROMISE."
("dbus-glib" ,dbus-glib)
("expat" ,expat)
("flac" ,flac)
- ("ffmpeg" ,ffmpeg)
+
+ ;; FIXME: Change to ffmpeg 4.3 when supported, see
+ ;; <https://bugs.chromium.org/p/chromium/issues/detail?id=1095962>.
+ ("ffmpeg" ,ffmpeg-4.2)
+
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
("gtk+" ,gtk+)
("harfbuzz" ,harfbuzz)
- ("icu4c" ,icu4c)
+ ("icu4c" ,icu4c-67)
("jsoncpp" ,jsoncpp)
("lcms" ,lcms)
("libevent" ,libevent)
@@ -838,7 +817,8 @@ from forcing GEXP-PROMISE."
;; mid-end x86 system may need more than 24 hours to complete the build.
(properties '((timeout . 144000) ;40 hours
;; The linking step may take more than an hour on some hardware.
- (max-silent-time . 7200)))
+ (max-silent-time . 7200)
+ (cpe-name . "chrome")))
(home-page "https://github.com/Eloston/ungoogled-chromium")
(description
@@ -867,19 +847,10 @@ disabled in order to protect the users privacy.")
,@(package-inputs ungoogled-chromium)))
(arguments
(substitute-keyword-arguments (package-arguments ungoogled-chromium)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'add-ozone-patch
- (lambda _
- ;; Add missing include statement required when using libstdc++,
- ;; Clang and Ozone. Fixed in M81.
- (substitute* "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc"
- (("#include \"base/logging\\.h" all)
- (string-append "#include <algorithm>\n" all)))
- #t))))
((#:configure-flags flags)
`(append (list "use_ozone=true"
"ozone_platform_wayland=true"
+ "ozone_platform_x11=true"
"ozone_auto_platforms=false"
"ozone_platform=\"wayland\""
"use_xkbcommon=true"
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 317136e38f..81b54e8f90 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -47,8 +47,8 @@
#:use-module (guix build-system gnu))
(define-public cuirass
- (let ((commit "2280ae18eb25aa7034636c58bf288c9bd5a8fa3b")
- (revision "31"))
+ (let ((commit "91204db33ae07ce179dfc5dcf624f43b7b8117f5")
+ (revision "35"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@@ -60,7 +60,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1gbmpwgiwy740d936b052gfivzw52pgrny7j7lbl56wi9wnawkc9"))))
+ "1n8qlw26jazzc59grdii37dl3pfqyhyybcn2g785vm18gq1j4wd0"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
@@ -120,7 +120,7 @@
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
#t))))))
(inputs
- `(("guile" ,guile-3.0)
+ `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
("guile-fibers" ,guile-fibers)
("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-4)
diff --git a/gnu/packages/convmv.scm b/gnu/packages/convmv.scm
new file mode 100644
index 0000000000..2a9a4ec68c
--- /dev/null
+++ b/gnu/packages/convmv.scm
@@ -0,0 +1,60 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;;
+;;; 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 convmv)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages perl)
+ #:use-module (guix licenses)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu))
+
+(define-public convmv
+ (package
+ (name "convmv")
+ (version "2.05")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.j3e.de/linux/convmv/convmv-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "19hwv197p7c23f43vvav5bs19z9b72jzca2npkjsxgprwj5ardjk"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'bootstrap)
+ (delete 'configure)
+ (add-before 'check 'unpack-testsuite
+ (lambda _
+ (invoke "tar" "xf" "testsuite.tar")
+ (patch-shebang "suite/dotests.sh")
+ (patch-shebang "suite/parsable_tester.pl")
+ #t)))))
+ (inputs
+ `(("perl" ,perl)))
+ (synopsis "Convert filenames between character sets")
+ (description
+ "convmv is a file renamer, that converts between different encodings,
+e.g. from ISO-8859-1 to UTF-8. It is particularly usefuls for files with
+names, that display incorrectly.")
+ (license (list gpl2 gpl3))
+ (home-page "https://www.j3e.de/")))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 0a502a6063..ab5e57c0e2 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -107,14 +107,14 @@ degree elevation and curve fitting.")
(define-public r-v8
(package
(name "r-v8")
- (version "3.1.0")
+ (version "3.2.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "V8" version))
(sha256
(base32
- "0xdljralgwyivdhx2a7kqf3yv4ijl4rdrz2p7p59lj2x5d2qyanf"))))
+ "0z0dwa538lkggawiwrlplz698xznzlgv9fwhdslm7g7gdxyf0xgm"))))
(properties `((upstream-name . "V8")))
(build-system r-build-system)
(arguments
@@ -193,6 +193,26 @@ programming packages such as @code{knitr} and @code{rmarkdown}.")
the system clipboards.")
(license license:gpl3)))
+(define-public r-zoo
+ (package
+ (name "r-zoo")
+ (version "1.8-8")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "zoo" version))
+ (sha256
+ (base32
+ "1rrw431jwaxd9xljp73f15rhcxvwc0xlyrmr0ghi5fj7a03c932f"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-lattice" ,r-lattice)))
+ (home-page "http://zoo.R-Forge.R-project.org/")
+ (synopsis "S3 infrastructure for regular and irregular time series")
+ (description "This package contains an S3 class with methods for totally
+ordered indexed observations. It is particularly aimed at irregular time
+series of numeric vectors/matrices and factors.")
+ (license license:gpl2+)))
+
(define-public r-ggpmisc
(package
(name "r-ggpmisc")
@@ -850,17 +870,17 @@ directory.")
(define-public r-htmltools
(package
(name "r-htmltools")
- (version "0.4.0")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (cran-uri "htmltools" version))
(sha256
(base32
- "06l17d8jkf438yk2mchpsp4j90bynnapz3nabh5vkcc324p5a62v"))))
+ "07fjznax5sin563ddnzlb7iwc8b39wzf7ymjn66pbmxgskijq2pz"))))
(build-system r-build-system)
(propagated-inputs
- `(("r-digest" ,r-digest)
- ("r-rcpp" ,r-rcpp)
+ `(("r-base64enc" ,r-base64enc)
+ ("r-digest" ,r-digest)
("r-rlang" ,r-rlang)))
(home-page "https://cran.r-project.org/web/packages/htmltools")
(synopsis "R tools for HTML")
@@ -894,14 +914,14 @@ applications.")
(define-public r-htmltable
(package
(name "r-htmltable")
- (version "1.13.3")
+ (version "2.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "htmlTable" version))
(sha256
(base32
- "0g9r156k9yl1f092hfw3b9wjx11akf0shbi3x0d0mvpnflvc8nfl"))))
+ "1a1al4kld7lrapc2i086crr78kbgrskahs221iy9v77x0nhin2q3"))))
(properties `((upstream-name . "htmlTable")))
(build-system r-build-system)
(propagated-inputs
@@ -912,6 +932,8 @@ applications.")
("r-magrittr" ,r-magrittr)
("r-rstudioapi" ,r-rstudioapi)
("r-stringr" ,r-stringr)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "http://gforge.se/packages/")
(synopsis "Advanced tables for Markdown/HTML")
(description
@@ -2071,13 +2093,13 @@ is provided.")
(define-public r-calibrate
(package
(name "r-calibrate")
- (version "1.7.5")
+ (version "1.7.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "calibrate" version))
(sha256
- (base32 "1s423nr176l2sc66wp7hzgqkv7c2bq8d2bjrrvrrm5qa9y3zdx1k"))))
+ (base32 "19kgrnsyq67iqv1biyssqi30a6v2836ql20nabpy2m692ns0jfvi"))))
(build-system r-build-system)
(propagated-inputs
`(("r-mass" ,r-mass)))
@@ -2131,14 +2153,14 @@ validation and filtering on the values, making options invisible or private.")
(define-public r-circlize
(package
(name "r-circlize")
- (version "0.4.9")
+ (version "0.4.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "circlize" version))
(sha256
(base32
- "14944vn0n5d095mpjyag4fz8vy04m6wxb6mmyygi8q813akikm3h"))))
+ "1xb1jq3mg4kw1513zv1i09vhn7rj7f8vp0bnms2qml74s47wxsgk"))))
(build-system r-build-system)
(propagated-inputs
`(("r-colorspace" ,r-colorspace)
@@ -3263,14 +3285,14 @@ multivariate and 5 functional classification problems are included.")
(define-public r-gower
(package
(name "r-gower")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "gower" version))
(sha256
(base32
- "007ivwn1nagpi26qq8iih1c2l61c53glvv60n90hi341ry8vwgxg"))))
+ "0c9n921wn4hhlvjq96r4nkk96s5788376cbldr7y7bwz348200iz"))))
(build-system r-build-system)
(home-page "https://github.com/markvanderloo/gower")
(synopsis "Gower's distance")
@@ -3424,14 +3446,14 @@ provides a one-row summary of model-level statistics.")
(define-public r-recipes
(package
(name "r-recipes")
- (version "0.1.12")
+ (version "0.1.13")
(source
(origin
(method url-fetch)
(uri (cran-uri "recipes" version))
(sha256
(base32
- "0hbnrqgzazg401nk5fhljif7wnspicki179qf215r34y9wm8g3xj"))))
+ "1d3pmprkiz60w7lq5q4lpl5zlwf7fg7qghf7sq6xs1294w54gzbs"))))
(build-system r-build-system)
(propagated-inputs
`(("r-dplyr" ,r-dplyr)
@@ -3439,6 +3461,7 @@ provides a one-row summary of model-level statistics.")
("r-glue" ,r-glue)
("r-gower" ,r-gower)
("r-ipred" ,r-ipred)
+ ("r-lifecycle" ,r-lifecycle)
("r-lubridate" ,r-lubridate)
("r-magrittr" ,r-magrittr)
("r-matrix" ,r-matrix)
@@ -3839,18 +3862,20 @@ structure.")
(define-public r-vioplot
(package
(name "r-vioplot")
- (version "0.3.4")
+ (version "0.3.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "vioplot" version))
(sha256
(base32
- "1fsklymilspzz5fzlj7666x09aglaw0v4x0yfjjzy4vr5qpjc529"))))
+ "0aiy615kn9lpr2cs757g3pklg81n01yhqh0wrwv111fn3cy86r0v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-sm" ,r-sm)
("r-zoo" ,r-zoo)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
(home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler")
(synopsis "Violin plot")
(description
@@ -4331,13 +4356,13 @@ iVAT).")
(define-public r-xfun
(package
(name "r-xfun")
- (version "0.14")
+ (version "0.15")
(source
(origin
(method url-fetch)
(uri (cran-uri "xfun" version))
(sha256
- (base32 "183f6d7lr116f90j37a8hfr6ni1x9xkqj79s8lnky1jwr6zj3ha9"))))
+ (base32 "1fdipwrl45bznb17da4169ria5jax0f2649yj5accw6qr6wsc8bj"))))
(build-system r-build-system)
;; knitr itself depends on xfun
#;
@@ -4479,14 +4504,14 @@ terminals.")
(define-public r-tinytex
(package
(name "r-tinytex")
- (version "0.23")
+ (version "0.24")
(source
(origin
(method url-fetch)
(uri (cran-uri "tinytex" version))
(sha256
(base32
- "084jd1m2i3zyxxlls7skq3jxv3b5cgps3yk60q1yzyy9sxslab7m"))))
+ "0mc9i7r45s5kagcfig508dbyf6jir6q4ghq9cxqvnpxp6ymh4qpr"))))
(build-system r-build-system)
(propagated-inputs
`(("r-xfun" ,r-xfun)))
@@ -5313,14 +5338,14 @@ systems.")
(define-public r-radiant-data
(package
(name "r-radiant-data")
- (version "1.3.4")
+ (version "1.3.9")
(source
(origin
(method url-fetch)
(uri (cran-uri "radiant.data" version))
(sha256
(base32
- "19sjjb49inrfl7jzq4zpwhdslni0zrp30bl58pisin29ka3ylpzs"))
+ "19gbc7k1hsi6hg6ka8i70wlw8j9fs9wkpn36761lzbcyam6vgqn0"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -6227,14 +6252,14 @@ and adds the annotation to the plot.")
(define-public r-rstatix
(package
(name "r-rstatix")
- (version "0.5.0")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rstatix" version))
(sha256
(base32
- "0ikbjmr58ah39rlwyiix50kl3yk9j7jngsvl6hh973392qdvmch6"))))
+ "0nwwvxwr4z3j4n9z8cnvwghppc836g47n0ia98chk272qwh8xcpb"))))
(properties `((upstream-name . "rstatix")))
(build-system r-build-system)
(propagated-inputs
@@ -6242,6 +6267,7 @@ and adds the annotation to the plot.")
("r-car" ,r-car)
("r-corrplot" ,r-corrplot)
("r-dplyr" ,r-dplyr)
+ ("r-generics" ,r-generics)
("r-magrittr" ,r-magrittr)
("r-purrr" ,r-purrr)
("r-rlang" ,r-rlang)
@@ -6634,23 +6660,106 @@ be added or removed. When working with Word documents, a cursor can be used
to help insert or delete content at a specific location in the document.")
(license license:gpl3)))
+(define-public r-profilemodel
+ (package
+ (name "r-profilemodel")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "profileModel" version))
+ (sha256
+ (base32
+ "0yq8hy43h62hlz8bbf9ila4a3xcwizi1if27b78xc5y857ncwad8"))))
+ (properties `((upstream-name . "profileModel")))
+ (build-system r-build-system)
+ (home-page "https://github.com/ikosmidis/profileModel")
+ (synopsis "Profiling inference functions for various model classes")
+ (description
+ "This package provides tools that can be used to calculate, evaluate,
+plot and use for inference the profiles of *arbitrary* inference functions for
+arbitrary @code{glm}-like fitted models with linear predictors. More information
+on the methods that are implemented can be found in Kosmidis (2008)
+@url{https://www.r-project.org/doc/Rnews/Rnews_2008-2.pdf}.")
+ (license license:gpl2+)))
+
+(define-public r-brglm
+ (package
+ (name "r-brglm")
+ (version "0.6.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "brglm" version))
+ (sha256
+ (base32
+ "0c9ngscc6zlfm90fqyggnj04qfkhp5qgf5q3wnfpxwyc8cm47by2"))))
+ (properties `((upstream-name . "brglm")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-profilemodel" ,r-profilemodel)))
+ (home-page "https://github.com/ikosmidis/brglm")
+ (synopsis "Bias reduction in binomial-response generalized linear models")
+ (description
+ "Fit generalized linear models with binomial responses using either an
+adjusted-score approach to bias reduction or maximum penalized likelihood
+where penalization is by Jeffreys invariant prior. These procedures return
+estimates with improved frequentist properties (bias, mean squared error) that
+are always finite even in cases where the maximum likelihood estimates are
+infinite (data separation). Fitting takes place by fitting generalized linear
+models on iteratively updated pseudo-data. The interface is essentially the
+same as @code{glm}. More flexibility is provided by the fact that custom
+pseudo-data representations can be specified and used for model fitting.
+Functions are provided for the construction of confidence intervals for the
+reduced-bias estimates.")
+ (license license:gpl2+)))
+
+(define-public r-entropy
+ (package
+ (name "r-entropy")
+ (version "1.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "entropy" version))
+ (sha256
+ (base32
+ "10vg4818q5g54pv2nn9x5i7pvky5nsv96syy47pz2mgqp1273cpd"))))
+ (properties `((upstream-name . "entropy")))
+ (build-system r-build-system)
+ (home-page "https://www.strimmerlab.org/software/entropy/")
+ (synopsis "Estimation of entropy, mutual information and related quantities")
+ (description
+ "This package implements various estimators of entropy, such as the
+shrinkage estimator by Hausser and Strimmer, the maximum likelihood and the
+Millow-Madow estimator, various Bayesian estimators, and the Chao-Shen
+estimator. It also offers an R interface to the NSB estimator. Furthermore,
+it provides functions for estimating Kullback-Leibler divergence, chi-squared,
+mutual information, and chi-squared statistic of independence. In addition
+there are functions for discretizing continuous random variables.")
+ (license license:gpl3+)))
+
(define-public r-abn
(package
(name "r-abn")
- (version "2.2")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "abn" version))
(sha256
(base32
- "19w6bdjyp4zwqs6p0flry4qxqynf9rh8ykdrfrp61wrdf7kysw0d"))))
+ "11nbg6dwvbj0ac7qvr203vzjnw5zc1a8cibb9l6rzzr7yfg16xzc"))))
(build-system r-build-system)
(inputs
`(("gsl" ,gsl)))
(propagated-inputs
- `(("r-lme4" ,r-lme4)
+ `(("r-boot" ,r-boot)
+ ("r-brglm" ,r-brglm)
+ ("r-entropy" ,r-entropy)
+ ("r-lme4" ,r-lme4)
("r-mass" ,r-mass)
+ ("r-moments" ,r-moments)
("r-nnet" ,r-nnet)
("r-rcpp" ,r-rcpp)
("r-rcpparmadillo" ,r-rcpparmadillo)
@@ -8217,14 +8326,14 @@ multiple-imputation datasets.")
(define-public r-magick
(package
(name "r-magick")
- (version "2.3")
+ (version "2.4.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "magick" version))
(sha256
(base32
- "182b4wahkq9q0scn99mql4vm9fp92nja0r5yizc4x9rjl492ahd8"))))
+ "1y1p2blkg0h6061ay7mdwssxbswgrc25raffp6d8d9cqhdmsa72s"))))
(build-system r-build-system)
(inputs
`(("imagemagick" ,imagemagick)
@@ -8234,7 +8343,8 @@ multiple-imputation datasets.")
("r-magrittr" ,r-magrittr)
("r-rcpp" ,r-rcpp)))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ("r-knitr" ,r-knitr)))
(home-page "https://github.com/ropensci/magick")
(synopsis "Advanced graphics and image-processing in R")
(description
@@ -8895,14 +9005,14 @@ differentiation.")
(define-public r-bayestestr
(package
(name "r-bayestestr")
- (version "0.6.0")
+ (version "0.7.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "bayestestR" version))
(sha256
(base32
- "0s7wdmk8avgaqk2b7fcf4bsh13isrkl1q4y7z2y8jhdagxxxnzd1"))))
+ "1nrycyzznzrlwnfwk1w3ixdq0bj82nri9kb2qiaiw8wwzwrsl1hd"))))
(properties `((upstream-name . "bayestestR")))
(build-system r-build-system)
(propagated-inputs
@@ -8922,14 +9032,14 @@ ROPE percentage and pd).")
(define-public r-performance
(package
(name "r-performance")
- (version "0.4.6")
+ (version "0.4.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "performance" version))
(sha256
(base32
- "08i9ngvga06abs2k50gvkh6iwl4r77bkmmchsqjibsy09wdvd8xj"))))
+ "0gw165wm2a0vjsvyll8z9k6qd156z3jf4priy1r745v63x4mnb5k"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bayestestr" ,r-bayestestr)
@@ -8949,14 +9059,14 @@ effects models and Bayesian models.")
(define-public r-ggeffects
(package
(name "r-ggeffects")
- (version "0.14.3")
+ (version "0.15.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggeffects" version))
(sha256
(base32
- "06p80bgjhjknzlb4vs4n41i9n9vv5agncakl9f92zkaahgyzd6sd"))))
+ "1bqvbhw5la3cj3v0gwava117ff24b1p450azln402gsxgfl3vw7r"))))
(build-system r-build-system)
(propagated-inputs
`(("r-insight" ,r-insight)
@@ -9446,20 +9556,18 @@ and related methods.")
(define-public r-rcppgsl
(package
(name "r-rcppgsl")
- (version "0.3.7")
+ (version "0.3.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "RcppGSL" version))
(sha256
- (base32 "0cnw2k7cfqrm79r6j283aybflxig80x4n4rjkfp2317wf10mrsa5"))))
+ (base32 "17nlayy6gvwb3v6l5aiqm84i75yf4dfi3zclxrgpqwf3j9v09yvz"))))
(properties `((upstream-name . "RcppGSL")))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)
("gsl" ,gsl)))
- (native-inputs
- `(("r-knitr" ,r-knitr))) ; for vignettes
(home-page "https://cran.r-project.org/web/packages/RcppGSL/")
(synopsis "Rcpp integration for GSL vectors and matrices")
(description
@@ -10297,14 +10405,14 @@ R packages (on CRAN, Bioconductor or Github).")
(define-public r-docopt
(package
(name "r-docopt")
- (version "0.6.1")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "docopt" version))
(sha256
(base32
- "06zknnd0c5s2y0hbddzdlr3m63ib783izpck6pgz7sjbab5pd068"))))
+ "1zxhwizs916qm5by7nfslqnarl2q5202xc2azlhrnzk0wj3khiwz"))))
(build-system r-build-system)
(home-page "https://github.com/docopt/docopt.R")
(synopsis "Command-line interface specification language")
@@ -11769,14 +11877,14 @@ dynamical correlation and dynamical covariance.")
(define-public r-genenet
(package
(name "r-genenet")
- (version "1.2.14")
+ (version "1.2.15")
(source
(origin
(method url-fetch)
(uri (cran-uri "GeneNet" version))
(sha256
(base32
- "0cdhrj15rz0w0pyw3r8mikrzsdh95y5i1c0pa3cn0c2bjnjx3x3n"))))
+ "11ba6ahsk3x9alvcw8bai2bpg84ki1m8nadrjjdhjg65svhw8njm"))))
(properties `((upstream-name . "GeneNet")))
(build-system r-build-system)
(propagated-inputs
@@ -12769,14 +12877,14 @@ latent growth curve models.")
(define-public r-nonnest2
(package
(name "r-nonnest2")
- (version "0.5-3")
+ (version "0.5-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "nonnest2" version))
(sha256
(base32
- "1mnv4pa583ir9s03h952hk40lwdywr3g88g76sk1zsa54rcmn82c"))))
+ "07nr54hxdnc4k022nd4a2g9w9l9ym2ikfr978rrnqc71wx750i0z"))))
(build-system r-build-system)
(propagated-inputs
`(("r-compquadform" ,r-compquadform)
@@ -13446,14 +13554,14 @@ utilities for sequence data management under the ACNUC system.")
(define-public r-units
(package
(name "r-units")
- (version "0.6-6")
+ (version "0.6-7")
(source
(origin
(method url-fetch)
(uri (cran-uri "units" version))
(sha256
(base32
- "11x6xz1fbml28xmrhgn4sii9vfyj3gyfc1dfxahdg9cszdmcgdnh"))))
+ "1rdpbkiqcabz00fqzzs98v89v4cgvcd4pb00pwxzkq6vmwmscwrz"))))
(build-system r-build-system)
(inputs
`(("udunits" ,udunits)))
@@ -13578,14 +13686,14 @@ tessellation.")
(define-public r-sf
(package
(name "r-sf")
- (version "0.9-3")
+ (version "0.9-4")
(source
(origin
(method url-fetch)
(uri (cran-uri "sf" version))
(sha256
(base32
- "0qh9jxj88rhkwcd95g0l57cdrz5qqjw1b9yysz1hp9cp99485hcx"))))
+ "1xgmnz01pxvpg2ins1h65mlcrafqihlljcjlag8spq9ii7d5i7mx"))))
(build-system r-build-system)
(inputs
`(("gdal" ,gdal)
@@ -13962,14 +14070,14 @@ inbred lines, F2 intercrosses, and association mapping populations.")
(define-public r-ldheatmap
(package
(name "r-ldheatmap")
- (version "0.99-7")
+ (version "0.99-8")
(source
(origin
(method url-fetch)
(uri (cran-uri "LDheatmap" version))
(sha256
(base32
- "1r0j8bihi5z1x0sgaf7dwzpsw9i0nc1vylvipvc0cia2ka1lr9dc"))))
+ "1x3da3rbhyqb2ddngi48qv7vzb6vc347n9qhryr70qgcc1xvqj4z"))))
(properties `((upstream-name . "LDheatmap")))
(build-system r-build-system)
(propagated-inputs
@@ -14053,13 +14161,13 @@ SELECT or UPDATE queries to an end-point.")
(define-public r-bookdown
(package
(name "r-bookdown")
- (version "0.19")
+ (version "0.20")
(source (origin
(method url-fetch)
(uri (cran-uri "bookdown" version))
(sha256
(base32
- "137l0cyzw9ij2l3zyk3mm1k2db9vhbax6c9y4rydvh4i9gka5vlq"))))
+ "0gnshkp1aj7f29sjkhzxn890hz39nwaqdln61x8apmrc658nacdg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-htmltools" ,r-htmltools)
@@ -14656,14 +14764,14 @@ sets of URLs.")
(define-public r-ggforce
(package
(name "r-ggforce")
- (version "0.3.1")
+ (version "0.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggforce" version))
(sha256
(base32
- "04926cqrda6psvy2nzkkw4czwyxdp7fnxg76byp14v12kgd72lm0"))))
+ "1lplxyq5bgx90dgaimhynpcywag1gp6vlsy7q52ay1nfc35qmkjc"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
@@ -15839,14 +15947,14 @@ the current document.")
(define-public r-xgboost
(package
(name "r-xgboost")
- (version "1.0.0.2")
+ (version "1.1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "xgboost" version))
(sha256
(base32
- "1ld2w51c5fy3bl0kvjn1iplffc4lmin9s9zz5xx7xsm44d6j6kzd"))))
+ "13njhcxljhbcs37ni6r5174fk8kx9b5p7rlw1an1ak3w92jn56cq"))))
(build-system r-build-system)
(propagated-inputs
`(("r-data-table" ,r-data-table)
@@ -15871,14 +15979,14 @@ easily.")
(define-public r-umap
(package
(name "r-umap")
- (version "0.2.5.0")
+ (version "0.2.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "umap" version))
(sha256
(base32
- "0qp8zbh6fn8kn6q2h2lyjgmq3pr6gqwsd8ymqx25px13zjhxch9d"))))
+ "0zajn2sk705sckljxl5vz4q2sxpsqim2grmjq2jwwc8ysr1h2s9f"))))
(build-system r-build-system)
(propagated-inputs
`(("r-openssl" ,r-openssl)
@@ -16082,14 +16190,14 @@ guaranteeing well-connected communities.\" <arXiv:1810.08473>.")
(define-public r-patchwork
(package
(name "r-patchwork")
- (version "1.0.0")
+ (version "1.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "patchwork" version))
(sha256
(base32
- "0qrwbcswh7ylrmghi17k6wk7w51cz6mcmvcyyd41hy3m2ywmkywb"))))
+ "0wm93a40idrkzn5hpnykhznvh7hdbfqw0dkzzn0zk83qlwyc9g02"))))
(build-system r-build-system)
(propagated-inputs
`(("r-ggplot2" ,r-ggplot2)
@@ -21213,26 +21321,61 @@ Yue-Pilon's (Yue, 2002) pre-whitening approaches to determining trends in
climate data.")
(license license:lgpl2.1)))
+(define-public r-rlinsolve
+ (package
+ (name "r-rlinsolve")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "Rlinsolve" version))
+ (sha256
+ (base32
+ "1x02xxbkchcwwfa2123n9yqfzinfi0zba8zxhp977czzwysy75cc"))))
+ (properties `((upstream-name . "Rlinsolve")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-matrix" ,r-matrix)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rcpparmadillo" ,r-rcpparmadillo)
+ ("r-rdpack" ,r-rdpack)))
+ (home-page "https://cran.r-project.org/web/packages/Rlinsolve/")
+ (synopsis "Iterative solvers for (sparse) linear system of equations")
+ (description
+ "Solving a system of linear equations is one of the most fundamental
+computational problems for many fields of mathematical studies, such as
+regression problems from statistics or numerical partial differential
+equations. This package provides basic stationary iterative solvers such as
+Jacobi, Gauss-Seidel, Successive Over-Relaxation and SSOR methods.
+Nonstationary, also known as Krylov subspace methods are also provided.
+Sparse matrix computation is also supported in that solving large and sparse
+linear systems can be manageable using the @code{Matrix} package along with
+@code{RcppArmadillo}.")
+ (license license:gpl3+)))
+
(define-public r-zvcv
(package
(name "r-zvcv")
- (version "1.0.0")
+ (version "2.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "ZVCV" version))
(sha256
(base32
- "1npw836q2skx54843lgxvb0rfwafckjc8k8dljykm60ad3z7zak8"))))
+ "0np6h6x74kz1x13wmbkkm1wq43d8bnn2khzjc80prqdi6n0m9v8r"))))
(properties `((upstream-name . "ZVCV")))
(build-system r-build-system)
(propagated-inputs
`(("r-abind" ,r-abind)
+ ("r-bh" ,r-bh)
+ ("r-dplyr" ,r-dplyr)
("r-glmnet" ,r-glmnet)
+ ("r-magrittr" ,r-magrittr)
("r-mvtnorm" ,r-mvtnorm)
- ("r-partitions" ,r-partitions)
("r-rcpp" ,r-rcpp)
- ("r-rcpparmadillo" ,r-rcpparmadillo)))
+ ("r-rcpparmadillo" ,r-rcpparmadillo)
+ ("r-rlinsolve" ,r-rlinsolve)))
(home-page "https://cran.r-project.org/web/packages/ZVCV/")
(synopsis "Zero-Variance Control Variates")
(description
@@ -21303,19 +21446,18 @@ Encyclopedia of Integer Sequences} (OEIS) in the function help page.")
(define-public r-isoband
(package
(name "r-isoband")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "isoband" version))
(sha256
(base32
- "1ndlnv4g9pbd02y50sx4ffg2ccwqbi7fm2v1lh22wdd8pq33d20q"))))
+ "044fg014gb6v6v11gm7ivfipz45iqw9cpahjhaacw6kyahyb66zx"))))
(properties `((upstream-name . "isoband")))
(build-system r-build-system)
(propagated-inputs
- `(("r-rcpp" ,r-rcpp)
- ("r-testthat" ,r-testthat)))
+ `(("r-testthat" ,r-testthat)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "https://github.com/wilkelab/isoband")
@@ -22023,3 +22165,163 @@ multi-state models.")
"This package creates scatterpie plots, especially useful for plotting
pies on a map.")
(license license:artistic2.0)))
+
+(define-public r-boruta
+ (package
+ (name "r-boruta")
+ (version "7.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "Boruta" version))
+ (sha256
+ (base32
+ "0y2w4wb45kfnzrxcrdsiwgal9fsnlr3wad1sqdc70qv8gp921xbg"))))
+ (properties `((upstream-name . "Boruta")))
+ (build-system r-build-system)
+ (propagated-inputs `(("r-ranger" ,r-ranger)))
+ (home-page "https://gitlab.com/mbq/Boruta/")
+ (synopsis "Wrapper algorithm for all relevant feature selection")
+ (description
+ "This package provides an all relevant feature selection wrapper
+algorithm. It finds relevant features by comparing original attributes'
+importance with importance achievable at random, estimated using their
+permuted copies (shadows).")
+ (license license:gpl2+)))
+
+(define-public r-directlabels
+ (package
+ (name "r-directlabels")
+ (version "2020.1.31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "directlabels" version))
+ (sha256
+ (base32
+ "08s1gnwp4bn8xahwjaq0f1qzhwh2dvybzhq3z7xyzn8cnyzmis6c"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-quadprog" ,r-quadprog)))
+ (home-page "http://directlabels.r-forge.r-project.org/")
+ (synopsis "Direct labels for multicolor plots")
+ (description
+ "This package provides an extensible framework for automatically placing
+direct labels onto multicolor plots. Label positions are described using
+positioning methods that can be re-used across several different plots. There
+are heuristics for examining @code{trellis} and @code{ggplot} objects and
+inferring an appropriate positioning method.")
+ (license license:gpl3)))
+
+(define-public r-lsd
+ (package
+ (name "r-lsd")
+ (version "4.1-0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "LSD" version))
+ (sha256
+ (base32 "17pbdlcbhzf3v7l42mjikln1ga5xjp5r78gjg6a88iahk0lwwlvm"))))
+ (properties `((upstream-name . "LSD")))
+ (build-system r-build-system)
+ (home-page "https://cran.r-project.org/web/packages/LSD/")
+ (synopsis "Lots of superior depictions tool creates colorful plots")
+ (description
+ "This package creates lots of colorful plots in a multitude of variations.
+Try a demo of the LSD by running @code{demotour()}.")
+ ;; Either version
+ (license (list license:gpl2 license:gpl3))))
+
+(define-public r-fourcseq
+ (package
+ (name "r-fourcseq")
+ (version "1.21.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "FourCSeq" version))
+ (sha256
+ (base32 "0lhcjw2hmmdafq52c5fvpm1crnzynbslamzh7r6ygifmzaz2pa8x"))))
+ (properties `((upstream-name . "FourCSeq")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biobase" ,r-biobase)
+ ("r-biostrings" ,r-biostrings)
+ ("r-deseq2" ,r-deseq2)
+ ("r-fda" ,r-fda)
+ ("r-genomicalignments" ,r-genomicalignments)
+ ("r-genomicranges" ,r-genomicranges)
+ ("r-ggbio" ,r-ggbio)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-gtools" ,r-gtools)
+ ("r-lsd" ,r-lsd)
+ ("r-matrix" ,r-matrix)
+ ("r-reshape2" ,r-reshape2)
+ ("r-rsamtools" ,r-rsamtools)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-summarizedexperiment" ,r-summarizedexperiment)))
+ (native-inputs
+ `(("r-knitr" ,r-knitr)))
+ (home-page
+ "https://bioconductor.org/packages/release/bioc/html/FourCSeq.html")
+ (synopsis "Analysis of multiplexed 4C sequencing data")
+ (description
+ "This package is an R package dedicated to the analysis of (multiplexed)
+4C sequencing data. @code{r-fourcseq} provides a pipeline to detect specific
+interactions between DNA elements and identify differential interactions
+between conditions. The statistical analysis in R starts with individual bam
+files for each sample as inputs. To obtain these files, the package contains
+a Python script to demultiplex libraries and trim off primer sequences. With
+a standard alignment software the required bam files can be then be
+generated.")
+ (license license:gpl3+)))
+
+(define-public r-phylogram
+ (package
+ (name "r-phylogram")
+ (version "2.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "phylogram" version))
+ (sha256
+ (base32 "1p4h5pirc0m5pzc18q0jk3mcmb5n48gdf9abz03vml3a209xxl2v"))))
+ (properties `((upstream-name . "phylogram")))
+ (build-system r-build-system)
+ (propagated-inputs `(("r-ape" ,r-ape)))
+ (home-page "https://github.com/ropensci/phylogram/")
+ (synopsis "Dendrograms for evolutionary analysis")
+ (description
+ "The @code{r-phylogram} package is a tool for for developing phylogenetic
+trees as deeply-nested lists known as \"dendrogram\" objects. It provides
+functions for conversion between \"dendrogram\" and \"phylo\" class objects,
+as well as several tools for command-line tree manipulation and import/export
+via Newick parenthetic text. This improves accessibility to the comprehensive
+range of object-specific analytical and tree-visualization functions found
+across a wide array of bioinformatic R packages.")
+ (license license:gpl3)))
+
+(define-public r-kmer
+ (package
+ (name "r-kmer")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "kmer" version))
+ (sha256
+ (base32 "0jimn9r0abglwxdl1zqz0lxa99cmj6haydkxjzqfbpx9by80wnww"))))
+ (properties `((upstream-name . "kmer")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-openssl" ,r-openssl)
+ ("r-phylogram" ,r-phylogram)
+ ("r-rcpp" ,r-rcpp)))
+ (home-page "https://github.com/shaunpwilkinson/kmer/")
+ (synopsis "Fast K-Mer counting and clustering for biological sequence analysis")
+ (description
+ "@code{r-kmer} is an R package for rapidly computing distance matrices
+and clustering large sequence datasets using fast alignment-free k-mer
+counting and recursive k-means partitioning.")
+ (license license:gpl3)))
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index f4b0688e8d..bc29df5871 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -32,8 +32,10 @@
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages jemalloc)
@@ -49,6 +51,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@@ -149,10 +152,10 @@ Rust, using gimli.")
("rust-memmap" ,rust-memmap-0.7)
("rust-rustc-test" ,rust-rustc-test-0.3))))))
-(define-public rust-adler32-1.0
+(define-public rust-adler32-1
(package
(name "rust-adler32")
- (version "1.0.4")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
@@ -161,12 +164,15 @@ Rust, using gimli.")
(string-append name "-" version ".crate"))
(sha256
(base32
- "1hnan4fgmnidgn2k84hh2i67c3wp2c5iwd5hs61yi7gwwx1p6bjx"))))
+ "0bgks405vz823bphgwhj4l9h6vpfh900s0phfk4qqijyh9xhfysn"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
+ `(#:cargo-inputs
+ (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
+ ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
#:cargo-development-inputs
- (("rust-rand" ,rust-rand-0.4))))
+ (("rust-bencher" ,rust-bencher-0.1)
+ ("rust-rand" ,rust-rand-0.4))))
(home-page "https://github.com/remram44/adler32-rs")
(synopsis "Implementation of the Adler32 rolling hash algorithm")
(description
@@ -234,7 +240,7 @@ the Rust programming language.")
(define-public rust-aho-corasick-0.7
(package
(name "rust-aho-corasick")
- (version "0.7.10")
+ (version "0.7.13")
(source
(origin
(method url-fetch)
@@ -243,7 +249,7 @@ the Rust programming language.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1nka9509afjgal6lpymn8w2lq11dmjwxs8yjcmzys966if5l05l7"))))
+ "11hfmqf90rdvjdpk0x1lixw1s9n08y3fxfy9zqsk0k2wpbc68c84"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-memchr" ,rust-memchr-2.3))
@@ -439,7 +445,7 @@ shapes, lines and text to buffers.")
("rust-winapi" ,rust-winapi-0.3))
#:cargo-development-inputs
(("rust-doc-comment" ,rust-doc-comment-0.3)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-serde-json" ,rust-serde-json-1.0))))
(home-page "https://github.com/ogham/rust-ansi-term")
(synopsis "Library for ANSI terminal colours and styles")
@@ -633,7 +639,7 @@ text or blue underlined text, on ANSI terminals.")
(("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
("rust-itertools" ,rust-itertools-0.8)
("rust-model" ,rust-model-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.11)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-once-cell" ,rust-once-cell-1.2)
("rust-proptest" ,rust-proptest-0.8)
("rust-version-sync" ,rust-version-sync-0.8))))
@@ -642,33 +648,6 @@ text or blue underlined text, on ANSI terminals.")
(description "This package provides an atomically swappable Arc.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-arc-swap-0.3
- (package
- (inherit rust-arc-swap-0.4)
- (name "rust-arc-swap")
- (version "0.3.11")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "arc-swap" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0ha8724dpki985v52ifq5sd98xvpa5q51hyma52di75dbqbn4imw"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-development-inputs
- (("rust-crossbeam" ,rust-crossbeam-0.7)
- ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
- ("rust-itertools" ,rust-itertools-0.8)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-model" ,rust-model-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
- ("rust-parking-lot" ,rust-parking-lot-0.8)
- ("rust-proptest" ,rust-proptest-0.9)
- ("rust-version-sync" ,rust-version-sync-0.8))))))
-
(define-public rust-arg-enum-proc-macro-0.3
(package
(name "rust-arg-enum-proc-macro")
@@ -1111,10 +1090,10 @@ trace (backtrace) at runtime in a Rust program.")
(license (list license:asl2.0
license:expat))))
-(define-public rust-base64-0.11
+(define-public rust-base64-0.12
(package
(name "rust-base64")
- (version "0.11.0")
+ (version "0.12.2")
(source
(origin
(method url-fetch)
@@ -1123,7 +1102,14 @@ trace (backtrace) at runtime in a Rust program.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1iqmims6yvr6vwzyy54qd672zw29ipjj17p8klcr578c9ajpw6xl"))))
+ "0ryc48pp8dpx3rl1dcwn723dyfgifi4imh1f6kwd95lcqh6sy8z2"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; 'doctest' isn't stable until rust-1.40
+ (substitute* "src/lib.rs"
+ (("\\(doctest") "(test"))
+ #t))))
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs
@@ -1136,6 +1122,21 @@ trace (backtrace) at runtime in a Rust program.")
"This package encodes and decodes base64 as bytes or utf8.")
(license (list license:expat license:asl2.0))))
+(define-public rust-base64-0.11
+ (package
+ (inherit rust-base64-0.12)
+ (name "rust-base64")
+ (version "0.11.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "base64" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1iqmims6yvr6vwzyy54qd672zw29ipjj17p8klcr578c9ajpw6xl"))))))
+
(define-public rust-base64-0.10
(package
(inherit rust-base64-0.11)
@@ -1330,7 +1331,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
("rust-rustc-hash" ,rust-rustc-hash-1.1)
("rust-bitflags" ,rust-bitflags-1)
("rust-lazycell" ,rust-lazycell-1.2)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-clap" ,rust-clap-2)
("rust-which" ,rust-which-3.1))
@@ -1383,7 +1384,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
("rust-quote" ,rust-quote-1.0)
("rust-rustc-hash" ,rust-rustc-hash-1.1)
("rust-bitflags" ,rust-bitflags-1)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-clap" ,rust-clap-2)
("rust-which" ,rust-which-3.1))
@@ -1421,7 +1422,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
("rust-proc-macro2" ,rust-proc-macro2-0.4)
("rust-quote" ,rust-quote-0.6)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-shlex" ,rust-shlex-0.1)
("rust-which" ,rust-which-2.0))
#:cargo-development-inputs
@@ -1456,7 +1457,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
("rust-env-logger" ,rust-env-logger-0.5)
("rust-quote" ,rust-quote-0.5)
("rust-which" ,rust-which-1.0)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-clap" ,rust-clap-2))
#:cargo-development-inputs
@@ -1490,7 +1491,7 @@ that uses Serde for transforming structs into bytes and vice versa!")
("rust-peeking-take-while" ,rust-peeking-take-while-0.1)
("rust-proc-macro2" ,rust-proc-macro2-0.4)
("rust-quote" ,rust-quote-0.6)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-shlex" ,rust-shlex-0.1)
("rust-which" ,rust-which-2.0))
#:cargo-development-inputs
@@ -2014,10 +2015,10 @@ UTF-8.")
(description "Bytes related utility functions.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-bytecount-0.5
+(define-public rust-bytecount-0.6
(package
(name "rust-bytecount")
- (version "0.5.1")
+ (version "0.6.0")
(source
(origin
(method url-fetch)
@@ -2026,16 +2027,15 @@ UTF-8.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0z6a280kiy4kg5v3qw97pbyvwycr17fsm41804i8zpq7nmads3xy"))))
+ "0vplsx73zncb7mz8x0fs3k0p0rz5bmavj09vjk5nqn4z6fa7h0dh"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-packed-simd" ,rust-packed-simd-0.3))
#:cargo-development-inputs
- (("rust-criterion" ,rust-criterion-0.2)
- ("rust-quickcheck" ,rust-quickcheck-0.8)
- ("rust-rand" ,rust-rand-0.4))))
+ (("rust-criterion" ,rust-criterion-0.3)
+ ("rust-quickcheck" ,rust-quickcheck-0.9)
+ ("rust-rand" ,rust-rand-0.7))))
(home-page "https://github.com/llogiq/bytecount")
(synopsis "Count occurrences of a given byte")
(description
@@ -2043,8 +2043,31 @@ UTF-8.")
in a byte slice, fast.")
(license (list license:asl2.0 license:expat))))
+(define-public rust-bytecount-0.5
+ (package
+ (inherit rust-bytecount-0.6)
+ (name "rust-bytecount")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "bytecount" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0z6a280kiy4kg5v3qw97pbyvwycr17fsm41804i8zpq7nmads3xy"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-packed-simd" ,rust-packed-simd-0.3))
+ #:cargo-development-inputs
+ (("rust-criterion" ,rust-criterion-0.2)
+ ("rust-quickcheck" ,rust-quickcheck-0.8)
+ ("rust-rand" ,rust-rand-0.6))))))
+
(define-public rust-bytecount-0.4
(package
+ (inherit rust-bytecount-0.5)
(name "rust-bytecount")
(version "0.4.0")
(source
@@ -2056,20 +2079,13 @@ in a byte slice, fast.")
(sha256
(base32
"13qpy38z5wx0rzcdvr2h0ixbfgi1dbrif068il3hwn3k2mah88mr"))))
- (build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-packed-simd" ,rust-packed-simd-0.3))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.2)
("rust-quickcheck" ,rust-quickcheck-0.6)
- ("rust-rand" ,rust-rand-0.4))))
- (home-page "https://github.com/llogiq/bytecount")
- (synopsis "Counting bytes really fast")
- (description
- "This package counts occurrences of a given byte, or the number of UTF-8
-code points, in a byte slice, fast.")
- (license (list license:asl2.0 license:expat))))
+ ("rust-rand" ,rust-rand-0.4))))))
(define-public rust-byteorder-1.3
(package
@@ -2309,7 +2325,7 @@ exposed as Reader/Writer streams.")
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("cairo" ,cairo)))
(home-page "https://gtk-rs.org/")
@@ -2342,7 +2358,7 @@ exposed as Reader/Writer streams.")
("rust-libc" ,rust-libc-0.2)
("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))))
+ (("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-cairo-sys-rs-0.9
(package
@@ -2676,7 +2692,7 @@ used in argon2rs' bench suite.")
#:cargo-inputs
(("rust-jobserver" ,rust-jobserver-0.1))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/alexcrichton/cc-rs")
(synopsis "Invoke the native C compiler")
(description
@@ -3099,7 +3115,7 @@ for computer graphics.")
("rust-yaml-rust" ,rust-yaml-rust-0.3))
#:cargo-development-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-version-sync" ,rust-version-sync-0.8))))
(home-page "https://clap.rs/")
(synopsis "Command Line Argument Parser")
@@ -3441,12 +3457,12 @@ need compiler-rt intrinsics.")
("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-miow" ,rust-miow-0.3)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-rustfix" ,rust-rustfix-0.4)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
- ("rust-tempfile" ,rust-tempfile-3.0)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-tester" ,rust-tester-0.5)
("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://github.com/laumann/compiletest-rs")
@@ -3499,7 +3515,7 @@ harness.")
("rust-encode-unicode" ,rust-encode-unicode-0.3)
("rust-winapi" ,rust-winapi-0.3)
("rust-clicolors-control" ,rust-clicolors-control-1.0)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-lazy-static" ,rust-lazy-static-1))))
(home-page "https://github.com/mitsuhiko/console")
(synopsis "Terminal and console abstraction for Rust")
@@ -3530,7 +3546,7 @@ harness.")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
("rust-parking-lot" ,rust-parking-lot-0.8)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-termios" ,rust-termios-0.3)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-winapi" ,rust-winapi-0.3))))
@@ -3920,7 +3936,7 @@ intrinsics.")
("rust-num-traits" ,rust-num-traits-0.2)
("rust-oorandom" ,rust-oorandom-11.1)
("rust-plotters" ,rust-plotters-0.2)
- ("rust-rayon" ,rust-rayon-1.3)
+ ("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
@@ -3965,8 +3981,8 @@ intrinsics.")
("rust-rand-core" ,rust-rand-core-0.3)
("rust-rand-os" ,rust-rand-os-0.1)
("rust-rand-xoshiro" ,rust-rand-xoshiro-0.1)
- ("rust-rayon" ,rust-rayon-1.1)
- ("rust-rayon-core" ,rust-rayon-core-1.5)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-rayon-core" ,rust-rayon-core-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
@@ -4078,7 +4094,7 @@ intrinsics.")
#:cargo-inputs
(("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7))
#:cargo-development-inputs
- (("rust-num-cpus" ,rust-num-cpus-1.10)
+ (("rust-num-cpus" ,rust-num-cpus-1)
("rust-rand" ,rust-rand-0.6)
("rust-signal-hook" ,rust-signal-hook-0.1))))
(home-page
@@ -4110,7 +4126,7 @@ intrinsics.")
#:cargo-inputs
(("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6))
#:cargo-development-inputs
- (("rust-num-cpus" ,rust-num-cpus-1.10)
+ (("rust-num-cpus" ,rust-num-cpus-1)
("rust-rand" ,rust-rand-0.6)
("rust-signal-hook" ,rust-signal-hook-0.1))))))
@@ -4285,9 +4301,8 @@ intrinsics.")
"1a31wbrda1320gj2a6az1lin2d34xfc3xf88da4c17qy5lxcgiy3"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-autocfg" ,rust-autocfg-0.1)
+ `(#:cargo-inputs
+ (("rust-autocfg" ,rust-autocfg-1.0)
("rust-cfg-if" ,rust-cfg-if-0.1)
("rust-lazy-static" ,rust-lazy-static-1))
#:cargo-development-inputs
@@ -4619,31 +4634,42 @@ Transparency logs for use with sct crate.")
(origin
(method url-fetch)
(uri (crate-uri "curl-sys" version))
- (file-name (string-append name "-" version ".crate"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))))
+ "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file-recursively "curl") #t))))
(build-system cargo-build-system)
- ;(arguments
- ; `(#:phases
- ; (modify-phases %standard-phases
- ; (add-after 'unpack 'find-openssl
- ; (lambda* (#:key inputs #:allow-other-keys)
- ; (let ((openssl (assoc-ref inputs "openssl")))
- ; (setenv "OPENSSL_DIR" openssl))
- ; #t)))))
- ;(native-inputs
- ; `(("pkg-config" ,pkg-config)))
- ;(inputs
- ; `(("curl" ,curl)
- ; ("nghttp2" ,nghttp2)
- ; ("openssl" ,openssl)
- ; ("zlib" ,zlib)))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-libc" ,rust-libc-0.2)
+ ("rust-libnghttp2-sys" ,rust-libnghttp2-sys-0.1)
+ ("rust-libz-sys" ,rust-libz-sys-1.0)
+ ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+ ("rust-winapi" ,rust-winapi-0.3)
+ ("rust-cc" ,rust-cc-1.0)
+ ("rust-pkg-config" ,rust-pkg-config-0.3)
+ ("rust-vcpkg" ,rust-vcpkg-0.2))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'find-openssl
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((openssl (assoc-ref inputs "openssl")))
+ (setenv "OPENSSL_DIR" openssl))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("curl" ,curl)
+ ("nghttp2" ,nghttp2)
+ ("openssl" ,openssl)
+ ("zlib" ,zlib)))
(home-page "https://github.com/alexcrichton/curl-rust")
(synopsis "Native bindings to the libcurl library")
(description
"This package provides native bindings to the @code{libcurl} library.")
- (properties '((hidden? . #t)))
(license license:expat)))
(define-public rust-custom-derive-0.1
@@ -4835,7 +4861,7 @@ and arithmetic.")
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-adler32" ,rust-adler32-1.0)
+ (("rust-adler32" ,rust-adler32-1)
("rust-byteorder" ,rust-byteorder-1.3)
("rust-gzip-header" ,rust-gzip-header-0.3)
("rust-flate2" ,rust-flate2-1.0))))
@@ -5322,7 +5348,7 @@ from macros.")
(arguments
`(#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1.0)
("rust-strsim" ,rust-strsim-0.9))))
(home-page "https://github.com/docopt/docopt.rs")
@@ -5958,10 +5984,10 @@ Standard.")
`(#:skip-build? #t
#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
- ("rust-humantime" ,rust-humantime-1.3)
+ ("rust-humantime" ,rust-humantime-1)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1)
- ("rust-termcolor" ,rust-termcolor-1.0))))
+ ("rust-regex" ,rust-regex-1)
+ ("rust-termcolor" ,rust-termcolor-1))))
(home-page "https://github.com/sebasmagri/env_logger/")
(synopsis "Logging implementation for @code{log}")
(description
@@ -5984,13 +6010,12 @@ is configured via an environment variable.")
(base32
"1lx2s5nk96xx4i3m4zc4ghqgi8kb07dsnyiv8jk2clhax42dxz5a"))))
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
- ("rust-humantime" ,rust-humantime-1.2)
+ ("rust-humantime" ,rust-humantime-1)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1)
- ("rust-termcolor" ,rust-termcolor-1.0))))))
+ ("rust-regex" ,rust-regex-1)
+ ("rust-termcolor" ,rust-termcolor-1))))))
(define-public rust-env-logger-0.5
(package
@@ -6007,13 +6032,12 @@ is configured via an environment variable.")
(base32
"0f0c4i4c65jh8lci0afl5yg74ac0lbnpxcp81chj114zwg9a9c0m"))))
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
- ("rust-humantime" ,rust-humantime-1.2)
+ ("rust-humantime" ,rust-humantime-1)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1)
- ("rust-termcolor" ,rust-termcolor-1.0))))))
+ ("rust-regex" ,rust-regex-1)
+ ("rust-termcolor" ,rust-termcolor-1))))))
(define-public rust-env-logger-0.4
(package
@@ -6514,7 +6538,7 @@ provides implementations for @code{HashMap} and @code{HashSet}.")
("rust-redox-syscall" ,rust-redox-syscall-0.1)
("rust-winapi" ,rust-winapi-0.3))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.0))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/alexcrichton/filetime")
(synopsis "Platform-agnostic accessors of timestamps in File metadata")
(description
@@ -7428,7 +7452,7 @@ featuring zero allocations, composability, and iterator-like interfaces.")
(arguments
`(#:cargo-inputs
(("rust-futures" ,rust-futures-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.11))))
+ ("rust-num-cpus" ,rust-num-cpus-1))))
(home-page "https://github.com/rust-lang-nursery/futures-rs")
(synopsis "Implementation of thread pools which hand out futures")
(description
@@ -7457,7 +7481,7 @@ the computation on the threads themselves.")
(("rust-futures-core" ,rust-futures-core-0.3)
("rust-futures-task" ,rust-futures-task-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
- ("rust-num-cpus" ,rust-num-cpus-1.11))))
+ ("rust-num-cpus" ,rust-num-cpus-1))))
(home-page "https://rust-lang-nursery.github.io/futures-rs")
(synopsis "Executors for asynchronous tasks based on the futures-rs library")
(description
@@ -7485,7 +7509,7 @@ the computation on the threads themselves.")
(("rust-futures-channel-preview" ,rust-futures-channel-preview-0.3)
("rust-futures-core-preview" ,rust-futures-core-preview-0.3)
("rust-futures-util-preview" ,rust-futures-util-preview-0.3)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-pin-utils" ,rust-pin-utils-0.1))))
(home-page "https://github.com/rust-lang/futures-rs")
(synopsis
@@ -7915,7 +7939,7 @@ API library @code{gdi32}.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)))
(home-page "https://gtk-rs.org/")
@@ -8077,6 +8101,72 @@ API library @code{gdi32}.")
retrieving random data from system source.")
(license (list license:expat license:asl2.0))))
+(define-public rust-gettext-rs-0.4
+ (package
+ (name "rust-gettext-rs")
+ (version "0.4.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gettext-rs" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0z6fcsn1g3w9mlgfj6ln6qvqf8610w3zwvk6g062h657v114lifz"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-gettext-sys" ,rust-gettext-sys-0.19)
+ ("rust-locale-config" ,rust-locale-config-0.2))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'use-system-gettext
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gettext (assoc-ref inputs "gettext")))
+ (setenv "GETTEXT_SYSTEM" gettext)
+ #t))))))
+ (inputs
+ `(("gettext" ,gettext-minimal)))
+ (home-page "https://github.com/Koka/gettext-rs")
+ (synopsis "GNU Gettext FFI binding for Rust")
+ (description "This package provides GNU Gettext FFI bindings for Rust.")
+ (license license:expat)))
+
+(define-public rust-gettext-sys-0.19
+ (package
+ (name "rust-gettext-sys")
+ (version "0.19.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gettext-sys" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0lzi6ja81vc16mhcdmn3lw35120n9ijhvsy5dh5775mpbfxc8d70"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file "gettext-0.19.8.1.tar.xz") #t))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-cc" ,rust-cc-1.0))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'use-system-gettext
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gettext (assoc-ref inputs "gettext")))
+ (setenv "GETTEXT_SYSTEM" gettext)
+ #t))))))
+ (inputs
+ `(("gettext" ,gettext-minimal)))
+ (home-page "https://github.com/Koka/gettext-rs")
+ (synopsis "Gettext raw FFI bindings")
+ (description "This package provides raw FFI bindings for GNU Gettext.")
+ (license license:expat)))
+
(define-public rust-gfx-0.18
(package
(name "rust-gfx")
@@ -8253,8 +8343,7 @@ retrieving random data from system source.")
"0ma1zg2klqr47rasm7jn3zzd1j1pj2a8wkfbv5zsx10qh43phy4k"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-arrayvec" ,rust-arrayvec-0.4)
("rust-byteorder" ,rust-byteorder-1.3)
("rust-fallible-iterator" ,rust-fallible-iterator-0.2)
@@ -8264,10 +8353,10 @@ retrieving random data from system source.")
(("rust-crossbeam" ,rust-crossbeam-0.7)
("rust-getopts" ,rust-getopts-0.2)
("rust-memmap" ,rust-memmap-0.7)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-object" ,rust-object-0.12)
- ("rust-rayon" ,rust-rayon-1.1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
("rust-test-assembler" ,rust-test-assembler-0.1)
("rust-typed-arena" ,rust-typed-arena-1.4))))
(home-page "https://github.com/gimli-rs/gimli")
@@ -8335,7 +8424,7 @@ DWARF debugging format.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
@@ -8389,7 +8478,7 @@ DWARF debugging format.")
(("rust-docopt" ,rust-docopt-1.1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
- ("rust-tempfile" ,rust-tempfile-3.1)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-thread-id" ,rust-thread-id-3.3)
("rust-time" ,rust-time-0.1))))
(native-inputs
@@ -8593,7 +8682,7 @@ reading and writing git repositories.")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "https://gtk-rs.org/")
@@ -8625,7 +8714,7 @@ reading and writing git repositories.")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))))
+ (("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-glib-sys-0.9
(package
@@ -8648,7 +8737,7 @@ reading and writing git repositories.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
@@ -8736,7 +8825,7 @@ shell style patterns.")
(define-public rust-globset-0.4
(package
(name "rust-globset")
- (version "0.4.4")
+ (version "0.4.5")
(source
(origin
(method url-fetch)
@@ -8745,18 +8834,20 @@ shell style patterns.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wnqxq91liknmr2w93wjq2spyxbrd1pmnhd4nbi3921dr35a4nlj"))))
+ "0841ihdg1ps2618cs0kjbr3pn3rzrj24rx3n4pg1sa6p1d1xmlbs"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-aho-corasick" ,rust-aho-corasick-0.7)
("rust-bstr" ,rust-bstr-0.2)
("rust-fnv" ,rust-fnv-1.0)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1))
+ ("rust-regex" ,rust-regex-1)
+ ("rust-serde" ,rust-serde-1.0))
#:cargo-development-inputs
- (("rust-glob" ,rust-glob-0.3))))
+ (("rust-glob" ,rust-glob-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-serde-json" ,rust-serde-json-1.0))))
(home-page
"https://github.com/BurntSushi/ripgrep/tree/master/globset")
(synopsis
@@ -8976,7 +9067,7 @@ path simultaneously, and returning all of the globs that matched.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("glib" ,glib)))
(home-page "http://gtk-rs.org/")
@@ -9061,7 +9152,7 @@ loading crate.")
(define-public rust-grep-0.2
(package
(name "rust-grep")
- (version "0.2.4")
+ (version "0.2.7")
(source
(origin
(method url-fetch)
@@ -9070,7 +9161,7 @@ loading crate.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1pkhjladybzzciwg0mjk3vjz5fyi76hk0d3hgyzv2jxlyp8v4fyc"))))
+ "0s3y1rx94swqnciz2zzifm8pmy2iyck270skgxhgkq7ab6x96bjq"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -9082,7 +9173,7 @@ loading crate.")
("rust-grep-regex" ,rust-grep-regex-0.1)
("rust-grep-searcher" ,rust-grep-searcher-0.1))
#:cargo-development-inputs
- (("rust-termcolor" ,rust-termcolor-1.0)
+ (("rust-termcolor" ,rust-termcolor-1)
("rust-walkdir" ,rust-walkdir-2.2))))
(home-page "https://github.com/BurntSushi/ripgrep")
(synopsis "Line oriented regex searching as a library")
@@ -9093,7 +9184,7 @@ loading crate.")
(define-public rust-grep-cli-0.1
(package
(name "rust-grep-cli")
- (version "0.1.3")
+ (version "0.1.5")
(source
(origin
(method url-fetch)
@@ -9102,19 +9193,18 @@ loading crate.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "05a502x5m4fijwx7zj9icxna2dx86scm76ap80zr89pnvpbfk1hp"))))
+ "10mi7pkvlm5r478jhwlx15wlmqylq9fmkdg4qazz1xcifx7pi4im"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-atty" ,rust-atty-0.2)
("rust-bstr" ,rust-bstr-0.2)
("rust-globset" ,rust-globset-0.4)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-same-file" ,rust-same-file-1.0)
- ("rust-termcolor" ,rust-termcolor-1.0)
+ ("rust-termcolor" ,rust-termcolor-1)
("rust-winapi-util" ,rust-winapi-util-0.1))))
(home-page
"https://github.com/BurntSushi/ripgrep")
@@ -9127,7 +9217,7 @@ loading crate.")
(define-public rust-grep-matcher-0.1
(package
(name "rust-grep-matcher")
- (version "0.1.3")
+ (version "0.1.4")
(source
(origin
(method url-fetch)
@@ -9136,13 +9226,13 @@ loading crate.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "113lafx3abrr96ahpz6yn905ian1w3qsr5hijbb909p2j0xgmhkm"))))
+ "0l4k9c0iw17vqw02z0wbx1nfj9h2xiiqx1px32lhhw7ibbyy3w7x"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-memchr" ,rust-memchr-2.2))
#:cargo-development-inputs
- (("rust-regex" ,rust-regex-1.1))))
+ (("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/BurntSushi/ripgrep")
(synopsis "Trait for regular expressions")
(description
@@ -9154,7 +9244,7 @@ the regex engine it uses pluggable.")
(define-public rust-grep-pcre2-0.1
(package
(name "rust-grep-pcre2")
- (version "0.1.3")
+ (version "0.1.4")
(source
(origin
(method url-fetch)
@@ -9163,7 +9253,7 @@ the regex engine it uses pluggable.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wjc3gsan20gapga8nji6jcrmwn9n85q5zf2yfq6g50c7abkc2ql"))))
+ "0sk8b188j81zfrmmy7jsq0pckydz42qf7w0pd2lwyfsa2nw4yksb"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -9181,7 +9271,7 @@ the regex engine it uses pluggable.")
(define-public rust-grep-printer-0.1
(package
(name "rust-grep-printer")
- (version "0.1.3")
+ (version "0.1.5")
(source
(origin
(method url-fetch)
@@ -9190,19 +9280,18 @@ the regex engine it uses pluggable.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0mxc1yx5sx89f00imlm5d3hxwdgglv9rzwdki8ba50gvq8a2nr8m"))))
+ "004xv2bb52x801n0m1pknkdmzcjbi9fk9625m49y9s0ghh6d8d3z"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-base64" ,rust-base64-0.10)
+ `(#:cargo-inputs
+ (("rust-base64" ,rust-base64-0.12)
("rust-bstr" ,rust-bstr-0.2)
("rust-grep-matcher" ,rust-grep-matcher-0.1)
("rust-grep-searcher" ,rust-grep-searcher-0.1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
- ("rust-termcolor" ,rust-termcolor-1.0))
+ ("rust-termcolor" ,rust-termcolor-1))
#:cargo-development-inputs
(("rust-grep-regex" ,rust-grep-regex-0.1))))
(home-page "https://github.com/BurntSushi/ripgrep")
@@ -9215,7 +9304,7 @@ standard printing of search results, similar to grep itself.")
(define-public rust-grep-regex-0.1
(package
(name "rust-grep-regex")
- (version "0.1.4")
+ (version "0.1.8")
(source
(origin
(method url-fetch)
@@ -9224,17 +9313,17 @@ standard printing of search results, similar to grep itself.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "090k1sbn4jq680dmgp1jyqs7f9dzn198k0806kc8f40jcjazd88n"))))
+ "1lm3mpp93m8qw6sgcqw64inadp0z061x3xb0pnn51684594mxfm7"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-aho-corasick" ,rust-aho-corasick-0.7)
+ ("rust-bstr" ,rust-bstr-0.2)
("rust-grep-matcher" ,rust-grep-matcher-0.1)
("rust-log" ,rust-log-0.4)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-regex-syntax" ,rust-regex-syntax-0.6)
- ("rust-thread-local" ,rust-thread-local-0.3)
- ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))))
+ ("rust-thread-local" ,rust-thread-local-1.0))))
(home-page "https://github.com/BurntSushi/ripgrep")
(synopsis "Use Rust's regex library with the grep crate")
(description
@@ -9244,7 +9333,7 @@ standard printing of search results, similar to grep itself.")
(define-public rust-grep-searcher-0.1
(package
(name "rust-grep-searcher")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
@@ -9253,13 +9342,12 @@ standard printing of search results, similar to grep itself.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "09ag16im12v6k0lzkyvbvamn1iw15kfx1jbfldb7z5xa7208l04a"))))
+ "06sb8n7nvaa4dnqnsx9jxvs78nnzmyp110cyzdvxnw09i4h7728r"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-bstr" ,rust-bstr-0.2)
- ("rust-bytecount" ,rust-bytecount-0.5)
+ ("rust-bytecount" ,rust-bytecount-0.6)
("rust-encoding-rs" ,rust-encoding-rs-0.8)
("rust-encoding-rs-io" ,rust-encoding-rs-io-0.1)
("rust-grep-matcher" ,rust-grep-matcher-0.1)
@@ -9267,7 +9355,7 @@ standard printing of search results, similar to grep itself.")
("rust-memmap" ,rust-memmap-0.7))
#:cargo-development-inputs
(("rust-grep-regex" ,rust-grep-regex-0.1)
- ("rust-regex" ,rust-regex-1.1))))
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/BurntSushi/ripgrep")
(synopsis "Line oriented regex searching as a library")
(description
@@ -9418,7 +9506,7 @@ IEEE 754-2008 binary16 type.")
("rust-env-logger" ,rust-env-logger-0.6)
("rust-maplit" ,rust-maplit-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
- ("rust-tempfile" ,rust-tempfile-3.0))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/sunng87/handlebars-rust")
(synopsis "Handlebars templating implemented in Rust")
(description
@@ -9444,14 +9532,14 @@ the template engine that renders the official Rust website")
`(#:skip-build? #t
#:cargo-inputs
(("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
- ("rust-rayon" ,rust-rayon-1.1)
+ ("rust-rayon" ,rust-rayon-1)
("rust-rustc-std-workspace-alloc" ,rust-rustc-std-workspace-alloc-1.0)
("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0)
("rust-serde" ,rust-serde-1.0))
#:cargo-development-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
("rust-rand" ,rust-rand-0.5)
- ("rust-rayon" ,rust-rayon-1.1)
+ ("rust-rayon" ,rust-rayon-1)
("rust-rustc-hash" ,rust-rustc-hash-1.0)
("rust-serde-test" ,rust-serde-test-1.0))))
(home-page "https://github.com/rust-lang/hashbrown")
@@ -9922,10 +10010,10 @@ or response body.")
"This package provides a tiny, safe, speedy, zero-copy HTTP/1.x parser.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-humantime-1.3
+(define-public rust-humantime-2
(package
(name "rust-humantime")
- (version "1.3.0")
+ (version "2.0.1")
(source
(origin
(method url-fetch)
@@ -9934,15 +10022,12 @@ or response body.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0krwgbf35pd46xvkqg14j070vircsndabahahlv3rwhflpy4q06z"))))
+ "0yivhqyi8xik2j6sd3q45ybakjx8jsx5632dx9xjn0birh4dj6iw"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-quick-error" ,rust-quick-error-1.2))
- #:cargo-development-inputs
+ `(#:cargo-development-inputs
(("rust-chrono" ,rust-chrono-0.4)
- ("rust-rand" ,rust-rand-0.4)
+ ("rust-rand" ,rust-rand-0.6)
("rust-time" ,rust-time-0.1))))
(home-page "https://github.com/tailhook/humantime")
(synopsis
@@ -9952,11 +10037,11 @@ or response body.")
SystemTime}}.")
(license (list license:expat license:asl2.0))))
-(define-public rust-humantime-1.2
+(define-public rust-humantime-1
(package
- (inherit rust-humantime-1.3)
+ (inherit rust-humantime-2)
(name "rust-humantime")
- (version "1.2.0")
+ (version "1.3.0")
(source
(origin
(method url-fetch)
@@ -9965,7 +10050,15 @@ SystemTime}}.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "057ilhy6vc9iqhhby5ymh45m051pgxwq2z437gwkbnqhw7rfb9rw"))))))
+ "0krwgbf35pd46xvkqg14j070vircsndabahahlv3rwhflpy4q06z"))))
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-quick-error" ,rust-quick-error-1.2))
+ #:cargo-development-inputs
+ (("rust-chrono" ,rust-chrono-0.4)
+ ("rust-rand" ,rust-rand-0.4)
+ ("rust-time" ,rust-time-0.1))))))
(define-public rust-hyper-0.12
(package
@@ -10005,7 +10098,7 @@ SystemTime}}.")
("rust-want" ,rust-want-0.2))
#:cargo-development-inputs
(("rust-futures-timer" ,rust-futures-timer-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-rustc-version" ,rust-rustc-version-0.2)
("rust-pretty-env-logger" ,rust-pretty-env-logger-0.3)
("rust-serde" ,rust-serde-1.0)
@@ -10106,7 +10199,7 @@ SystemTime}}.")
(define-public rust-ignore-0.4
(package
(name "rust-ignore")
- (version "0.4.11")
+ (version "0.4.16")
(source
(origin
(method url-fetch)
@@ -10115,20 +10208,22 @@ SystemTime}}.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "07js5k91v870b2i5rl5shg37214yzwl0p6fjqy06y0v97gyawbaj"))))
+ "0wpcv4qgfzcyzydhlqa2qr56j72fj1a66s11xzdji59898mbzp12"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4)
+ (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
("rust-globset" ,rust-globset-0.4)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
("rust-memchr" ,rust-memchr-2.2)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-same-file" ,rust-same-file-1.0)
("rust-thread-local" ,rust-thread-local-1.0)
("rust-walkdir" ,rust-walkdir-2.2)
- ("rust-winapi-util" ,rust-winapi-util-0.1))))
+ ("rust-winapi-util" ,rust-winapi-util-0.1))
+ #:cargo-development-inputs
+ (("rust-crossbeam-channel" ,rust-crossbeam-channel-0.4))))
(home-page "https://github.com/BurntSushi/ripgrep/tree/master/ignore")
(synopsis "Efficiently match ignore files such as .gitignore")
(description
@@ -10255,7 +10350,7 @@ for the most common image formats.")
#:cargo-inputs
(("rust-autocfg" ,rust-autocfg-1.0)
("rust-serde" ,rust-serde-1.0)
- ("rust-rayon" ,rust-rayon-1.3))))
+ ("rust-rayon" ,rust-rayon-1))))
(home-page "https://github.com/bluss/indexmap")
(synopsis "Hash table with consistent order and fast iteration.")
(description
@@ -10325,7 +10420,7 @@ renamed to indexmap.")
"1zxjdn8iwa0ssxrnjmywm3r1v284wryvzrf8vkc7nyf5ijbjknqw"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1.0))))
+ `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
(home-page "https://github.com/PistonDevelopers/inflate.git")
(synopsis "DEFLATE decoding")
(description "This package provides DEFLATE decoding.")
@@ -10852,7 +10947,7 @@ primitives to an @code{io::Write}.")
(("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-futures" ,rust-futures-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-tempdir" ,rust-tempdir-0.3)
("rust-tokio-core" ,rust-tokio-core-0.1)
("rust-tokio-process" ,rust-tokio-process-0.2))))
@@ -10880,7 +10975,7 @@ primitives to an @code{io::Write}.")
`(#:tests? #f ; Some test files missing.
#:cargo-inputs
(("rust-byteorder" ,rust-byteorder-1.3)
- ("rust-rayon" ,rust-rayon-1.1))
+ ("rust-rayon" ,rust-rayon-1))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.3)
("rust-png" ,rust-png-0.14)
@@ -11035,7 +11130,7 @@ language tags.")
("rust-itertools" ,rust-itertools-0.8)
("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
("rust-petgraph" ,rust-petgraph-0.4)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-regex-syntax" ,rust-regex-syntax-0.6)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
@@ -11066,7 +11161,7 @@ grammars.")
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-regex" ,rust-regex-1.3))))
+ (("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/lalrpop/lalrpop")
(synopsis "Runtime library for parsers generated by LALRPOP")
(description "THis package provides the runtime library for parsers
@@ -11178,8 +11273,43 @@ requires non-const function calls to be computed.")
"This package provides a library providing a lazily filled Cell struct.")
(license (list license:expat license:asl2.0))))
+(define-public rust-lexical-core-0.7
+ (package
+ (name "rust-lexical-core")
+ (version "0.7.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "lexical-core" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "05i6b69ay8xbxw88vx89vglb7xm5n8ky82hax7d5a7z60bdccrfv"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-arrayvec" ,rust-arrayvec-0.5)
+ ("rust-bitflags" ,rust-bitflags-1)
+ ("rust-cfg-if" ,rust-cfg-if-0.1)
+ ("rust-dtoa" ,rust-dtoa-0.4)
+ ("rust-ryu" ,rust-ryu-1.0)
+ ("rust-static-assertions" ,rust-static-assertions-1))
+ #:cargo-development-inputs
+ (("rust-approx" ,rust-approx-0.3)
+ ("rust-proptest" ,rust-proptest-0.9)
+ ("rust-quickcheck" ,rust-quickcheck-0.9))))
+ (home-page
+ "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
+ (synopsis
+ "Lexical, to- and from-string conversion routines")
+ (description
+ "Lexical, to- and from-string conversion routines.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-lexical-core-0.4
(package
+ (inherit rust-lexical-core-0.7)
(name "rust-lexical-core")
(version "0.4.2")
(source
@@ -11191,7 +11321,6 @@ requires non-const function calls to be computed.")
(sha256
(base32
"1gr5y3ykghd3wjc00l3iizkj1dxylyhwi6fj6yn2qg06nzx771iz"))))
- (build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
@@ -11204,19 +11333,12 @@ requires non-const function calls to be computed.")
(("rust-approx" ,rust-approx-0.3)
("rust-proptest" ,rust-proptest-0.9)
("rust-quickcheck" ,rust-quickcheck-0.8)
- ("rust-rustc-version" ,rust-rustc-version-0.2))))
- (home-page
- "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
- (synopsis
- "Lexical, to- and from-string conversion routines")
- (description
- "Lexical, to- and from-string conversion routines.")
- (license (list license:asl2.0 license:expat))))
+ ("rust-rustc-version" ,rust-rustc-version-0.2))))))
(define-public rust-libc-0.2
(package
(name "rust-libc")
- (version "0.2.68")
+ (version "0.2.71")
(source
(origin
(method url-fetch)
@@ -11224,11 +11346,10 @@ requires non-const function calls to be computed.")
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
- "1w6z9krcqn7p200sb80dxx76iyvw3jdz949zxr1sgfr3a50c186y"))))
+ "0jbgi25rhglhvpxv62alyzyral6601kldmlhbxim4w6j15jv0mwl"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))))
(home-page "https://github.com/rust-lang/libc")
(synopsis "Raw FFI bindings to platform libraries like libc")
@@ -11334,12 +11455,22 @@ macros on libc without stdlib.")
(origin
(method url-fetch)
(uri (crate-uri "libgit2-sys" version))
- (file-name (string-append name "-" version ".crate"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28"))))
- (arguments '())
- (properties '((hidden? . #t)))))
+ "1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file-recursively "libgit2") #t))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-curl-sys" ,rust-curl-sys-0.4)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
+ ("rust-libz-sys" ,rust-libz-sys-1.0)
+ ("rust-openssl-sys" ,rust-openssl-sys-0.9)
+ ("rust-cc" ,rust-cc-1.0)
+ ("rust-pkg-config" ,rust-pkg-config-0.3))))))
(define-public rust-libloading-0.5
(package
@@ -11438,18 +11569,25 @@ functions and static variables these libraries contain.")
(origin
(method url-fetch)
(uri (crate-uri "libnghttp2-sys" version))
- (file-name (string-append name "-" version ".crate"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))))
+ "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (delete-file-recursively "nghttp2") #t))))
(build-system cargo-build-system)
- ;(inputs
- ; `(("nghttp2" ,nghttp2)))
+ (arguments
+ `(#:skip-build? #t ; Uses unstable features
+ #:cargo-inputs
+ (("rust-libc" ,rust-libc-0.2)
+ ("rust-cc" ,rust-cc-1.0))))
+ (inputs
+ `(("nghttp2" ,nghttp2)))
(home-page "https://github.com/alexcrichton/nghttp2-rs")
(synopsis "FFI bindings for libnghttp2 (nghttp2)")
(description
"This package provides FFI bindings for libnghttp2 (nghttp2).")
- (properties '((hidden? . #t)))
(license (list license:asl2.0
license:expat))))
@@ -11723,7 +11861,7 @@ pairs in insertion order.")
(("rust-lazy-static" ,rust-lazy-static-1)
("rust-objc" ,rust-objc-0.2)
("rust-objc-foundation" ,rust-objc-foundation-0.1)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://github.com/rust-locale/locale_config/")
(synopsis "Maintains locale preferences for processes and threads")
@@ -11732,6 +11870,26 @@ pairs in insertion order.")
by inspecting the system for user preference.")
(license license:expat)))
+(define-public rust-locale-config-0.2
+ (package
+ (inherit rust-locale-config-0.3)
+ (name "rust-locale-config")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "locale-config" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0p2kdgc1c9cq5bi2rpszbhkh7pdk1fwxhij37gayb2alwkmikb3k"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-winapi" ,rust-winapi-0.3))))))
+
(define-public rust-lock-api-0.3
(package
(name "rust-lock-api")
@@ -11928,10 +12086,10 @@ by inspecting the system for user preference.")
key-value pairs.")
(license (list license:expat license:asl2.0))))
-(define-public rust-lscolors-0.6
+(define-public rust-lscolors-0.7
(package
(name "rust-lscolors")
- (version "0.6.0")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
@@ -11940,19 +12098,34 @@ key-value pairs.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0jxsgkn378kxkiqdshdjdclw5wwp2xaz45cqd3yw85fhn8a38fza"))))
+ "0vn1824lagf0xdv5rxyl7m9fbrcylyjibmnd4634dnn98m68jjyj"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-ansi-term" ,rust-ansi-term-0.12))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/sharkdp/lscolors")
(synopsis "Colorize paths using the LS_COLORS environment variable")
(description
"Colorize paths using the LS_COLORS environment variable.")
(license (list license:expat license:asl2.0))))
+(define-public rust-lscolors-0.6
+ (package
+ (inherit rust-lscolors-0.7)
+ (name "rust-lscolors")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "lscolors" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jxsgkn378kxkiqdshdjdclw5wwp2xaz45cqd3yw85fhn8a38fza"))))))
+
(define-public rust-lyon-geom-0.14
(package
(name "rust-lyon-geom")
@@ -12639,7 +12812,7 @@ for Rust structs.")
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
- #:cargo-inputs (("rust-adler32" ,rust-adler32-1.0))))
+ #:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
(home-page "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
(synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
(description
@@ -12998,7 +13171,7 @@ checking.")
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-rayon" ,rust-rayon-1.3))))
+ (("rust-rayon" ,rust-rayon-1))))
(home-page "https://github.com/medek/nasm-rs")
(synopsis "Run NASM during your Cargo build")
(description "Run NASM during your Cargo build.")
@@ -13095,7 +13268,7 @@ IO of Windows's named pipes.")
("rust-schannel" ,rust-schannel-0.1)
("rust-security-framework" ,rust-security-framework-0.3)
("rust-security-framework-sys" ,rust-security-framework-sys-0.3)
- ("rust-tempfile" ,rust-tempfile-3.1))
+ ("rust-tempfile" ,rust-tempfile-3))
#:cargo-development-inputs
(("rust-hex" ,rust-hex-0.3))
#:phases
@@ -13311,7 +13484,7 @@ release (fork of debug_unreachable)")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-rand" ,rust-rand-0.6)
("rust-sysctl" ,rust-sysctl-0.1)
- ("rust-tempfile" ,rust-tempfile-3.0))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/nix-rust/nix")
(synopsis "Rust friendly bindings to *nix APIs")
(description
@@ -13346,7 +13519,7 @@ release (fork of debug_unreachable)")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-rand" ,rust-rand-0.6)
("rust-sysctl" ,rust-sysctl-0.1)
- ("rust-tempfile" ,rust-tempfile-3.0))))))
+ ("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-no-panic-0.1
(package
@@ -13368,7 +13541,7 @@ release (fork of debug_unreachable)")
("rust-quote" ,rust-quote-1.0)
("rust-syn" ,rust-syn-1.0))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/dtolnay/no-panic")
(synopsis "Prove a function can't ever panic")
(description
@@ -13421,10 +13594,10 @@ implementation (which is unstable / requires nightly).")
(license (list license:asl2.0
license:expat))))
-(define-public rust-nom-4.2
+(define-public rust-nom-5
(package
(name "rust-nom")
- (version "4.2.3")
+ (version "5.1.2")
(source
(origin
(method url-fetch)
@@ -13433,18 +13606,30 @@ implementation (which is unstable / requires nightly).")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1mkvby8b4m61p4g1px0pwr58yfkphyp1jcfbp4qfp7l6iqdaklia"))))
+ "1br74rwdp3c2ddga03bphnf355spn4mzwf1slg0a30zd4qnjdd7z"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
+ `(#:tests? #f ; Tests require example directory, not included in tarball.
#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-lexical-core" ,rust-lexical-core-0.7)
("rust-memchr" ,rust-memchr-2.2)
- ("rust-regex" ,rust-regex-1.1)
- ("rust-version-check" ,rust-version-check-0.1))
+ ("rust-regex" ,rust-regex-1)
+ ("rust-version-check" ,rust-version-check-0.9))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.2)
- ("rust-jemallocator" ,rust-jemallocator-0.1))))
+ ("rust-doc-comment" ,rust-doc-comment-0.3)
+ ("rust-jemallocator" ,rust-jemallocator-0.1))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'override-jemalloc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((jemalloc (assoc-ref inputs "jemalloc")))
+ (setenv "JEMALLOC_OVERRIDE"
+ (string-append jemalloc "/lib/libjemalloc_pic.a")))
+ #t)))))
+ (native-inputs
+ `(("jemalloc" ,jemalloc)))
(home-page "https://github.com/Geal/nom")
(synopsis
"Byte-oriented, zero-copy, parser combinators library")
@@ -13453,6 +13638,31 @@ implementation (which is unstable / requires nightly).")
combinators library.")
(license license:expat)))
+(define-public rust-nom-4.2
+ (package
+ (inherit rust-nom-5)
+ (name "rust-nom")
+ (version "4.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "nom" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1mkvby8b4m61p4g1px0pwr58yfkphyp1jcfbp4qfp7l6iqdaklia"))))
+ (arguments
+ `(#:skip-build? #t
+ #:cargo-inputs
+ (("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-memchr" ,rust-memchr-2.2)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-version-check" ,rust-version-check-0.1))
+ #:cargo-development-inputs
+ (("rust-criterion" ,rust-criterion-0.2)
+ ("rust-jemallocator" ,rust-jemallocator-0.1))))))
+
(define-public rust-nom-3
(package
(inherit rust-nom-4.2)
@@ -13708,10 +13918,10 @@ including bigint, complex, rational, range iterators, generic integers, and more
("rust-rustc-serialize" ,rust-rustc-serialize-0.3)
("rust-serde" ,rust-serde-0.8))))))
-(define-public rust-num-cpus-1.11
+(define-public rust-num-cpus-1
(package
(name "rust-num-cpus")
- (version "1.11.1")
+ (version "1.13.0")
(source
(origin
(method url-fetch)
@@ -13720,14 +13930,12 @@ including bigint, complex, rational, range iterators, generic integers, and more
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0wlxs00cpg16z09fwchj1gdz1jxnf5dgg1cbidvq0sc75bnwbnkn"))))
+ "1cv6yxhz2zbnwn8pn1yn8grg7zsnd523947fby41a737aqvryj85"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-hermit-abi" ,rust-hermit-abi-0.1)
- ("rust-libc" ,rust-libc-0.2))
- #:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3))))
+ ("rust-libc" ,rust-libc-0.2))))
(home-page "https://github.com/seanmonstar/num_cpus")
(synopsis "Get the number of CPUs on a machine")
(description
@@ -13735,25 +13943,6 @@ including bigint, complex, rational, range iterators, generic integers, and more
(license (list license:asl2.0
license:expat))))
-(define-public rust-num-cpus-1.10
- (package
- (inherit rust-num-cpus-1.11)
- (name "rust-num-cpus")
- (version "1.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "num_cpus" version))
- (file-name (string-append name "-" version ".crate"))
- (sha256
- (base32
- "0wrj3zvj6h3q26sqj9zxpd59frjb54n7jhjwf307clq31ic47vxw"))))
- (arguments
- `(#:cargo-inputs
- (("rust-libc" ,rust-libc-0.2))
- #:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3))))))
-
(define-public rust-num-derive-0.3
(package
(name "rust-num-derive")
@@ -14309,13 +14498,33 @@ You probably don't want to link to this crate directly; instead check out the
#:cargo-development-inputs
(("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1))))
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/matklad/once_cell")
(synopsis "Single assignment cells and lazy values")
(description
"Single assignment cells and lazy values.")
(license (list license:expat license:asl2.0))))
+(define-public rust-once-cell-0.1
+ (package
+ (inherit rust-once-cell-1.2)
+ (name "rust-once-cell")
+ (version "0.1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "once-cell" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0drcjs7si0hygc0v64y55hkxv9fpvlvrb3wl5374b2hnc6i2jb2k"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-parking-lot" ,rust-parking-lot-0.7))
+ #:cargo-development-inputs
+ (("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6))))))
+
(define-public rust-oorandom-11.1
(package
(name "rust-oorandom")
@@ -14898,7 +15107,7 @@ normally prevent moving a type that has been borrowed from.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("pango" ,pango)))
(home-page "https://gtk-rs.org/")
@@ -14966,7 +15175,7 @@ normally prevent moving a type that has been borrowed from.")
("rust-pkg-config" ,rust-pkg-config-0.3))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-0.1)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(inputs
`(("gtk+" ,gtk+)))
(home-page "https://gtk-rs.org/")
@@ -15332,7 +15541,7 @@ synchronization primitives.")
(define-public rust-pcre2-0.2
(package
(name "rust-pcre2")
- (version "0.2.1")
+ (version "0.2.3")
(source
(origin
(method url-fetch)
@@ -15341,14 +15550,14 @@ synchronization primitives.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "103i66a998g1fjrqf9sdyvi8qi83hwglz3pjdcq9n2r207hsagb0"))))
+ "1c8sn70h72llf26sya9v26zmaamq350q57nwv6fl6fwhd4phzcw5"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-log" ,rust-log-0.4)
("rust-pcre2-sys" ,rust-pcre2-sys-0.2)
- ("rust-thread-local" ,rust-thread-local-0.3))))
+ ("rust-thread-local" ,rust-thread-local-1.0))))
(native-inputs
`(("pcre2" ,pcre2)
("pkg-config" ,pkg-config)))
@@ -16352,7 +16561,7 @@ used in Cargo build scripts.")
("rust-base64" ,rust-base64-0.10)
("rust-xml-rs" ,rust-xml-rs-0.8)
("rust-serde" ,rust-serde-1.0)
- ("rust-humantime" ,rust-humantime-1.3)
+ ("rust-humantime" ,rust-humantime-1)
("rust-byteorder" ,rust-byteorder-1.3))))
(home-page "https://github.com/ebarnard/rust-plist/")
(synopsis "Rusty plist parser")
@@ -16966,7 +17175,7 @@ macro use case.")
(define-public rust-proptest-0.9
(package
(name "rust-proptest")
- (version "0.9.4")
+ (version "0.9.6")
(source
(origin
(method url-fetch)
@@ -16975,25 +17184,24 @@ macro use case.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "17sjg8isas4qk85807c4panih9k0lwa4k1mbajhciw5c5q17w56g"))))
+ "0nsslp46lvf3ll5rd83rin652qlz1kqyp0rmsciy0pw4kf0pgi01"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-bit-set" ,rust-bit-set-0.5)
("rust-bitflags" ,rust-bitflags-1)
("rust-byteorder" ,rust-byteorder-1.3)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-quick-error" ,rust-quick-error-1.2)
- ("rust-rand" ,rust-rand-0.4)
- ("rust-rand-chacha" ,rust-rand-chacha-0.2)
- ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
+ ("rust-rand" ,rust-rand-0.6)
+ ("rust-rand-chacha" ,rust-rand-chacha-0.1)
+ ("rust-rand-xorshift" ,rust-rand-xorshift-0.1)
("rust-regex-syntax" ,rust-regex-syntax-0.6)
("rust-rusty-fork" ,rust-rusty-fork-0.2)
- ("rust-tempfile" ,rust-tempfile-3.0))
+ ("rust-tempfile" ,rust-tempfile-3))
#:cargo-development-inputs
- (("rust-regex" ,rust-regex-1.1))))
+ (("rust-regex" ,rust-regex-1))))
(home-page
"https://altsysrq.github.io/proptest-book/proptest/index.html")
(synopsis
@@ -17029,9 +17237,37 @@ macro use case.")
("rust-rand" ,rust-rand-0.5)
("rust-regex-syntax" ,rust-regex-syntax-0.6)
("rust-rusty-fork" ,rust-rusty-fork-0.2)
- ("rust-tempfile" ,rust-tempfile-3.0))
+ ("rust-tempfile" ,rust-tempfile-3))
#:cargo-development-inputs
- (("rust-regex" ,rust-regex-1.1))))))
+ (("rust-regex" ,rust-regex-1))))))
+
+(define-public rust-proptest-0.7
+ (package
+ (inherit rust-proptest-0.9)
+ (name "rust-proptest")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "proptest" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "13giz85f7jkjc8miplzj4zh3fr704c1y1cg0dh218iw2dfkpbwi7"))))
+ (arguments
+ `(#:cargo-inputs
+ (("rust-bit-set" ,rust-bit-set-0.5)
+ ("rust-bitflags" ,rust-bitflags-1)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-quick-error" ,rust-quick-error-1.2)
+ ("rust-rand" ,rust-rand-0.4)
+ ("rust-regex-syntax" ,rust-regex-syntax-0.4)
+ ("rust-rusty-fork" ,rust-rusty-fork-0.2)
+ ("rust-tempfile" ,rust-tempfile-3))
+ #:cargo-development-inputs
+ (("rust-regex" ,rust-regex-0.2))))))
(define-public rust-psm-0.1
(package
@@ -17081,7 +17317,7 @@ stack pointer and inspect the properties of the stack.")
(("rust-criterion" ,rust-criterion-0.2)
("rust-html5ever" ,rust-html5ever-0.23)
("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-tendril" ,rust-tendril-0.4))))
(home-page "https://github.com/raphlinus/pulldown-cmark")
(synopsis "Pull parser for CommonMark")
@@ -18178,10 +18414,10 @@ For example creation from raw pointers and start, end pointer
accessors.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-rayon-1.3
+(define-public rust-rayon-1
(package
(name "rust-rayon")
- (version "1.3.0")
+ (version "1.3.1")
(source
(origin
(method url-fetch)
@@ -18190,17 +18426,16 @@ accessors.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1650g13bxlmywhdlw65q3g1zyyb7l0wcm35v45kf31cwgwly6v6v"))))
+ "104h6i5lcp9kx8g80jgqf6z7wcqa186q57wj4qzf011xfmb2iw32"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
+ `(#:cargo-inputs
+ (("rust-autocfg" ,rust-autocfg-1.0)
+ ("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
("rust-either" ,rust-either-1.5)
- ("rust-rayon-core" ,rust-rayon-core-1.7))
+ ("rust-rayon-core" ,rust-rayon-core-1))
#:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3)
- ("rust-docopt" ,rust-docopt-1.1)
+ (("rust-docopt" ,rust-docopt-1.1)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-rand" ,rust-rand-0.7)
("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
@@ -18211,37 +18446,9 @@ accessors.")
"Simple work-stealing parallelism for Rust.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-rayon-1.1
- (package
- (inherit rust-rayon-1.3)
- (name "rust-rayon")
- (version "1.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "rayon" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "190hkbcdfvcphyyzkdg52zdia2y9d9yanpm072bmnzbn49p1ic54"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.6)
- ("rust-either" ,rust-either-1.5)
- ("rust-rayon-core" ,rust-rayon-core-1.5))
- #:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3)
- ("rust-docopt" ,rust-docopt-1.1)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-rand" ,rust-rand-0.4)
- ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
- ("rust-serde" ,rust-serde-1.0)
- ("rust-serde-derive" ,rust-serde-derive-1.0))))))
-
(define-public rust-rayon-0.8
- (package/inherit rust-rayon-1.3
+ (package
+ (inherit rust-rayon-1)
(name "rust-rayon")
(version "0.8.2")
(source
@@ -18254,7 +18461,7 @@ accessors.")
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-rayon-core" ,rust-rayon-core-1.7))
+ (("rust-rayon-core" ,rust-rayon-core-1))
#:cargo-development-inputs
(("rust-compiletest-rs" ,rust-compiletest-rs-0.2)
("rust-docopt" ,rust-docopt-0.7)
@@ -18262,10 +18469,10 @@ accessors.")
("rust-rand" ,rust-rand-0.3)
("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
-(define-public rust-rayon-core-1.7
+(define-public rust-rayon-core-1
(package
(name "rust-rayon-core")
- (version "1.7.0")
+ (version "1.7.1")
(source
(origin
(method url-fetch)
@@ -18274,16 +18481,18 @@ accessors.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1ac55kpnh2390ah7r071vnjbiy308qpznql0n597x5dgxx39pa08"))))
+ "101jjwkcfw5jk31695gbdm163iicc2pz349q6l8lwj43j3c1abp9"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
+ `(;; One of the tests attempts to overflow the stack, but the compiler
+ ;; has since gotten smarter and the test became defective.
+ #:tests? #f
#:cargo-inputs
(("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
("rust-crossbeam-queue" ,rust-crossbeam-queue-0.2)
("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-num-cpus" ,rust-num-cpus-1.10))
+ ("rust-num-cpus" ,rust-num-cpus-1))
#:cargo-development-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-rand" ,rust-rand-0.7)
@@ -18294,34 +18503,6 @@ accessors.")
(description "Core APIs for Rayon.")
(license (list license:expat license:asl2.0))))
-(define-public rust-rayon-core-1.5
- (package
- (inherit rust-rayon-core-1.7)
- (name "rust-rayon-core")
- (version "1.5.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "rayon-core" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1ljva6blaf1wmzvg77h1i9pd0hsmsbbcmdk7sjbw7h2s8gw0vgpb"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
- ("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
- ("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-num-cpus" ,rust-num-cpus-1.10))
- #:cargo-development-inputs
- (("rust-libc" ,rust-libc-0.2)
- ("rust-rand" ,rust-rand-0.4)
- ("rust-rand-xorshift" ,rust-rand-xorshift-0.2)
- ("rust-scoped-tls" ,rust-scoped-tls-1.0))))))
-
(define-public rust-rctree-0.3
(package
(name "rust-rctree")
@@ -18574,10 +18755,10 @@ functionality.")
(base32
"0av43xxjlinfqklb67rpj217cmaxfjsf8151gs0hbs4hnr5664ck"))))))
-(define-public rust-regex-1.3
+(define-public rust-regex-1
(package
(name "rust-regex")
- (version "1.3.6")
+ (version "1.3.9")
(source
(origin
(method url-fetch)
@@ -18586,7 +18767,7 @@ functionality.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1cx4lcgy7vdi2kij2n1dp2whl33d7974g1kxwiklhs192nclcsbz"))))
+ "1rnqga94ypykl2apgj26l2j1s9bvr2ix4dlzs323n6abyky80dww"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -18595,8 +18776,7 @@ functionality.")
("rust-regex-syntax" ,rust-regex-syntax-0.6)
("rust-thread-local" ,rust-thread-local-1.0))
#:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3)
- ("rust-lazy-static" ,rust-lazy-static-1)
+ (("rust-lazy-static" ,rust-lazy-static-1)
("rust-quickcheck" ,rust-quickcheck-0.8)
("rust-rand" ,rust-rand-0.6))))
(home-page "https://github.com/rust-lang/regex")
@@ -18606,36 +18786,9 @@ functionality.")
uses finite automata and guarantees linear time matching on all inputs.")
(license (list license:expat license:asl2.0))))
-(define-public rust-regex-1.1
- (package
- (inherit rust-regex-1.3)
- (name "rust-regex")
- (version "1.1.9")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "regex" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1ba47ivq8l1yikiwikjnq5barag6iqfgcpxlz2263fqbq9y2kn6r"))))
- (arguments
- `(#:cargo-inputs
- (("rust-aho-corasick" ,rust-aho-corasick-0.7)
- ("rust-memchr" ,rust-memchr-2.2)
- ("rust-regex-syntax" ,rust-regex-syntax-0.6)
- ("rust-thread-local" ,rust-thread-local-0.3)
- ("rust-utf8-ranges" ,rust-utf8-ranges-1.0))
- #:cargo-development-inputs
- (("rust-doc-comment" ,rust-doc-comment-0.3)
- ("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-quickcheck" ,rust-quickcheck-0.8)
- ("rust-rand" ,rust-rand-0.6))))))
-
(define-public rust-regex-0.2
(package
- (inherit rust-regex-1.3)
+ (inherit rust-regex-1)
(name "rust-regex")
(version "0.2.11")
(source
@@ -18712,7 +18865,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
#:cargo-development-inputs
(("rust-bstr" ,rust-bstr-0.2)
("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-bytes" ,rust-serde-bytes-0.11)
("rust-serde-derive" ,rust-serde-derive-1.0)
@@ -18727,7 +18880,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
(define-public rust-regex-syntax-0.6
(package
(name "rust-regex-syntax")
- (version "0.6.17")
+ (version "0.6.18")
(source
(origin
(method url-fetch)
@@ -18735,7 +18888,7 @@ uses finite automata and guarantees linear time matching on all inputs.")
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
- "1blmlgzcg7in3kcxqabpfzzrbnamr2i671flbrmlqhfps5bvvrbz"))))
+ "1s648w7rwpxnq9iqwbyy43ar4al07906jpz0jxlql23bgjwjwh96"))))
(build-system cargo-build-system)
(home-page "https://github.com/rust-lang/regex")
(synopsis "Regular expression parser")
@@ -18763,6 +18916,25 @@ uses finite automata and guarantees linear time matching on all inputs.")
#:cargo-inputs
(("rust-ucd-util" ,rust-ucd-util-0.1))))))
+(define-public rust-regex-syntax-0.4
+ (package
+ (inherit rust-regex-syntax-0.6)
+ (name "rust-regex-syntax")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "regex-syntax" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "03p24bsfg2rw2cc5h8ri4fp7j06xwyyd5grlqy0g11ixp5c1r4wf"))))
+ (arguments
+ `(#:cargo-development-inputs
+ (("rust-quickcheck" ,rust-quickcheck-0.6)
+ ("rust-rand" ,rust-rand-0.4))))))
+
(define-public rust-regex-syntax-0.3
(package
(inherit rust-regex-syntax-0.6)
@@ -19019,7 +19191,7 @@ console applications.")
("rust-uuid" ,rust-uuid-0.7))
#:cargo-development-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-tempdir" ,rust-tempdir-0.3)
("rust-unicase" ,rust-unicase-2.4)
("rust-uuid" ,rust-uuid-0.7))))
@@ -19445,7 +19617,7 @@ rustc compiler.")
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/GuillaumeGomez/rustdoc-stripper")
(synopsis "Nanipulate rustdoc comments")
(description
@@ -19510,7 +19682,7 @@ rustc compiler.")
(("rust-criterion" ,rust-criterion-0.2)
("rust-env-logger" ,rust-env-logger-0.6)
("rust-log" ,rust-log-0.4)
- ("rust-tempfile" ,rust-tempfile-3.0)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-webpki-roots" ,rust-webpki-roots-0.17))))
(home-page "https://github.com/ctz/rustls")
(synopsis "Modern TLS library written in Rust")
@@ -19572,7 +19744,7 @@ rustc compiler.")
("rust-crossbeam-utils" ,rust-crossbeam-utils-0.7)
("rust-libm" ,rust-libm-0.2)
("rust-linked-hash-map" ,rust-linked-hash-map-0.5)
- ("rust-num-cpus" ,rust-num-cpus-1.11)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-ordered-float" ,rust-ordered-float-1.0)
("rust-rustc-hash" ,rust-rustc-hash-1.0)
("rust-stb-truetype" ,rust-stb-truetype-0.3))))
@@ -19681,7 +19853,7 @@ rustc compiler version.")
#:cargo-inputs
(("rust-fnv" ,rust-fnv-1.0)
("rust-quick-error" ,rust-quick-error-1.2)
- ("rust-tempfile" ,rust-tempfile-3.0)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-wait-timeout" ,rust-wait-timeout-0.2))))
(home-page "https://github.com/altsysrq/rusty-fork")
(synopsis "Library for running Rust tests in sub-processes")
@@ -19707,7 +19879,7 @@ using a fork-like interface.")
`(#:cargo-inputs
(("rust-no-panic" ,rust-no-panic-0.1))
#:cargo-development-inputs
- (("rust-num-cpus" ,rust-num-cpus-1.11)
+ (("rust-num-cpus" ,rust-num-cpus-1)
("rust-rand" ,rust-rand-0.7)
("rust-rand-xorshift" ,rust-rand-xorshift-0.2))))
(home-page "https://github.com/dtolnay/ryu")
@@ -19803,7 +19975,7 @@ paths point to the same file.")
(arguments
`(#:skip-build? #t
#:cargo-inputs
- (("rust-regex" ,rust-regex-1.3))))
+ (("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/wlentz/scan_fmt")
(synopsis "Simple scanf()-like input for Rust")
(description
@@ -19985,7 +20157,7 @@ endian-aware Read/Write traits for byte buffers.")
("rust-rustc-version" ,rust-rustc-version-0.2))
#:cargo-development-inputs
(("rust-byteorder" ,rust-byteorder-1.3)
- ("rust-rayon" ,rust-rayon-1.1))))
+ ("rust-rayon" ,rust-rayon-1))))
(home-page "https://github.com/m4b/scroll")
(synopsis "Read/Write traits for byte buffers")
(description
@@ -20114,6 +20286,26 @@ Pwrite traits from the scroll crate.")
proven statistical guarantees.")
(license license:expat)))
+(define-public rust-section-testing-0.0
+ (package
+ (name "rust-section-testing")
+ (version "0.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "section-testing" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0a1zwpcs2dqhky2wd8y82cm25l3s9i5dbyn4ypgmvdysizcxgr7c"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/evanw/section_testing")
+ (synopsis "Library for section-style testing")
+ (description
+ "This package provides a library for section-style testing.")
+ (license license:expat)))
+
(define-public rust-security-framework-0.3
(package
(name "rust-security-framework")
@@ -20380,7 +20572,7 @@ proven statistical guarantees.")
(define-public rust-serde-bytes-0.11
(package
(name "rust-serde-bytes")
- (version "0.11.3")
+ (version "0.11.5")
(source
(origin
(method url-fetch)
@@ -20388,8 +20580,7 @@ proven statistical guarantees.")
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
- (base32
- "1bl45kf3c71xclv7wzk5525nswm4bgsnjd3s1s15f4k2a8whfnij"))))
+ (base32 "1fcb6sw8wkrj4ylm118wkb31hw124nkjnqyhbgqnd8w85zfhgbhn"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -20400,8 +20591,7 @@ proven statistical guarantees.")
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-test" ,rust-serde-test-1.0))))
(home-page "https://github.com/serde-rs/bytes")
- (synopsis
- "Handle of integer arrays and vectors for Serde")
+ (synopsis "Handle integer arrays and vectors for Serde")
(description
"Optimized handling of @code{&[u8]} and @code{Vec<u8>} for Serde.")
(license (list license:expat license:asl2.0))))
@@ -21150,7 +21340,7 @@ words, like Python's shlex.")
("rust-libc" ,rust-libc-0.2)
("rust-mio" ,rust-mio-0.6)
("rust-mio-uds" ,rust-mio-uds-0.6)
- ("rust-signal-hook-registry" ,rust-signal-hook-registry-1.2)
+ ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
("rust-tokio-reactor" ,rust-tokio-reactor-0.1))
#:cargo-development-inputs
(("rust-tokio" ,rust-tokio-0.1)
@@ -21160,7 +21350,7 @@ words, like Python's shlex.")
(description "Unix signal handling.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-signal-hook-registry-1.2
+(define-public rust-signal-hook-registry-1
(package
(name "rust-signal-hook-registry")
(version "1.2.0")
@@ -21186,29 +21376,6 @@ words, like Python's shlex.")
(description "Backend crate for signal-hook.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-signal-hook-registry-1.0
- (package
- (inherit rust-signal-hook-registry-1.2)
- (name "rust-signal-hook-registry")
- (version "1.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "signal-hook-registry" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1mw5v909fn99h5qb96ma4almlik80lr1c7xbakn24rql6bx4zvfd"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-arc-swap" ,rust-arc-swap-0.3)
- ("rust-libc" ,rust-libc-0.2))
- #:cargo-development-inputs
- (("rust-signal-hook" ,rust-signal-hook-0.1)
- ("rust-version-sync" ,rust-version-sync-0.8))))))
-
(define-public rust-simd-0.2
(package
(name "rust-simd")
@@ -21668,7 +21835,7 @@ maximal amount of configuration possible intended.")
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.1))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/derekdreery/sourcefile-rs")
(synopsis "Concatenate source from multiple files")
(description
@@ -21863,10 +22030,10 @@ deeply recursive algorithms that may accidentally blow the stack.")
"StackVec: vector-like facade for stack-allocated arrays.")
(license (list license:asl2.0 license:expat))))
-(define-public rust-static-assertions-0.3
+(define-public rust-static-assertions-1
(package
(name "rust-static-assertions")
- (version "0.3.4")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
@@ -21874,7 +22041,7 @@ deeply recursive algorithms that may accidentally blow the stack.")
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
- "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))
+ "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2"))))
(build-system cargo-build-system)
(home-page "https://github.com/nvzqz/static-assertions-rs")
(synopsis "Compile-time assertions for rust")
@@ -21883,6 +22050,20 @@ deeply recursive algorithms that may accidentally blow the stack.")
are met.")
(license (list license:expat license:asl2.0))))
+(define-public rust-static-assertions-0.3
+ (package
+ (inherit rust-static-assertions-1)
+ (name "rust-static-assertions")
+ (version "0.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "static-assertions" version))
+ (file-name (string-append name "-" version ".crate"))
+ (sha256
+ (base32
+ "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))))
+
(define-public rust-stb-truetype-0.3
(package
(name "rust-stb-truetype")
@@ -22468,12 +22649,12 @@ cryptographic implementations.")
(("rust-anyhow" ,rust-anyhow-1.0)
("rust-flate2" ,rust-flate2-1.0)
;("rust-insta" ,rust-insta-0.12)
- ("rust-rayon" ,rust-rayon-1.3)
+ ("rust-rayon" ,rust-rayon-1)
("rust-ref-cast" ,rust-ref-cast-1.0)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
;("rust-reqwest" ,rust-reqwest-0.10)
("rust-tar" ,rust-tar-0.4)
- ("rust-termcolor" ,rust-termcolor-1.0)
+ ("rust-termcolor" ,rust-termcolor-1)
("rust-walkdir" ,rust-walkdir-2.3))))
(home-page "https://github.com/dtolnay/syn")
(synopsis "Parser for Rust source code")
@@ -22502,10 +22683,10 @@ cryptographic implementations.")
("rust-unicode-xid" ,rust-unicode-xid-0.1))
#:cargo-development-inputs
(("rust-insta" ,rust-insta-0.8)
- ("rust-rayon" ,rust-rayon-1.1)
+ ("rust-rayon" ,rust-rayon-1)
("rust-ref-cast" ,rust-ref-cast-0.2)
- ("rust-regex" ,rust-regex-1.1)
- ("rust-termcolor" ,rust-termcolor-1.0)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-termcolor" ,rust-termcolor-1)
("rust-walkdir" ,rust-walkdir-2.2))))
(properties '())))
@@ -23044,7 +23225,7 @@ deleting all contents when it's dropped.")
(license (list license:asl2.0
license:expat))))
-(define-public rust-tempfile-3.1
+(define-public rust-tempfile-3
(package
(name "rust-tempfile")
(version "3.1.0")
@@ -23074,29 +23255,6 @@ directories.")
(license (list license:asl2.0
license:expat))))
-(define-public rust-tempfile-3.0
- (package
- (inherit rust-tempfile-3.1)
- (name "rust-tempfile")
- (version "3.0.8")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "tempfile" version))
- (file-name (string-append name "-" version ".crate"))
- (sha256
- (base32
- "1vqk7aq2l04my2r3jiyyxirnf8f90nzcvjasvrajivb85s7p7i3x"))))
- (arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-cfg-if" ,rust-cfg-if-0.1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-rand" ,rust-rand-0.6)
- ("rust-redox-syscall" ,rust-redox-syscall-0.1)
- ("rust-remove-dir-all" ,rust-remove-dir-all-0.5)
- ("rust-winapi" ,rust-winapi-0.3))))))
-
(define-public rust-tendril-0.4
(package
(name "rust-tendril")
@@ -23277,10 +23435,10 @@ grid layout.")
("rust-libc" ,rust-libc-0.2)
("rust-winapi" ,rust-winapi-0.2))))))
-(define-public rust-termcolor-1.0
+(define-public rust-termcolor-1
(package
(name "rust-termcolor")
- (version "1.0.5")
+ (version "1.1.0")
(source
(origin
(method url-fetch)
@@ -23288,12 +23446,13 @@ grid layout.")
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
- "0vjfsn1a8zvqhnrbygrz1id6yckwv1dncw3w4zj65qdx0f00kmln"))))
+ "0pyp8vc0gx7124y80ixdl6plbfn1yjhw04i875k5fz2dk8lglsxv"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
- (("rust-wincolor" ,rust-wincolor-1.0))))
+ `(#:cargo-inputs
+ (("rust-winapi-util" ,rust-winapi-util-0.1))
+ #:cargo-development-inputs
+ (("rust-doc-comment" ,rust-doc-comment-0.3))))
(home-page "https://github.com/BurntSushi/termcolor")
(synopsis "Library for writing colored text to a terminal")
(description "This package provides a simple cross platform library for
@@ -23625,7 +23784,7 @@ different for every thread.")
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
- (("rust-num-cpus" ,rust-num-cpus-1.11))))
+ (("rust-num-cpus" ,rust-num-cpus-1))))
(home-page "https://github.com/rust-threadpool/rust-threadpool")
(synopsis "Thread pool for running jobs on a fixed set of worker threads")
(description
@@ -23656,7 +23815,7 @@ fixed set of worker threads.")
("rust-num-derive" ,rust-num-derive-0.2)
("rust-num-traits" ,rust-num-traits-0.2))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.0))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/image-rs/image-tiff")
(synopsis
"TIFF decoding and encoding library in pure Rust")
@@ -23747,14 +23906,14 @@ in Rust.")
(define-public rust-tokio-0.2
(package
(name "rust-tokio")
- (version "0.2.18")
+ (version "0.2.21")
(source
(origin
(method url-fetch)
(uri (crate-uri "tokio" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "04v7rfkrlr8cx30ygy0n45skf6pdbif0zisn9a5xrdnjfb81dvrl"))))
+ (base32 "0n1dxsjv9fxv3kmr3nh4n8v8pqckwgdlls942msysavhp4kzm6fh"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
@@ -23769,10 +23928,10 @@ in Rust.")
("rust-mio" ,rust-mio-0.6)
("rust-mio-named-pipes" ,rust-mio-named-pipes-0.1)
("rust-mio-uds" ,rust-mio-uds-0.6)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-parking-lot" ,rust-parking-lot-0.10)
("rust-pin-project-lite" ,rust-pin-project-lite-0.1)
- ("rust-signal-hook-registry" ,rust-signal-hook-registry-1.2)
+ ("rust-signal-hook-registry" ,rust-signal-hook-registry-1)
("rust-slab" ,rust-slab-0.4)
("rust-tokio-macros" ,rust-tokio-macros-0.2)
("rust-winapi" ,rust-winapi-0.3))
@@ -23780,7 +23939,7 @@ in Rust.")
(("rust-futures" ,rust-futures-0.3)
("rust-loom" ,rust-loom-0.3)
("rust-proptest" ,rust-proptest-0.9)
- ("rust-tempfile" ,rust-tempfile-3.1)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-tokio-test" ,rust-tokio-test-0.2))))
(home-page "https://tokio.rs")
(synopsis "Event-driven, non-blocking I/O platform")
@@ -23804,13 +23963,12 @@ backed applications.")
"11ra8jp3fj70a2zrqmd6as7wgpwiiyzjf50gz89i8r7wpksgqbzc"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-bytes" ,rust-bytes-0.4)
("rust-futures" ,rust-futures-0.1)
("rust-mio" ,rust-mio-0.6)
("rust-miow" ,rust-miow-0.3)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-tokio-codec" ,rust-tokio-codec-0.1)
("rust-tokio-current-thread" ,rust-tokio-current-thread-0.1)
("rust-tokio-executor" ,rust-tokio-executor-0.1)
@@ -23825,13 +23983,13 @@ backed applications.")
("rust-tokio-udp" ,rust-tokio-udp-0.1)
("rust-tokio-uds" ,rust-tokio-uds-0.2))
#:cargo-development-inputs
- (("rust-env-logger" ,rust-env-logger-0.6)
+ (("rust-env-logger" ,rust-env-logger-0.5)
("rust-flate2" ,rust-flate2-1.0)
("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
("rust-http" ,rust-http-0.1)
("rust-httparse" ,rust-httparse-1.3)
("rust-libc" ,rust-libc-0.2)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
@@ -23910,8 +24068,7 @@ backed applications.")
"0wbgg59mxfvrhzv97y56nh3gmnmw3jj9dhgkmvz27410jjxzpvxf"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-bytes" ,rust-bytes-0.4)
("rust-futures" ,rust-futures-0.1)
("rust-iovec" ,rust-iovec-0.1)
@@ -23930,7 +24087,7 @@ backed applications.")
("rust-http" ,rust-http-0.1)
("rust-httparse" ,rust-httparse-1.3)
("rust-libc" ,rust-libc-0.2)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
@@ -24020,7 +24177,7 @@ the current thread.")
#:cargo-development-inputs
(("rust-rand" ,rust-rand-0.4)
("rust-tempdir" ,rust-tempdir-0.3)
- ("rust-tempfile" ,rust-tempfile-3.0)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-tokio" ,rust-tokio-0.1)
("rust-tokio-codec" ,rust-tokio-codec-0.1)
("rust-tokio-io" ,rust-tokio-io-0.1))))
@@ -24074,10 +24231,9 @@ the current thread.")
"17lrjj7lcw13wchpbvr8cynmypd29h40clf9qxabh6fxva40kwm5"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-futures" ,rust-futures-0.1)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-tokio" ,rust-tokio-0.1)
("rust-tokio-executor" ,rust-tokio-executor-0.1))
#:cargo-development-inputs
@@ -24240,21 +24396,20 @@ futures.")
"1khip64cn63xvayq1db68kxcnhgw3cb449a4n2lbw4p1qzx6pwba"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
("rust-futures" ,rust-futures-0.1)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
("rust-mio" ,rust-mio-0.6)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-parking-lot" ,rust-parking-lot-0.7)
("rust-slab" ,rust-slab-0.4)
("rust-tokio-executor" ,rust-tokio-executor-0.1)
("rust-tokio-io" ,rust-tokio-io-0.1)
("rust-tokio-sync" ,rust-tokio-sync-0.1))
#:cargo-development-inputs
- (("rust-num-cpus" ,rust-num-cpus-1.10)
+ (("rust-num-cpus" ,rust-num-cpus-1)
("rust-tokio" ,rust-tokio-0.1)
("rust-tokio-io-pool" ,rust-tokio-io-pool-0.1))))
(home-page "https://tokio.rs")
@@ -24432,19 +24587,19 @@ futures.")
"1wkj3wixicsqvllm8w74b24knw6mdn00zslm8l9fm1p81gr8lmbj"))))
(build-system cargo-build-system)
(arguments
- `(#:skip-build? #t
- #:cargo-inputs
+ `(#:cargo-inputs
(("rust-crossbeam-deque" ,rust-crossbeam-deque-0.7)
("rust-crossbeam-queue" ,rust-crossbeam-queue-0.1)
("rust-crossbeam-utils" ,rust-crossbeam-utils-0.6)
+ ("rust-lazy-static" ,rust-lazy-static-1)
("rust-futures" ,rust-futures-0.1)
("rust-log" ,rust-log-0.4)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
- ("rust-rand" ,rust-rand-0.4)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-rand" ,rust-rand-0.6)
("rust-slab" ,rust-slab-0.4)
("rust-tokio-executor" ,rust-tokio-executor-0.1))
#:cargo-development-inputs
- (("rust-env-logger" ,rust-env-logger-0.6)
+ (("rust-env-logger" ,rust-env-logger-0.5)
("rust-futures-cpupool" ,rust-futures-cpupool-0.1)
("rust-threadpool" ,rust-threadpool-1.7))))
(home-page "https://github.com/tokio-rs/tokio")
@@ -24567,7 +24722,7 @@ pool.")
("rust-tokio-io" ,rust-tokio-io-0.1)
("rust-tokio-reactor" ,rust-tokio-reactor-0.1))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.0)
+ (("rust-tempfile" ,rust-tempfile-3)
("rust-tokio" ,rust-tokio-0.1))))
(home-page "https://github.com/tokio-rs/tokio")
(synopsis "Unix Domain sockets for Tokio")
@@ -24737,7 +24892,7 @@ serializing Rust str")
("rust-lazy-static" ,rust-lazy-static-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-json" ,rust-serde-json-1.0)
- ("rust-termcolor" ,rust-termcolor-1.0)
+ ("rust-termcolor" ,rust-termcolor-1)
("rust-toml" ,rust-toml-0.5))))
(home-page "https://github.com/dtolnay/trybuild")
(synopsis "Test harness for ui tests of compiler diagnostics")
@@ -24846,7 +25001,7 @@ implementation is incomplete.")
`(#:skip-build? #t
#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.1))))
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/BurntSushi/ucd-generate")
(synopsis "Parse data files in the Unicode character database")
(description
@@ -25385,10 +25540,10 @@ untrusted inputs in Rust.")
See winapi for types and constants.")
(license license:expat)))
-(define-public rust-users-0.9
+(define-public rust-users-0.10
(package
(name "rust-users")
- (version "0.9.1")
+ (version "0.10.0")
(source
(origin
(method url-fetch)
@@ -25397,16 +25552,37 @@ See winapi for types and constants.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1kxl3y2hcrqqip7jpqn5mz7xlpbwmmpfmaza0xnyrhx0mrkl4by7"))))
+ "11plda5r3dl8hs0sl0jskazam4ayv3a06vmhzk4l7914agljfhma"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+ `(#:cargo-inputs
+ (("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4))
+ #:cargo-development-inputs
+ (("rust-env-logger" ,rust-env-logger-0.7))))
(home-page "https://github.com/ogham/rust-users")
(synopsis "Library for getting information on Unix users and groups")
(description "This package provides a library for getting information on
Unix users and groups.")
(license license:expat)))
+(define-public rust-users-0.9
+ (package
+ (inherit rust-users-0.10)
+ (name "rust-users")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "users" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1kxl3y2hcrqqip7jpqn5mz7xlpbwmmpfmaza0xnyrhx0mrkl4by7"))))
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
+
(define-public rust-utf-8-0.7
(package
(name "rust-utf-8")
@@ -25735,7 +25911,7 @@ If that fails, no determination is made, and calls return None.")
(("rust-itertools" ,rust-itertools-0.8)
("rust-proc-macro2" ,rust-proc-macro2-0.4)
("rust-pulldown-cmark" ,rust-pulldown-cmark-0.4)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-regex" ,rust-regex-1)
("rust-semver-parser" ,rust-semver-parser-0.9)
("rust-syn" ,rust-syn-0.15)
("rust-toml" ,rust-toml-0.5)
@@ -26411,7 +26587,7 @@ attribute that is not in the shared backend crate.")
("rust-wayland-scanner" ,rust-wayland-scanner-0.23))
#:cargo-development-inputs
(("rust-byteorder" ,rust-byteorder-1.3)
- ("rust-tempfile" ,rust-tempfile-3.1))))
+ ("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
"Rust bindings to the standard C implementation of the wayland protocol")
@@ -26447,7 +26623,7 @@ the wayland protocol, client side.")
("rust-wayland-scanner" ,rust-wayland-scanner-0.21))
#:cargo-development-inputs
(("rust-byteorder" ,rust-byteorder-1.3)
- ("rust-tempfile" ,rust-tempfile-3.1))))))
+ ("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-wayland-commons-0.23
(package
@@ -27367,7 +27543,7 @@ color in a Windows console.")
#:cargo-inputs
(("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3.0))))
+ (("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/Stebalien/xattr")
(synopsis "Unix extended filesystem attributes")
(description
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 9b4aa103da..b35a3cb40b 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -373,7 +373,7 @@ target that libc."
',%gcc-cross-include-paths)
#t))))
#:configure-flags (list ,(string-append "--target=" target))
- ,@(package-arguments mig)))
+ #:tests? #f))
(propagated-inputs `(("cross-gnumach-headers" ,xgnumach-headers)))
(native-inputs `(("cross-gcc" ,xgcc)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 99b23b7b7e..be8f8b9f05 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -1063,7 +1063,7 @@ Trusted comments are signed, thus verified, before being displayed.")
(define-public libolm
(package
(name "libolm")
- (version "3.1.4")
+ (version "3.1.5")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1071,7 +1071,7 @@ Trusted comments are signed, thus verified, before being displayed.")
(commit version)))
(sha256
(base32
- "06s7rw4a9vn35wzz7chxn54mp0sjgbpv2bzz9lq0g4hnzw33cjbi"))
+ "030g0jmmvhx2dh32k708sz6cdd5q1wz48i4gigh6dclqk10w28lm"))
(file-name (git-file-name name version))))
(arguments
`(#:phases
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index d83211ede2..8bfe96079c 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -415,14 +415,14 @@ should only be used as part of the Guix cups-pk-helper service.")
(define-public hplip
(package
(name "hplip")
- (version "3.20.5")
+ (version "3.20.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz"))
(sha256
(base32
- "0nj79r61fzddwwzf8kcc0qkp4y9qx46v15iarz6h6y3v91wbsjq0"))
+ "0rmk7i28mb0q66i5l9d0fq2j23dkhz5gx5g2xvi16ga0dnprcilp"))
(modules '((guix build utils)))
(patches (search-patches "hplip-remove-imageprocessor.patch"))
(snippet
@@ -681,14 +681,14 @@ printer/driver specific, but spooler-independent PPD file.")
(define-public foo2zjs
(package
(name "foo2zjs")
- (version "20200426")
+ (version "20200610")
(source (origin
(method url-fetch)
;; XXX: This is an unversioned URL!
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
(sha256
(base32
- "0wwh29ddd59q18r1jpi3166lgnwr8zn9lry82vahc2g96l97isp7"))))
+ "11ddx6wf8b5ksl4fqw6fnyz9m3y470lryyrskkya2bsch2bvj9lg"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 48d7dd40bd..bf93639716 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -52,6 +52,7 @@
(package
(name "curl")
(version "7.69.1")
+ (replacement curl-7.71.0)
(source (origin
(method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-"
@@ -168,6 +169,31 @@ tunneling, and so on.")
(name "curl-minimal")
(inputs (alist-delete "openldap" (package-inputs curl))))))
+;; Replacement package to fix CVE-2020-8169 and CVE-2020-8177.
+(define curl-7.71.0
+ (package
+ (inherit curl)
+ (version "7.71.0")
+ (source (origin
+ (inherit (package-source curl))
+ (uri (string-append "https://curl.haxx.se/download/curl-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0wlppmx9iry8slh4pqcxj7lwc6fqwnlhh9ri2pcym2rx76a8gwfd"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments curl)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'check
+ (lambda _
+ ;; Test 1510 is now disabled upstream, and the test runner
+ ;; complains that it can not disable a non-existing test.
+ ;; Thus, override the phase to not delete the test.
+ (substitute* "tests/runtests.pl"
+ (("/bin/sh") (which "sh")))
+ (invoke "make" "-C" "tests" "test")))))))))
+
(define-public kurly
(package
(name "kurly")
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index bab4b4d128..e2eb0f396d 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1147,7 +1147,7 @@ including field and record folding.")))
(define-public rocksdb
(package
(name "rocksdb")
- (version "6.10.1")
+ (version "6.10.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1156,7 +1156,7 @@ including field and record folding.")))
(file-name (git-file-name name version))
(sha256
(base32
- "0rp8q73dx5f1nkcf2qp6fljm4dpj281y6cqckqgv976kvwvqdgz1"))
+ "1f2wqb6px812ijcivq3rsknqgkv01wblc6sd8wavhrw8qljgr3s1"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index a3bbd2b907..f7bf37efff 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -181,7 +181,11 @@ contains the archive keys used for that.")
(inputs
`(("debian-keyring" ,debian-archive-keyring)
("ubuntu-keyring" ,ubuntu-keyring)
- ("tzdata" ,tzdata)))
+ ("tzdata" ,tzdata)
+
+ ;; Called at run-time from various places, needs to be in PATH.
+ ("gnupg" ,gnupg)
+ ("wget" ,wget)))
(native-inputs
`(("perl" ,perl)))
(home-page "https://tracker.debian.org/pkg/debootstrap")
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index f6f402b315..49d0f32bbf 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -72,7 +72,7 @@
(define-public diffoscope
(package
(name "diffoscope")
- (version "146")
+ (version "148")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -81,7 +81,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "07kd3vshf4wlm0mv3mp6ljbxjq80mcg52w5ks6si1gnpzfbfz07p"))))
+ "0siv5z8iqgkzl51dmv69ifqids6hqmiir00yyl1aaqbginrwyhyv"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -92,12 +92,6 @@
(lambda _
(substitute* "setup.py"
(("'python-magic',") ""))))
- ;; Patch in support for known tools
- (add-after 'unpack 'add-known-tools
- (lambda _
- (substitute* "diffoscope/external_tools.py"
- (("'debian': 'openssl'")
- "'debian': 'openssl', 'guix': 'openssl'"))))
;; This test is broken because our `file` package has a
;; bug in berkeley-db file type detection.
(add-after 'unpack 'remove-berkeley-test
@@ -138,17 +132,25 @@
(("\\['getfacl',")
(string-append "['" (which "getfacl") "',")))
#t))
+ (add-after 'build 'build-man-page
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (apply invoke "make" "-C" "doc" make-flags)))
(add-before 'check 'writable-test-data
(lambda _
- ;; tests may need needs write access to tests
- ;; directory
+ ;; Tests may need write access to tests directory.
(for-each make-file-writable (find-files "tests"))
#t))
(add-before 'check 'delete-failing-test
(lambda _
- ;; this requires /sbin to be on the path
+ ;; This requires /sbin to be in $PATH.
(delete-file "tests/test_tools.py")
- #t)))))
+ #t))
+ (add-after 'install 'install-man-page
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "doc/diffoscope.1" man)
+ #t))))))
(inputs `(("rpm" ,rpm) ;for rpm-python
("python-file" ,python-file)
("python-debian" ,python-debian)
@@ -157,14 +159,15 @@
("acl" ,acl) ;for getfacl
("colordiff" ,colordiff)
("xxd" ,xxd)))
- ;; Below are modules used for tests.
- (native-inputs `(("python-pytest" ,python-pytest)
+ (native-inputs `(("help2man" ,help2man)
+ ;; Below are modules used for tests.
+ ("python-pytest" ,python-pytest)
("python-chardet" ,python-chardet)
("python-binwalk" ,python-binwalk)
("python-h5py" ,python-h5py)
("python-pypdf2" ,python-pypdf2)
("python-progressbar33" ,python-progressbar33)
- ;; test suite skips tests when tool is missing
+ ;; The test suite skips tests when these are missing.
,@(match (%current-system)
;; ghc is only available on x86 currently.
((or "x86_64-linux" "i686-linux")
@@ -177,8 +180,7 @@
((or "x86_64-linux")
`(("enjarify" ,enjarify)
;; no unversioned openjdk available
- ("openjdk:jdk" ,openjdk12 "jdk")
- ))
+ ("openjdk:jdk" ,openjdk12 "jdk")))
(_
`()))
("abootimg" ,abootimg)
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 7ff0501ab2..98dd425562 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -119,7 +119,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind
(package
(name "bind")
- (version "9.16.3")
+ (version "9.16.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -127,7 +127,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz"))
(sha256
(base32
- "0zjgaspnx0p0rp83h4yj595s25da7fjis94z9frhv3azvq9nbb17"))))
+ "02ip1xvmnqla3p5k2rmfrksrw4q9iqbrhyg3mamvrj5a7n6hh8km"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
@@ -723,8 +723,9 @@ synthesis, and on-the-fly re-configuration.")
("libuv" ,libuv)
("lmdb" ,lmdb)
("luajit" ,luajit)
- ;; TODO: Add optional lua modules: basexx, cqueues and psl.
+ ;; TODO: Add optional lua modules: basexx and psl.
("lua-bitop" ,lua5.1-bitop)
+ ("lua-cqueues" ,lua5.1-cqueues)
("lua-filesystem" ,lua5.1-filesystem)
("lua-sec" ,lua5.1-sec)
("lua-socket" ,lua5.1-socket)))
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 7221dd8fd9..ee09b9d0b4 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,8 +35,50 @@
#:use-module (guix build-system trivial)
#:use-module (guix build-system python))
+(define-public docbook-xml-5
+ (package
+ (name "docbook-xml")
+ (version "5.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.docbook.org/xml/" version
+ "/docbook-" version ".zip"))
+ (sha256
+ (base32
+ "1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((unzip
+ (string-append (assoc-ref %build-inputs "unzip")
+ "/bin/unzip"))
+ (source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (dtd (string-append out "/xml/dtd/docbook")))
+ (invoke unzip source)
+ (mkdir-p dtd)
+ (copy-recursively (string-append "docbook-" ,version) dtd)
+ (with-directory-excursion dtd
+ (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
+ (("uri=\"")
+ (string-append
+ "uri=\"file://" dtd "/")))
+ #t)))))
+ (native-inputs `(("unzip" ,unzip)))
+ (home-page "https://docbook.org")
+ (synopsis "DocBook XML DTDs for document authoring")
+ (description
+ "DocBook is general purpose XML and SGML document type particularly well
+suited to books and papers about computer hardware and software (though it is
+by no means limited to these applications.) This package provides XML DTDs.")
+ (license (x11-style "" "See file headers."))))
+
(define-public docbook-xml
(package
+ (inherit docbook-xml-5)
(name "docbook-xml")
(version "4.5")
(source (origin
@@ -45,7 +88,6 @@
(sha256
(base32
"1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"))))
- (build-system trivial-build-system)
(arguments
'(#:builder (begin
(use-modules (guix build utils))
@@ -60,19 +102,11 @@
(with-directory-excursion dtd
(invoke unzip source))
(substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
- (("uri=\"")
- (string-append
+ (("uri=\"")
+ (string-append
"uri=\"file://" dtd "/")))
#t))
- #:modules ((guix build utils))))
- (native-inputs `(("unzip" ,unzip)))
- (home-page "https://docbook.org")
- (synopsis "DocBook XML DTDs for document authoring")
- (description
- "DocBook is general purpose XML and SGML document type particularly well
-suited to books and papers about computer hardware and software (though it is
-by no means limited to these applications.) This package provides XML DTDs.")
- (license (x11-style "" "See file headers."))))
+ #:modules ((guix build utils))))))
(define-public docbook-xml-4.4
(package (inherit docbook-xml)
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index cdde807046..3dd706cbe9 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -390,6 +391,17 @@ built-in registry server of Docker.")
(substitute* "pkg/archive/archive.go"
(("string\\{\"xz")
(string-append "string{\"" (assoc-ref inputs "xz") "/bin/xz")))
+ ;; TODO: Remove when Docker proper uses v1.14.x to build
+ (substitute* "registry/resumable/resumablerequestreader_test.go"
+ (("I%27m%20not%20an%20url" all)
+ (string-append "\"" all "\"")))
+ ;; TODO: Remove when Docker proper uses v1.14.x to build
+ (substitute* "vendor/gotest.tools/x/subtest/context.go"
+ (("func \\(tc \\*testcase\\) Cleanup\\(" all)
+ (string-append all "func()"))
+ (("tc\\.Cleanup\\(" all)
+ (string-append all "nil")))
+
(let ((source-files (filter (lambda (name)
(not (string-contains name "test")))
(find-files "." "\\.go$"))))
@@ -488,6 +500,7 @@ built-in registry server of Docker.")
;; Timeouts after 5 min.
(delete-file "plugin/manager_linux_test.go")
;; Operation not permitted.
+ (delete-file "daemon/graphdriver/aufs/aufs_test.go")
(delete-file "daemon/graphdriver/btrfs/btrfs_test.go")
(delete-file "daemon/graphdriver/overlay/overlay_test.go")
(delete-file "daemon/graphdriver/overlay2/overlay_test.go")
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
index da00fdf932..bc27a7a504 100644
--- a/gnu/packages/efi.scm
+++ b/gnu/packages/efi.scm
@@ -64,7 +64,7 @@ environment presented by Intel's EFI.")
(define-public sbsigntools
(package
(name "sbsigntools")
- (version "0.9.3")
+ (version "0.9.4")
(source
(origin
(method git-fetch)
@@ -75,7 +75,7 @@ environment presented by Intel's EFI.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "0gc3xmp73xl7z4nkwz4qy960rdflmx7k4ksgyblcnia9smvsir6y"))))
+ (base32 "1y76wy65y6k10mjl2dm5hb5ms475alr4s080xzj8y833x01xvf3m"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index af379902a1..109475e1fb 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -40,7 +40,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
-;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
@@ -96,6 +96,7 @@
#:use-module (guix packages)
#:use-module (guix cvs-download)
#:use-module (guix download)
+ #:use-module (guix bzr-download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system gnu)
@@ -153,6 +154,7 @@
#:use-module (gnu packages package-management)
#:use-module (gnu packages perl)
#:use-module (gnu packages pdf)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages rust-apps)
#:use-module (gnu packages scheme)
#:use-module (gnu packages speech)
@@ -249,6 +251,79 @@ using geiser.")
(license license:bsd-3)
(home-page "https://github.com/xiaohanyu/ac-geiser"))))
+(define-public emacs-hyperbole
+ (package
+ (name "emacs-hyperbole")
+ (version "7.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/"
+ "hyperbole-" version ".tar"))
+ (sha256
+ (base32 "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab"))
+ (patches
+ (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include '("DEMO"
+ "DEMO-ROLO.otl"
+ "HY-ABOUT"
+ "\\.el$"
+ "\\.info$"
+ "\\.kotl$")
+ #:phases
+ (modify-phases %standard-phases
+ ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
+ ;; parent dir.
+ (add-after 'unpack 'fix-build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "hypb.el"
+ (("/bin/domainname")
+ (string-append (assoc-ref inputs "inetutils")
+ "/bin/dnsdomainname")))
+ (substitute* "hyperbole.el"
+ (("\\(hyperb:check-dir-user\\)") ""))
+ #t)))))
+ (inputs
+ `(("inetutils" ,inetutils)))
+ (home-page "https://www.gnu.org/software/hyperbole/")
+ (synopsis "The Everyday Hypertextual Information Manager")
+ (description
+ "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
+programmable hypertextual information management system implemented as a GNU
+Emacs package. It offers rapid views and interlinking of all kinds of textual
+information, utilizing Emacs for editing. It can dramatically increase your
+productivity and greatly reduce the number of keyboard/mouse keys you'll need
+to work efficiently. Hyperbole lets you:
+
+@itemize
+@item Quickly create hyperlink buttons either from the keyboard or by dragging
+between a source and destination window with a mouse button depressed. Later,
+activate buttons by pressing/clicking on them or by giving the name of the
+button.
+@item Activate many kinds of \"implicit buttons\" recognized by context within
+text buffers, e.g. URLs, grep output lines, and git commits. A single key or
+mouse button automatically does the right thing in dozens of contexts; just
+press and go.
+@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
+that all renumber automatically as any node or tree is moved in the outline.
+Each node also has a permanent hyperlink anchor that you can reference from
+any other node.
+@item Manage all your contacts quickly with hierarchical categories and embed
+hyperlinks within each entry. Or create an archive of documents with
+hierarchical entries and use the same search mechanism to quickly find any
+matching entry.
+@item Use single keys to easily manage your Emacs windows or frames and
+quickly retrieve saved window and frame configurations.
+@item Search for things in your current buffers, in a directory tree or across
+major web search engines with the touch of a few keys.
+@end itemize
+
+The common thread in all these features is making retrieval, management and
+display of information fast and easy. That is Hyperbole's purpose.")
+ (license license:gpl3+)))
+
(define-public emacs-paredit
(package
(name "emacs-paredit")
@@ -398,19 +473,20 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
(define-public emacs-magit
;; There hasn't been an official release since 2018-11-16.
- (let ((commit "d05545ec2fd7edf915eaf1b9c15c785bb08975cc"))
+ (let ((commit "7f486d47fe7042edba8d9a855a4c2c301a30bc6b")
+ (revision "6"))
(package
(name "emacs-magit")
- (version (git-version "2.90.1" "4" commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/magit/magit.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"))))
+ (version (git-version "2.90.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/magit/magit.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "05kyc5y5wa1p3h8j7mbgvfc4zcj998zi26lnnmksj9wnvahzxfms"))))
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs-no-x ;module support is required
@@ -475,11 +551,12 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
("emacs-with-editor" ,emacs-with-editor)))
(home-page "https://magit.vc/")
(synopsis "Emacs interface for the Git version control system")
- (description "With Magit, you can inspect and modify your Git
-repositories with Emacs. You can review and commit the changes you have made
-to the tracked files, for example, and you can browse the history of past
-changes. There is support for cherry picking, reverting, merging, rebasing,
-and other common Git operations.")
+ (description
+ "With Magit, you can inspect and modify your Git repositories
+with Emacs. You can review and commit the changes you have made to
+the tracked files, for example, and you can browse the history of past
+changes. There is support for cherry picking, reverting, merging,
+rebasing, and other common Git operations.")
(license license:gpl3+))))
(define-public emacs-magit-svn
@@ -1188,14 +1265,14 @@ optional minor mode which can apply this command automatically on save.")
(define-public emacs-relint
(package
(name "emacs-relint")
- (version "1.17")
+ (version "1.18")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://elpa.gnu.org/packages/relint-" version ".tar"))
+ (uri (string-append "https://elpa.gnu.org/packages/"
+ "relint-" version ".tar"))
(sha256
- (base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7"))))
+ (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
(home-page "https://github.com/mattiase/relint")
@@ -1404,44 +1481,21 @@ incrementally confined in Isearch manner.")
(define-public emacs-emms
(package
(name "emacs-emms")
- (version "5.4")
+ (version "5.42")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
+ (uri (string-append "https://elpa.gnu.org/packages/"
+ "emms-" version ".tar"))
(sha256
- (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (substitute* "Makefile"
- (("/usr/bin/install-info")
- ;; No need to use 'install-info' since it would create a
- ;; useless 'dir' file.
- "true")
- (("^INFODIR=.*")
- ;; Install Info files to $out/share/info, not $out/info.
- "INFODIR := $(PREFIX)/share/info\n")
- (("/site-lisp/emms")
- ;; Install directly in share/emacs/site-lisp, not in a
- ;; sub-directory.
- "/site-lisp")
- (("^all: (.*)\n" _ rest)
- ;; Build 'emms-print-metadata'.
- (string-append "all: " rest " emms-print-metadata\n")))
- #t))))
- (build-system gnu-build-system)
+ (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
+ (build-system emacs-build-system)
(arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (guix build emacs-utils)
- (ice-9 ftw))
- #:imported-modules (,@%gnu-build-system-modules
- (guix build emacs-utils))
-
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- (replace 'configure
+ (add-after 'unpack 'set-external-programs
+ ;; Specify the absolute file names of the various programs
+ ;; so that everything works out-of-the-box.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(flac (assoc-ref inputs "flac"))
@@ -1451,94 +1505,56 @@ incrementally confined in Isearch manner.")
(mp3info (assoc-ref inputs "mp3info"))
(mutagen (assoc-ref inputs "mutagen"))
(opus (assoc-ref inputs "opus-tools")))
- ;; Specify the installation directory.
- (substitute* "Makefile"
- (("PREFIX=.*$")
- (string-append "PREFIX := " out "\n")))
-
- (setenv "SHELL" (which "sh"))
- (setenv "CC" "gcc")
-
- ;; Specify the absolute file names of the various
- ;; programs so that everything works out-of-the-box.
- (with-directory-excursion "lisp"
- (emacs-substitute-variables
- "emms-player-mpg321-remote.el"
- ("emms-player-mpg321-remote-command"
- (string-append mpg321 "/bin/mpg321")))
- (substitute* "emms-player-simple.el"
- (("\"ogg123\"")
- (string-append "\"" vorbis "/bin/ogg123\"")))
- (substitute* "emms-player-simple.el"
- (("\"mpg321\"")
- (string-append "\"" mpg321 "/bin/mpg321\"")))
- (emacs-substitute-variables "emms-info-ogginfo.el"
- ("emms-info-ogginfo-program-name"
- (string-append vorbis "/bin/ogginfo")))
- (emacs-substitute-variables "emms-info-opusinfo.el"
- ("emms-info-opusinfo-program-name"
- (string-append opus "/bin/opusinfo")))
- (emacs-substitute-variables "emms-info-libtag.el"
- ("emms-info-libtag-program-name"
- (string-append out "/bin/emms-print-metadata")))
- (emacs-substitute-variables "emms-info-mp3info.el"
- ("emms-info-mp3info-program-name"
- (string-append mp3info "/bin/mp3info")))
- (emacs-substitute-variables "emms-info-metaflac.el"
- ("emms-info-metaflac-program-name"
- (string-append flac "/bin/metaflac")))
- (emacs-substitute-variables "emms-source-file.el"
- ("emms-source-file-gnu-find" (which "find")))
- (substitute* "emms-volume-amixer.el"
- (("\"amixer\"")
- (string-append "\"" alsa "/bin/amixer\"")))
- (substitute* "emms-tag-editor.el"
- (("\"mid3v2\"")
- (string-append "\"" mutagen "/bin/mid3v2\"")))
- #t))))
- (add-before 'install 'pre-install
- (lambda* (#:key outputs #:allow-other-keys)
- ;; The 'install' rule expects the target directories to exist.
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (man1 (string-append out "/share/man/man1")))
- (mkdir-p bin)
- (mkdir-p man1)
-
- ;; Ensure that files are not rejected by gzip
- (let ((early-1980 315619200)) ; 1980-01-02 UTC
- (ftw "." (lambda (file stat flag)
- (unless (<= early-1980 (stat:mtime stat))
- (utime file early-1980 early-1980))
- #t)))
- #t)))
- (add-after 'install 'post-install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (symlink "emms-auto.el"
- (string-append out "/share/emacs/site-lisp/"
- "emms-autoloads.el")))
- #t)))
- #:tests? #f))
- (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
- ("texinfo" ,texinfo)))
- (inputs `(("alsa-utils" ,alsa-utils)
- ("flac" ,flac) ;for metaflac
- ("vorbis-tools" ,vorbis-tools)
- ("mpg321" ,mpg321)
- ("taglib" ,taglib)
- ("mp3info" ,mp3info)
- ("mutagen" ,python-mutagen)
- ("opus-tools" ,opus-tools)))
- (properties '((upstream-name . "emms")))
- (synopsis "Emacs Multimedia System")
+ (emacs-substitute-variables "emms-player-mpg321-remote.el"
+ ("emms-player-mpg321-remote-command"
+ (string-append mpg321 "/bin/mpg321")))
+ (substitute* "emms-player-simple.el"
+ (("\"ogg123\"")
+ (string-append "\"" vorbis "/bin/ogg123\"")))
+ (substitute* "emms-player-simple.el"
+ (("\"mpg321\"")
+ (string-append "\"" mpg321 "/bin/mpg321\"")))
+ (emacs-substitute-variables "emms-info-ogginfo.el"
+ ("emms-info-ogginfo-program-name"
+ (string-append vorbis "/bin/ogginfo")))
+ (emacs-substitute-variables "emms-info-opusinfo.el"
+ ("emms-info-opusinfo-program-name"
+ (string-append opus "/bin/opusinfo")))
+ (emacs-substitute-variables "emms-info-libtag.el"
+ ("emms-info-libtag-program-name"
+ (string-append out "/bin/emms-print-metadata")))
+ (emacs-substitute-variables "emms-info-mp3info.el"
+ ("emms-info-mp3info-program-name"
+ (string-append mp3info "/bin/mp3info")))
+ (emacs-substitute-variables "emms-info-metaflac.el"
+ ("emms-info-metaflac-program-name"
+ (string-append flac "/bin/metaflac")))
+ (emacs-substitute-variables "emms-source-file.el"
+ ("emms-source-file-gnu-find" (which "find")))
+ (substitute* "emms-volume-amixer.el"
+ (("\"amixer\"")
+ (string-append "\"" alsa "/bin/amixer\"")))
+ (substitute* "emms-tag-editor.el"
+ (("\"mid3v2\"")
+ (string-append "\"" mutagen "/bin/mid3v2\"")))
+ #t))))))
+ (inputs
+ `(("alsa-utils" ,alsa-utils)
+ ("flac" ,flac) ;for metaflac
+ ("vorbis-tools" ,vorbis-tools)
+ ("mpg321" ,mpg321)
+ ("taglib" ,taglib)
+ ("mp3info" ,mp3info)
+ ("mutagen" ,python-mutagen)
+ ("opus-tools" ,opus-tools)))
+ (home-page "https://www.gnu.org/software/emms/")
+ (synopsis "The Emacs Multimedia System")
(description
"EMMS is the Emacs Multimedia System. It is a small front-end which
can control one of the supported external players. Thus, it supports
whatever formats are supported by your music player. It also
supports tagging and playlist management, all behind a clean and
light user interface.")
- (home-page "https://www.gnu.org/software/emms/")
(license license:gpl3+)))
(define-public emacs-emms-mode-line-cycle
@@ -2520,7 +2536,7 @@ type, for example: packages, buffers, files, etc.")
`(("pkg-config" ,pkg-config)
("emacs" ,emacs-minimal)))
(inputs
- `(("guile" ,guile-3.0)
+ `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
("guix" ,guix)))
(propagated-inputs
`(("geiser" ,emacs-geiser)
@@ -3289,6 +3305,32 @@ appropriate console.")
IRC bouncer with ERC.")
(license license:expat)))
+(define-public emacs-erc-status-sidebar
+ (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
+ (revision "1"))
+ (package
+ (name "emacs-erc-status-sidebar")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/drewbarbs/erc-status-sidebar.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
+ (build-system emacs-build-system)
+ (propagated-inputs `(("emacs-seq" ,emacs-seq)))
+ (home-page "https://github.com/drewbarbs/erc-status-sidebar")
+ (synopsis "Hexchat-like activity overview for ERC channels")
+ (description
+ "This package provides a Hexchat-like status bar for joined channels in
+ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
+@code{erc-track} module, and displays all the same information
+@code{erc-track} does in the mode line, but in an alternative format.")
+ (license license:expat))))
+
(define-public emacs-shut-up
(package
(name "emacs-shut-up")
@@ -3528,6 +3570,28 @@ tables.")
been copied from an Emacs major mode.")
(license license:gpl2+)))
+(define-public emacs-ob-erlang
+ (let ((revision "1")
+ (commit "f1a8c665b8f7d0ab32267a9961de8eed872e6333"))
+ (package
+ (name "emacs-ob-erlang")
+ (version (git-version "20180827" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xfwduke/ob-erlang.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b5zajqiy6955yvlqwy92prrqy89lqchsv4ss2ylws3p4s14rhij"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/xfwduke/ob-erlang/")
+ (synopsis "Org-babel support for Erlang")
+ (description "This package adds support for working with Erlang code
+blocks with @code{org-babel} in @code{org-mode}.")
+ (license license:gpl3+))))
+
(define-public emacs-ob-restclient
(let ((commit "53376667eeddb1388fd6c6976f3222e7c8adcd46"))
(package
@@ -3912,6 +3976,31 @@ provides an easy way to find synonyms and antonyms for a given word (to avoid
repetitions for example).")
(license license:gpl3+)))
+(define-public emacs-flycheck-guile
+ (package
+ (name "emacs-flycheck-guile")
+ (version "0.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/flatwhatson/flycheck-guile")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "163pnsh6r6bral1jg0vqri54g6hygws21vis0zci4114yb3fhkm1"))))
+ (propagated-inputs
+ `(("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-geiser" ,emacs-geiser)))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/flatwhatson/flycheck-guile")
+ (synopsis "GNU Guile support for Flycheck")
+ (description
+ "This package provides a Flycheck checker for GNU Guile using @code{guild
+compile}.")
+ (license license:gpl3+)))
+
(define-public emacs-flycheck-rust
(package
(name "emacs-flycheck-rust")
@@ -3989,6 +4078,62 @@ respective @code{*Help*} buffers.")
completion of relevant keywords.")
(license license:expat)))
+(define-public emacs-dvc
+ (let ((revision "591") ;no tags or official releases
+ (guix-revision "1"))
+ (package
+ (name "emacs-dvc")
+ (version (string-append "0.0.0-" guix-revision "." revision))
+ (source
+ (origin
+ (method bzr-fetch)
+ (uri (bzr-reference
+ (url "lp:dvc")
+ (revision revision)))
+ (sha256
+ (base32
+ "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
+ "/share/emacs/site-lisp/"))
+ #:tests? #f ;no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'set-home
+ ;; Something in dvc-bookmarks.el attempts to write config files in
+ ;; $HOME during the autoload generation.
+ (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
+ (add-before 'build 'fix-texinfo
+ ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
+ (lambda _
+ (substitute* "texinfo/dvc-intro.texinfo"
+ (("@itemx update ``to''")
+ "@item update ``to''")
+ (("@itemx brief")
+ "@item brief")
+ (("@itemx full")
+ "@item full")
+ (("@itemx drop")
+ "@item drop")
+ (("@itemx left file")
+ "@item left file"))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake) ;for aclocal
+ ("emacs" ,emacs-minimal)
+ ("texinfo" ,texinfo)))
+ (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
+ (synopsis "Emacs front-end for various distributed version control systems.")
+ (description "DVC is a legacy Emacs front-end for a number of
+distributed version control systems. It currently supports GNU Arch, GNU
+Bazaar, git, Mercurial, and Monotone. It also provides some integration with
+Gnus, e.g., for applying patches received by email.")
+ (license license:gpl2+))))
+
(define-public emacs-sudo-edit
(let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
(revision "6"))
@@ -4073,14 +4218,14 @@ source code using IPython.")
(define-public emacs-debbugs
(package
(name "emacs-debbugs")
- (version "0.23")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
- version ".tar"))
- (sha256
- (base32
- "0mcz97b3sddrc68wi8dz95b2rq7ky88pr2i1ghyhy28as16chmz5"))))
+ (version "0.24")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
+ version ".tar"))
+ (sha256
+ (base32 "1b8qwdvf3jvw0chrdgbymb2ci9ms45mf90nrljxx7jql2lsr3x63"))))
(build-system emacs-build-system)
(arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
(propagated-inputs
@@ -5109,31 +5254,28 @@ linting of manifests and integration with Puppet Debugger.")
(license license:gpl3+))))
(define-public emacs-god-mode
- (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
- (revision "1"))
- (package
- (name "emacs-god-mode")
- (version (string-append "20151005.925."
- revision "-" (string-take commit 9)))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/chrisdone/god-mode.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
- (build-system emacs-build-system)
- (home-page "https://github.com/chrisdone/god-mode")
- (synopsis "Minor mode for entering commands without modifier keys")
- (description
- "This package provides a global minor mode for entering Emacs commands
+ (package
+ (name "emacs-god-mode")
+ (version "2.17.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chrisdone/god-mode.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/chrisdone/god-mode")
+ (synopsis "Minor mode for entering commands without modifier keys")
+ (description
+ "This package provides a global minor mode for entering Emacs commands
without modifier keys. It's similar to Vim's separation of commands and
insertion mode. When enabled all keys are implicitly prefixed with
@samp{C-} (among other helpful shortcuts).")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public emacs-jinja2-mode
(package
@@ -5232,6 +5374,32 @@ that it correctly finds RFCs even when a space appears before the
number.")
(license license:gpl3+)))
+(define-public emacs-feature-mode
+ (let ((version "20190801")
+ (revision "1")
+ (commit "11ae1671629bfedaa553c7b819676d64eb320992"))
+ (package
+ (name "emacs-feature-mode")
+ (version (git-version version revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/michaelklishin/cucumber.el.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yd4gkxz9xcbgibfgr8apsid3f83nmg5jgqk5nql0linj5gymc28"))))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:include (cons* "^features\\/" "snippets\\/" "^support\\/"
+ %default-include)))
+ (home-page "https://github.com/michaelklishin/cucumber.el/")
+ (synopsis "Emacs mode for editing Gherkin plain text user stories")
+ (description "Major mode for editing Gherkin (popularized by the
+Cucumber tool) user stories. Also known by the name @code{cucumber.el}.")
+ (license license:gpl2+))))
+
(define-public emacs-org-bullets
(package
(name "emacs-org-bullets")
@@ -7397,7 +7565,7 @@ indentation guides in Emacs:
(define-public emacs-elpy
(package
(name "emacs-elpy")
- (version "1.32.0")
+ (version "1.34.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -7406,12 +7574,23 @@ indentation guides in Emacs:
(file-name (git-file-name name version))
(sha256
(base32
- "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj"))))
+ "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
(build-system emacs-build-system)
(arguments
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
#:phases
(modify-phases %standard-phases
+ ;; The following tests fail when building with Emacs 27 (see:
+ ;; https://github.com/jorgenschaefer/elpy/issues/1812).
+ (add-after 'unpack 'disable-problematic-tests
+ (lambda _
+ (substitute* "test/elpy-company-backend-test.el"
+ (("elpy-company-backend-should-add-shell-candidates.*" all)
+ (string-append all " (skip-unless nil)\n")))
+ (substitute* "test/elpy-folding-fold-comments-test.el"
+ (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
+ (string-append all " (skip-unless nil)\n")))
+ #t))
;; The default environment of the RPC uses Virtualenv to install
;; Python dependencies from PyPI. We don't want/need this in Guix.
(add-before 'check 'do-not-use-virtualenv
@@ -7781,7 +7960,7 @@ ack, ag, helm and pt.")
(define-public emacs-helm
(package
(name "emacs-helm")
- (version "3.6.2")
+ (version "3.6.3")
(source
(origin
(method git-fetch)
@@ -7790,7 +7969,7 @@ ack, ag, helm and pt.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bf2glydc0vhp52z8zg8phmsglb63nac15zd82zr35dscc50bzrb"))))
+ (base32 "175v0x2w3if2r9k5l8n7gf256v9y8zwxwgfnpm3j4bldrnyxqjg0"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-async" ,emacs-async)
@@ -8386,8 +8565,8 @@ extensions.")
(license license:gpl3+)))
(define-public emacs-evil-collection
- (let ((commit "d062cc206d671fb5aefb1e0e679a9cb1d6c73e33")
- (revision "14"))
+ (let ((commit "c68aed6a9694836602ada224160bc5b4c0a37919")
+ (revision "15"))
(package
(name "emacs-evil-collection")
(version (git-version "0.0.3" revision commit))
@@ -8399,7 +8578,7 @@ extensions.")
(file-name (git-file-name name version))
(sha256
(base32
- "1zizfqmfrxx3shgggwa74rg2qqbrs8704wf94ajx0k11dbm1dbrp"))))
+ "1xhrzl0vy540a572f9fnh5a039bpqsrkv0kh6bqw0rki70w7x0xx"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-evil" ,emacs-evil)
@@ -9456,48 +9635,26 @@ been adapted to work with mu4e.")
(uri (git-reference
(url "https://github.com/joaotavora/yasnippet.git")
(commit version)))
- (file-name (string-append name "-" version ".tar.gz"))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; YASnippet expects a "snippets" subdirectory in the same
- ;; directory as yasnippet.el, but we don't install it because it's
- ;; a git submodule pointing to an external repository. Adjust
- ;; `yas-snippet-dirs' to prevent warnings about a missing
- ;; directory.
- (substitute* "yasnippet.el"
- (("^ +'yas-installed-snippets-dir\\)\\)\n")
- "))\n"))
- #t))))
+ (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
#:test-command '("emacs" "--batch"
"-l" "yasnippet-tests.el"
"-f" "ert-run-tests-batch-and-exit")
- ;; FIXME: one failing test.
#:phases
(modify-phases %standard-phases
- (add-before 'check 'make-tests-writable
- (lambda _
- (make-file-writable "yasnippet-tests.el")
- #t))
- (add-before 'check 'delete-rebinding-test
+ ;; Set HOME, otherwise test-rebindings fails.
+ (add-before 'check 'set-home
(lambda _
- (emacs-batch-edit-file "yasnippet-tests.el"
- `(progn (goto-char (point-min))
- (re-search-forward "ert-deftest test-rebindings")
- (beginning-of-line)
- (kill-sexp)
- (basic-save-buffer)))
+ (setenv "HOME" (getcwd))
#t)))))
(home-page "https://github.com/joaotavora/yasnippet")
(synopsis "Yet another snippet extension for Emacs")
- (description
- "YASnippet is a template system for Emacs. It allows you to type an
-abbreviation and automatically expand it into function templates.")
+ (description "YASnippet is a template system for Emacs. It allows you to
+type an abbreviation and automatically expand it into function templates.")
(license license:gpl3+)))
(define-public emacs-yasnippet-snippets
@@ -10015,26 +10172,17 @@ performance-oriented and tidy.")
(define-public emacs-leaf
(package
(name "emacs-leaf")
- (version "3.5.0")
+ (version "4.2.5")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/conao3/leaf.el.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "https://elpa.gnu.org/packages/"
+ "leaf-" version ".tar"))
(sha256
- (base32
- "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
+ (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
(build-system emacs-build-system)
(home-page "https://github.com/conao3/leaf.el")
- (arguments
- `(#:tests? #t
- #:test-command '("emacs" "--batch"
- "-l" "leaf-tests.el"
- "-f" "cort-test-run")))
- (synopsis
- "Simplify your init.el configuration, extended use-package")
+ (synopsis "Simplify your init.el configuration, extended use-package")
(description
"This package provides macros that allows you to declaratively configure
settings typical of an Elisp package with various keywords. The syntax is
@@ -14524,7 +14672,7 @@ documentation.")
(define-public emacs-hy-mode
(package
(name "emacs-hy-mode")
- (version "1.0.3")
+ (version "1.0.4")
(source
(origin
(method git-fetch)
@@ -14533,7 +14681,7 @@ documentation.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
+ (base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
@@ -14672,12 +14820,11 @@ scientific publication. Org Ref is also useful for research documents and
notes.")
(license license:gpl3+))))
-;; This project is unmaintained. Please use emacs-org-re-reveal instead.
(define-public emacs-org-reveal
- (let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
+ (let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
(package
(name "emacs-org-reveal")
- (version (git-version "0.1" "3" commit))
+ (version (git-version "20200607" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
@@ -14686,7 +14833,7 @@ notes.")
(file-name (git-file-name name version))
(sha256
(base32
- "1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
+ "1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
(build-system emacs-build-system)
(home-page "https://github.com/yjwen/org-reveal")
(synopsis "Org and Reveal.js powered HTML presentation tool")
@@ -16936,11 +17083,11 @@ accept and reject GitHub pull requests.")
(license license:gpl3+))))
(define-public emacs-deadgrep
- (let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
- (revision "2"))
+ (let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
+ (revision "1"))
(package
(name "emacs-deadgrep")
- (version (git-version "0.8" revision commit))
+ (version (git-version "0.10" revision commit))
(source
(origin
(method git-fetch)
@@ -16950,9 +17097,9 @@ accept and reject GitHub pull requests.")
(file-name (git-file-name name version))
(sha256
(base32
- "016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
+ "1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
(build-system emacs-build-system)
- (inputs
+ (propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-s" ,emacs-s)
("emacs-spinner" ,emacs-spinner)))
@@ -21686,7 +21833,7 @@ Google guidelines.")
(define-public emacs-helm-fish-completion
(package
(name "emacs-helm-fish-completion")
- (version "0.4")
+ (version "0.5")
(home-page "https://github.com/emacs-helm/helm-fish-completion")
(source
(origin
@@ -21696,7 +21843,7 @@ Google guidelines.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0mh10qq3r16hjrayrbns51gmjpjnmpzy4i05rwn14rf2icvhs6x8"))))
+ (base32 "0hpsm39kx8vpz2zmarjrkvy1capkk5lwpsmdg2xnklsck6xsn922"))))
(build-system emacs-build-system)
(propagated-inputs
`(("helm" ,emacs-helm)
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 59240f17c4..5525b066f4 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -44,7 +44,9 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages backup)
#:use-module (gnu packages cdrom)
+ #:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cross-base)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
#:use-module (gnu packages fonts)
@@ -88,7 +90,8 @@
#:use-module (gnu packages web)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system python))
(define-public desmume
(package
@@ -414,7 +417,7 @@ V2.")
(define-public mgba
(package
(name "mgba")
- (version "0.8.1")
+ (version "0.8.2")
(source
(origin
(method git-fetch)
@@ -423,7 +426,7 @@ V2.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1if82mfaak3696w5d5yshynpzywrxgvg3ifdfi2rwlpvq1gpd429"))
+ (base32 "0dlwhn3hrpaqnl5hjs53y8j2i16idxrg3gy688gcwrc9z1a6bkn2"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@@ -470,7 +473,7 @@ and Game Boy Color games.")
(define-public sameboy
(package
(name "sameboy")
- (version "0.13.2")
+ (version "0.13.3")
(source
(origin
(method git-fetch)
@@ -479,7 +482,7 @@ and Game Boy Color games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "19qb1ib9sk5bjdv4arbwkv8l2afpll5axrif3wi7p2yhvpba10c0"))))
+ (base32 "1mv5a7p6plz0359l3z9g232rgaq2h3yby5949ps0s88cxj94w9qm"))))
(build-system gnu-build-system)
(native-inputs
`(("rgbds" ,rgbds)
@@ -1622,3 +1625,156 @@ derived from Gens. Project goals include clean source code, combined features
from various forks of Gens, and improved platform portability.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:gpl2+)))
+
+(define-public bsnes
+ (package
+ (name "bsnes")
+ (version "115")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bsnes-emu/bsnes")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0j054x38fwai61vj36sc04r3zkzay5acq2cgd9zqv5hs51s36g5b"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "-C" "bsnes"
+ (string-append "prefix=" (assoc-ref %outputs "out")))
+ #:tests? #f ; No tests.
+ #:phases (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ao" ,ao)
+ ("cairo" ,cairo)
+ ("eudev" ,eudev)
+ ("gtksourceview-2" ,gtksourceview-2)
+ ("libxrandr" ,libxrandr)
+ ("libxv" ,libxv)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("sdl2" ,sdl2)))
+ (home-page "https://bsnes.dev/")
+ (synopsis "Emulator for the Super Nintendo / Super Famicom systems")
+ (description
+ "bsnes is a Super Nintendo / Super Famicom emulator that focuses on
+performance, features, and ease of use.")
+ (license license:gpl3)))
+
+;; python-pwntools requires a -rc release of unicorn
+(define-public unicorn
+ (let ((unless-x86
+ (lambda (code)
+ (if (member (%current-system) '("x86_64-linux" "i686-linux"))
+ '()
+ code))))
+ (package
+ (name "unicorn")
+ (version "1.0.2-rc4")
+ ;; NOTE: unicorn ships a bundled QEMU, but with a lot of custom modifications.
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/unicorn-engine/unicorn")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "17nyccgk7hpc4hab24yn57f1xnmr7kq4px98zbp2bkwcrxny8gwy"))))
+ (outputs '("out" "python"))
+ ;; The main library is not written in Python, but the build process has
+ ;; little in common with any defined build system, so we might as well
+ ;; build on top of python-build-system and make use of all
+ ;; the Python-specific phases that can be reused.
+ (build-system python-build-system)
+ (arguments
+ `(#:modules ((srfi srfi-26)
+ (guix build python-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'install-bindings-to-python-output
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; python-build-system will build the bindings and install them to
+ ;; the "out" output, so change the build-internal names of the
+ ;; outputs.
+ ;;
+ ;; TODO: remove this once #40469 lands, through the core-updates
+ ;; holding zone, on master.
+ (set-car! (assoc "out" outputs) "lib")
+ (set-car! (assoc "python" outputs) "out")
+ #t))
+ (add-before 'build 'build-library
+ (lambda* (#:key inputs #:allow-other-keys)
+ (invoke "make"
+ "-j" (number->string (parallel-job-count))
+ "UNICORN_STATIC=no"
+ "CC=gcc")))
+ (add-after 'build-library 'install-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "make" "install"
+ "UNICORN_STATIC=no"
+ (string-append
+ "PREFIX="
+ (assoc-ref outputs "lib")))))
+ (add-before 'build 'prepare-bindings
+ (lambda* (#:key outputs #:allow-other-keys)
+ (chdir "bindings/python")
+ ;; Set this environment variable so that the Python bindings
+ ;; don't build their own copy of the shared object, but use
+ ;; a dummy value such that the bindings test suite uses the
+ ;; same mechanism for loading the library as any other user.
+ (setenv "LIBUNICORN_PATH" "1")
+ (substitute* "unicorn/unicorn.py"
+ (("_path_list = \\[.*")
+ (string-append
+ "_path_list = [\""
+ (assoc-ref outputs "lib")
+ ;; eat the rest of the list
+ "/lib\"] + 0*[")))
+ #t))
+ (add-before 'check 'check-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (suite)
+ (with-directory-excursion
+ (string-append "../../tests/" suite)
+ (invoke "make" "test" "CC=gcc"
+ ,@(unless-x86
+ '("AS=i686-unknown-linux-gnu-as"
+ "OBJCOPY=i686-unknown-linux-gnu-objcopy")))))
+ '("unit" "regress"))
+ #t))
+ (add-after 'install 'install-samples
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((python-samples (find-files "." "sample_.*"))
+ (c-samples (find-files "../../samples" ".*\\.c"))
+ (python-docdir
+ (string-append (assoc-ref outputs "out")
+ "/share/doc/unicorn/samples"))
+ (c-docdir
+ (string-append (assoc-ref outputs "lib")
+ "/share/doc/unicorn/samples")))
+ (for-each (cut install-file <> c-docdir) c-samples)
+ (for-each (cut install-file <> python-docdir) python-samples)
+ #t))))))
+ (native-inputs
+ ;; NOTE: cross-binutils needs to be wrapped with unless-x86, as otherwise
+ ;; the linker provided by the package will be used, circumventing the ld-wrapper.
+ `(,@(unless-x86
+ `(("assembler-for-tests" ,(cross-binutils "i686-unknown-linux-gnu"))))
+ ("cmocka" ,cmocka)
+ ("hexdump-for-tests" ,util-linux)))
+ (home-page "http://www.unicorn-engine.org")
+ (synopsis "Unicorn CPU emulator framework")
+ (description
+ "Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator
+framework based on QEMU.")
+ (license license:gpl2+))))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index fe3c87edd5..f2d32e663f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,6 +55,7 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -61,6 +63,7 @@
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
+ #:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
@@ -85,8 +88,10 @@
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux) ;FIXME: for pcb
+ #:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
@@ -103,6 +108,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages openkinect)
@@ -1027,15 +1033,14 @@ the 'showing the effect of'-style of operation.")
(define-public volk
(package
(name "volk")
- (version "2.2.1")
+ (version "2.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.libvolk.org/releases/volk-"
version ".tar.gz"))
(sha256
- (base32
- "1wz5nhmw6np8ka30pgy1qnima3rk2ksln4klfhrj7wah3fian0k9"))))
+ (base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -1058,16 +1063,16 @@ the 'showing the effect of'-style of operation.")
(,(string-append python "/bin:")))))
#t)))))
(inputs
- `(("boost" ,boost)))
- (native-inputs
- `(("python" ,python-wrapper)
+ `(("boost" ,boost)
+ ("python" ,python-wrapper)
("python-mako" ,python-mako)))
(home-page "https://www.libvolk.org/")
(synopsis "Vector-Optimized Library of Kernels")
(description
- "@code{volk} contains procedures with machine-specific optimizations
-for mathematical functions. It also provides an machine-independent
-interface to select the best such procedures to use on a given system.")
+ "@acronym{VOLK, Vector-Optimized Library of Kernels} contains procedures
+with machine-specific optimizations for mathematical functions. It also
+provides a machine-independent interface to select the best such procedures to
+use on a given system.")
(license license:gpl3+)))
(define-public minicom
@@ -2624,7 +2629,7 @@ export filters.")
(define-public meshlab
(package
(name "meshlab")
- (version "2020.05")
+ (version "2020.06")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2633,7 +2638,7 @@ export filters.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "00sim20ka9vjwljixdj4cqd285j21mpaq05ari7nqq2w8yyglp5m"))))
+ (base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
@@ -2677,3 +2682,65 @@ proper, a versatile program with a graphical user interface, and meshlabserver,
a program that can perform mesh processing tasks in batch mode, without a
GUI.")
(license license:gpl3+)))
+
+(define-public poke
+ ;; Upstream has yet to tag any releases.
+ (let ((commit "d33317a46e3b7c48130a471a48cbfea1abab70d8")
+ (revision "0"))
+ (package
+ (name "poke")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.savannah.gnu.org/poke.git")
+ (commit commit)
+ (recursive? #t)))
+ (sha256
+ (base32 "1dd0r1x123bqi78lrsk58rvg9c9wka0kywdyzn7g3i4hkh54xb7d"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ ;; The GUI, which we elide, requires tcl and tk.
+ (native-inputs `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ;; Requires bison 3.6+ but we currently only have 3.5.
+ ;; Bison 3.6 will be available in the next core update.
+ ("bison-3.6" ,bison-3.6)
+ ("clisp" ,clisp)
+ ("dejagnu" ,dejagnu)
+ ("flex" ,flex)
+ ("gettext" ,gettext-minimal)
+ ("help2man" ,help2man)
+ ("libtool" ,libtool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("python-2" ,python-2)
+ ("python-3" ,python-3)
+ ("texinfo" ,texinfo)))
+ ;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
+ ;; FIXME: A "hyperlinks-capable" `libtexststyle' needed for the hserver.
+ (inputs `(("json-c" ,json-c)
+ ("libgc" ,libgc)
+ ("readline" ,readline)))
+ (arguments
+ ;; To build the GUI, add the `--enable-gui' configure flag.
+ ;; To enable the "hyperlink server", add the `--enable-hserver' flag.
+ `(#:configure-flags '("--enable-mi")
+ #:phases (modify-phases %standard-phases
+ ;; This is a non-trivial bootstrap that needs many of the
+ ;; native-inputs and thus must run after `patch-shebangs'.
+ (delete 'bootstrap)
+ (add-after 'patch-source-shebangs 'bootstrap
+ (lambda _
+ (invoke "./bootstrap" "--no-git"
+ "--no-bootstrap-sync"
+ "--gnulib-srcdir=gnulib")
+ #t)))))
+ (home-page "http://jemarch.net/poke.html")
+ (synopsis "Interactive, extensible editor for binary data")
+ (description "GNU poke is an interactive, extensible editor for binary
+ data. Not limited to editing basic entities such as bits and bytes, it
+ provides a full-fledged procedural, interactive programming language designed
+ to describe data structures and to operate on them.")
+ (license license:gpl3+))))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 40f1191416..02e1b0e220 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -70,7 +70,7 @@
(define-public efl
(package
(name "efl")
- (version "1.24.2")
+ (version "1.24.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -78,7 +78,7 @@
version ".tar.xz"))
(sha256
(base32
- "0w3srvigg4kfi7xq76c7y4hnq5yr2gxrrsvlyj1g2wc1igz1vyg1"))))
+ "0ajwc8lmay5ai7nsrp778g393h0p4h98p4c22gic2w61fgkcd5fy"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
@@ -152,11 +152,6 @@
; (assoc-ref %build-inputs "hyphen")
; "/share/hyphen")
"-Dnetwork-backend=connman"
- ,@(match (%current-system)
- ("armhf-linux"
- '("-opengl=es-egl"))
- (_
- '("-Dopengl=full")))
;; for wayland
"-Dwl=true"
"-Ddrm=true")
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 4ed0f9a037..5a913441e9 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -35,6 +35,7 @@
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;; Copyright © 2020 Simen Endsjø <simendsjo@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,6 +64,7 @@
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
@@ -1170,7 +1172,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
(package
(name "font-iosevka")
;; When updating, also update the hash of the Iosevka variant(s) below.
- (version "2.3.3")
+ (version "3.1.1")
(source
(origin
(method url-fetch/zipbomb)
@@ -1178,7 +1180,7 @@ typeface, by mimicking Comic Sans while fixing its most obvious shortcomings.")
"/releases/download/v" version
"/ttc-iosevka-" version ".zip"))
(sha256
- (base32 "0jkv5rkg5hi0avhwyhcjiqzjslp6zjj77f09vxx2gj9l93byz731"))))
+ (base32 "1xnkfr11rdjnin2fvgkp9vxxigfbfdncr0wy6n78mlm3p1pqwfrm"))))
(build-system font-build-system)
(home-page "https://be5invis.github.io/Iosevka/")
(synopsis "Coders' typeface, built from code")
@@ -1201,7 +1203,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/ttc-iosevka-slab-" version ".zip"))
(sha256
- (base32 "1rkmgi08kknc1fg54zpa6w92m3b3v7pc8cpwygz22kgd2h0mdrr8"))))))
+ (base32 "1n3lh015mvsdbyygpg3p3yqjpqdn1fdvjh1bhi2ggjanhifjsgzh"))))))
(define-public font-iosevka-term
(package
@@ -1213,10 +1215,10 @@ programming. Iosevka is completely generated from its source code.")
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
- "/02-iosevka-term-" version ".zip"))
+ "/ttf-iosevka-term-" version ".zip"))
(sha256
(base32
- "1mxlb3qf64nykjd0x4gjfvib3k5kyv9ssv9iyzxxgk2z80bydz00"))))
+ "1mwzwpdppmcf03fgb5q6ksj0kk93wwaz2isk24wj1cm66r8psxk0"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -1235,10 +1237,10 @@ programming. Iosevka is completely generated from its source code.")
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
- "/06-iosevka-term-slab-" version ".zip"))
+ "/ttf-iosevka-term-slab-" version ".zip"))
(sha256
(base32
- "1gc16hih157qy6vpa8f88psq0fnksiigi3msqazc75zsm3z4kzqj"))))
+ "0fiwxkf2gv38ia695wh8cvnb58sqs3fixjd33q1pp9cps94wzjpg"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@@ -1247,10 +1249,52 @@ programming. Iosevka is completely generated from its source code.")
(for-each make-file-writable (find-files "." ".*"))
#t)))))))
+(define-public font-iosevka-aile
+ (package
+ (inherit font-iosevka)
+ (name "font-iosevka-aile")
+ (version (package-version font-iosevka))
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri (string-append "https://github.com/be5invis/Iosevka"
+ "/releases/download/v" version
+ "/ttc-iosevka-aile-" version ".zip"))
+ (sha256
+ (base32 "15kz8ahlynnb79s2d367a1fallc4l3j3957yj43qrymayagkh8sv"))))))
+
+(define-public font-iosevka-etoile
+ (package
+ (inherit font-iosevka)
+ (name "font-iosevka-etoile")
+ (version (package-version font-iosevka))
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri (string-append "https://github.com/be5invis/Iosevka"
+ "/releases/download/v" version
+ "/ttc-iosevka-etoile-" version ".zip"))
+ (sha256
+ (base32 "0q9299mc595m251v9zj9b0zparl2qq8dwx090l0jkfpr2az9xr8q"))))))
+
+(define-public font-iosevka-sparkle
+ (package
+ (inherit font-iosevka)
+ (name "font-iosevka-sparkle")
+ (version (package-version font-iosevka))
+ (source
+ (origin
+ (method url-fetch/zipbomb)
+ (uri (string-append "https://github.com/be5invis/Iosevka"
+ "/releases/download/v" version
+ "/ttc-iosevka-sparkle-" version ".zip"))
+ (sha256
+ (base32 "0nhvcnvl11iqmsxsyrxlbnwy9z1vdhqv6p3g7fig9ra6n5j9k5kn"))))))
+
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
- (version "0.12.6")
+ (version "0.12.7")
(source
(origin
(method url-fetch)
@@ -1258,7 +1302,7 @@ programming. Iosevka is completely generated from its source code.")
"/releases/download/v" version
"/sarasa-gothic-ttc-" version ".7z"))
(sha256
- (base32 "1g6k9d5lajchbhsh3g12fk5cgilyy6yw09fals9vc1f9wsqvac86"))))
+ (base32 "09v65k00g8m953s6riz9xjzb2jgr6v5pdhcllalzzl7c1cn2xl3k"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@@ -1795,3 +1839,61 @@ characteristic so that they sit smoothly with the Tamil glyphs.")
to write people's name, or for formal business situations where it is necessary
to have a detailed and proper character style.")
(license license:ipa)))
+
+(define-public font-fontna-yasashisa-antique
+ (package
+ (name "font-fontna-yasashisa-antique")
+ (version "0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://flop.sakura.ne.jp/font/fontna-op/"
+ "YasashisaAntiqueFont.zip"))
+ (sha256
+ (base32
+ "1hl2qk3lzmh9h2vv5647vhlslkn3vqbq9rqgp4wzybajafx8c6nj"))))
+ (build-system font-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; encoding issues cause many phases to fail
+ (add-after 'unpack 'fix-encoding
+ (lambda _
+ ;; This directory, TrueType(サポート外), is not properly encoded,
+ ;; which makes rename-file fail. Instead, use shell globbing to
+ ;; select and rename the directory.
+ (invoke "sh" "-c" "mv TrueType* TrueType")
+ #t)))))
+ (native-inputs
+ `(("bash" ,bash-minimal)
+ ("coreutils" ,coreutils)))
+ (home-page "http://www.fontna.com/blog/1122/")
+ (synopsis "Mix font of gothic kanji and minchou kana")
+ (description "Antique is a font that is popular to write manga bubbles,
+dictionary headwords and picture books. This font reduces the thickness
+differences in characters compared to other antique fonts.")
+ (license (list license:ipa
+ (license:non-copyleft "mplus-TESTFLIGHT-057/LICENSE_E")))))
+
+(define-public font-mplus-testflight
+ (package
+ (name "font-mplus-testflight")
+ (version "063a")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://osdn.net/frs/redir.php?"
+ "m=gigenet&f=mplus-fonts%2F62344%2Fmplus-TESTFLIGHT-"
+ version ".tar.xz"))
+ (file-name (string-append name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0yfx9i77638yrgclnwwl4af79ri3vifi1nslwi6mgzva9cxrgss4"))))
+ (build-system font-build-system)
+ (home-page "https://mplus-fonts.osdn.jp/index.html")
+ (synopsis "Japanese font collection")
+ (description "M+ is a collection of Japanese fonts with all Latin glyph
+sets, with Basic Latin, Latin-1 Supplement, Latin Extended-A, and IPA
+Extensions. In addition to European letters used in many Western European
+languages, it contains Japanese characters, including Kana glyphs and more
+than 5,300 Kanji glyphs, as well major international phonetic symbols,
+operators and special symbols.")
+ (license (license:non-copyleft "file:///LICENSE_E"))))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index ab9bd4346f..3336a84001 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -746,14 +746,14 @@ implements UFO3 as described by the UFO font format.")
(version "20170925")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/googlei18n/nototools/"
- "archive/v2017-09-25-tooling-for-phase3-"
- "update.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/googlei18n/nototools")
+ (commit "v2017-09-25-tooling-for-phase3-update")))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1pvacw18cm9l4sb66pqyjc7hc74xhhfxc7kd5ald8lixf4wzg0s8"))))
+ "03nzvcvwmrhfrcjhg218q2f3hfrm3vlivp4rk19sc397kh3hisiz"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2))
@@ -831,14 +831,14 @@ work well with other GTK+ desktop environments.")
(name "fntsample")
(version "5.3")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/eugmes/fntsample/archive/release/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eugmes/fntsample")
+ (commit (string-append "release/" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0awp4dh1g40ivzvm5xqlvcpcdw1vplrx3drjmbylr62y185vbs74"))))
+ "02rx3gp7k472304vhjwb129nw10a29s4nvgs7i2m6bpjhlk2xgs5"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; There are no tests.
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index b899c2fe6c..74ab51f8b3 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
@@ -313,30 +313,24 @@ provide connectivity for client applications written in any language.")
(define-public nml
(package
(name "nml")
- (version "0.4.5")
+ (version "0.5.2")
(source
(origin
(method url-fetch)
- (uri (string-append "http://bundles.openttdcoop.org/nml/releases/"
- version "/nml-" version ".tar.gz"))
+ (uri (pypi-uri "nml" version))
(sha256
(base32
- "1pmvvm3sgnpngfa7884mqhq3fwdjh9sr0ca07ypnidcg0y341w53"))))
+ "1lwf5sc5qqzrkxfx5wkkj3yh2j2nzh5r599ly5psy8yw92km24hy"))))
(build-system python-build-system)
+ ;; TODO: Fix test that fails with
+ ;; "AttributeError: partially initialized module 'nml.nmlop' has no
+ ;; attribute 'ADD' (most likely due to a circular import)"
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'build 'fix-pillow
- (lambda _
- ;; pillow's version is not in PIL.Image.VERSION anymore
- (substitute* "nml/version_info.py"
- (("from PIL import Image") "import PIL")
- (("Image.VERSION") "PIL.__version__"))
- #t)))))
+ '(#:tests? #f))
(propagated-inputs
`(("python-pillow" ,python-pillow)
("python-ply" ,python-ply)))
- (home-page "https://dev.openttdcoop.org/projects/nml")
+ (home-page "https://github.com/OpenTTD/nml")
(synopsis "NML compiler")
(description
"@dfn{NewGRF Meta Language} (NML) is a python-based compiler, capable of
@@ -1495,16 +1489,17 @@ of use.")
(define-public openmw
(package
(name "openmw")
- (version "0.45.0")
+ (version "0.46.0")
(source
(origin
- (method url-fetch)
- (uri
- (string-append "https://github.com/OpenMW/openmw/archive/"
- "openmw-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenMW/openmw")
+ (commit (string-append "openmw-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0r0wgvv1faan8z8lbply8lks4hcnppifjrcz04l5zvq6yiqzjg5n"))))
+ "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
@@ -1743,20 +1738,25 @@ a 2D editor view.")
(define-public guile-chickadee
(package
(name "guile-chickadee")
- (version "0.4.0")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
- "1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
+ "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
(build-system gnu-build-system)
+ (arguments
+ '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
(propagated-inputs
`(("guile-opengl" ,guile-opengl)
("guile-sdl2" ,guile-sdl2)))
(inputs
- `(("guile" ,guile-2.2)))
+ `(("guile" ,guile-2.2)
+ ("libvorbis" ,libvorbis)
+ ("mpg123" ,mpg123)
+ ("openal" ,openal)))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
@@ -1779,20 +1779,23 @@ that parenthetically inclined game developers need to make 2D (and eventually
(package
(inherit guile-chickadee)
(name "guile3.0-chickadee")
- (version "0.4.0")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
- "1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
+ "0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
(build-system gnu-build-system)
(propagated-inputs
`(("guile-opengl" ,guile3.0-opengl)
("guile-sdl2" ,guile3.0-sdl2)))
(inputs
- `(("guile" ,guile-3.0)))
+ `(("guile" ,guile-3.0)
+ ("libvorbis" ,libvorbis)
+ ("mpg123" ,mpg123)
+ ("openal" ,openal)))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index ddfff4db8d..a4e1bba5dc 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -146,6 +146,7 @@
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
@@ -176,18 +177,88 @@
#:use-module (gnu packages messaging)
#:use-module (gnu packages networking)
#:use-module (guix build-system copy)
+ #: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 scons)
+ #:use-module (guix build-system perl)
#:use-module (guix build-system python)
- #:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
+ #:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
+(define-public abe
+ (package
+ (name "abe")
+ (version "1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/abe/abe/abe-" version
+ "/abe-" version ".tar.gz"))
+ (sha256
+ (base32 "1xvpnq1y6y48fn3pvn2lk0h1ilmalv7nb7awpid1g4jcq1sfmi6z"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--with-data-dir="
+ (assoc-ref %outputs "out")
+ "/share/abe"))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'bootstrap
+ (lambda _ (invoke "sh" "autogen.sh")))
+ (add-before 'build 'set-SDL
+ ;; Set correct environment for SDL.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "sdl") "/include/SDL:"
+ (or (getenv "CPATH") "")))
+ #t))
+ (add-after 'install 'finalize-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((share (string-append (assoc-ref outputs "out") "/share")))
+ ;; Installation script does not copy game data files.
+ (let ((data (string-append share "/abe")))
+ (for-each (lambda (dir)
+ (let ((target (string-append data "/" dir)))
+ (mkdir-p target)
+ (copy-recursively dir target)))
+ '("images" "maps" "sounds")))
+ ;; Create desktop file.
+ (let ((apps (string-append share "/applications")))
+ (mkdir-p apps)
+ (make-desktop-entry-file
+ (string-append apps "/abe.desktop")
+ #:name "Abe's Amazing Adventure"
+ #:exec ,name
+ #:categories '("AdventureGame" "Game")
+ #:keywords
+ '("side-scrolling" "adventure" "pyramid" "singleplayer")
+ #:comment
+ '(("de" "Ein sich seitwärts bewegendes Abenteuerspiel")
+ (#f "Side-scrolling game")))))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("libxt" ,libxt)
+ ("sdl" ,(sdl-union (list sdl sdl-mixer)))))
+ (home-page "http://abe.sourceforge.net")
+ (synopsis "Scrolling, platform-jumping, ancient pyramid exploring game")
+ (description
+ "Abe's Amazing Adventure is a scrolling,
+platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in
+the style of similar games for the Commodore+4.")
+ (license license:gpl2+)))
+
;; Data package for adanaxisgpl.
(define adanaxis-mush
(let ((version "1.1.0"))
@@ -515,7 +586,7 @@ want what you have.")
(define-public corsix-th
(package
(name "corsix-th")
- (version "0.63")
+ (version "0.64")
(source
(origin
(method git-fetch)
@@ -524,7 +595,7 @@ want what you have.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1rkyk8g55xny276s0hr5k8mq6f4nzz56d3k2mp09dzfymrqb8hgi"))))
+ (base32 "0chh9cv2kdc39sr0x8hclcyzd8dz2y6grgagqzkvr7j570wa5cqh"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -979,7 +1050,7 @@ automata. The following features are available:
(define-public julius
(package
(name "julius")
- (version "1.4.0")
+ (version "1.4.1")
(source
(origin
(method git-fetch)
@@ -988,7 +1059,7 @@ automata. The following features are available:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "01rygr592ar530qv1flmaiq8icl0qdxgc8lhkcdyn1g09941z47v"))
+ (base32 "12hhnhdwgz7hd3hlndbnk15pxggm1375qs0764ija4nl1gbpb110"))
;; Remove unused bundled libraries.
(modules '((guix build utils)))
(snippet
@@ -1011,6 +1082,45 @@ does not include game data.")
(license (list license:agpl3
license:zlib)))) ; ext/tinyfiledialogs
+(define-public augustus
+ (package
+ (inherit julius)
+ (name "augustus")
+ (version (package-version julius))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Keriew/augustus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ii0w0iwa9zv5bbqfcps5mxifd796m6fw4gvjf09pkm3yjgqc0ag"))
+ ;; Remove unused bundled libraries.
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (with-directory-excursion "ext"
+ (for-each delete-file-recursively '("dirent" "png" "SDL2" "zlib")))
+ #t))))
+ (arguments
+ ;; No tests. See https://github.com/Keriew/augustus/issues/82.
+ `(#:tests? #f))
+ (home-page "https://github.com/Keriew/augustus")
+ (synopsis "Re-implementation of Caesar III game engine with gameplay changes")
+ (description
+ "Fork of Julius, an engine for the a city-building real-time strategy
+game Caesar III. Gameplay enhancements include:
+
+@itemize
+@item roadblocks;
+@item market special orders;
+@item global labour pool;
+@item partial warehouse storage;
+@item increased game limits;
+@item zoom controls.
+@end itemize\n")))
+
(define-public meandmyshadow
(package
(name "meandmyshadow")
@@ -1158,15 +1268,15 @@ destroying an ancient book using a special wand.")
(define-public gnome-chess
(package
(name "gnome-chess")
- (version "3.36.0")
+ (version "3.36.1")
(source (origin
(method url-fetch)
- (uri (string-append "mirror://gnome/sources/" name "/"
+ (uri (string-append "mirror://gnome/sources/gnome-chess/"
(version-major+minor version) "/"
- name "-" version ".tar.xz"))
+ "gnome-chess-" version ".tar.xz"))
(sha256
(base32
- "1a9fgi749gy1f60vbcyrqqkab9vqs42hji70q73k1xx8rv0agmg0"))))
+ "165bk8s3nngyqbikggspj4rff5nxxfkfcmgzjb4grmsrgbqwk5di"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -1315,15 +1425,14 @@ Chess). It is similar to standard chess but this variant is far more complicate
(define-public ltris
(package
(name "ltris")
- (version "1.0.19")
+ (version "1.0.20")
(source
(origin
(method url-fetch)
(uri (string-append "http://prdownloads.sourceforge.net/lgames/"
"ltris-" version ".tar.gz"))
(sha256
- (base32
- "1895wv1fqklrj4apkz47rnkcfhfav7zjknskw6p0886j35vrwslg"))))
+ (base32 "16zbqsc4amx9g3yjv6054nh4ia09dgfp8k6q4qxpjicl3dw3z0in"))))
(build-system gnu-build-system)
(arguments
'(;; The code in LTris uses traditional GNU semantics for inline functions
@@ -1734,6 +1843,118 @@ can be explored and changed freely.")
license:gpl3+
license:silofl1.1))))
+(define-public seahorse-adventures
+ (package
+ (name "seahorse-adventures")
+ (version "1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dulsi/seahorse-adventures.git")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rnvk06npaqcpjz5z6xcmssz61i32s422lydp49vrnf3j2g4yimd"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)))
+ ;; Remove non-free (non-commercial) font.
+ (snippet
+ `(begin
+ (for-each delete-file (find-files "data/fonts" "."))
+ #t))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ;no test
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build) ;pure Python
+ (replace 'install ;no install script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share"))
+ (applications (string-append share "/applications"))
+ (data (string-append share "/seahorse-adventures")))
+ ;; Install data.
+ (for-each (lambda (f)
+ (chmod f #o555)
+ (install-file f data))
+ '("leveledit.py" "run_game.py" "tileedit.py"))
+ (for-each (lambda (dir)
+ (let ((target (string-append data "/" dir)))
+ (mkdir-p target)
+ (copy-recursively dir target)))
+ '("data" "lib"))
+ ;; Create executable.
+ (mkdir-p bin)
+ (let ((executable (string-append bin "/seahorse-adventures")))
+ (call-with-output-file executable
+ (lambda (p)
+ (format p
+ "#!~a~@
+ export PYTHONPATH=~a:~a~@
+ exec -a \"~a\" ~a \"$@\"~%"
+ (which "bash") data (getenv "PYTHONPATH")
+ (which "python3")
+ (string-append data "/run_game.py"))))
+ (chmod executable #o555))
+ ;; Add desktop file.
+ (mkdir-p applications)
+ (make-desktop-entry-file
+ (string-append applications "/seahorse-adventures.desktop")
+ #:name "Seahorse Adventures"
+ #:comment
+ '((#f "Help Barbie the seahorse float on bubbles to the moon"))
+ #:exec ,name
+ #:icon ,name
+ #:categories '("Game" "ActionGame")
+ #:keywords '("game" "retro" "platform"))
+ ;; Add icons.
+ (for-each
+ (lambda (size)
+ (let ((dir (string-append share "/icons/hicolor/"
+ size "x" size "/apps")))
+ (mkdir-p dir)
+ (copy-file
+ (string-append "icon" size ".png")
+ (string-append dir "/searhorse-adventures.png"))))
+ '("32" "64" "128")))
+ #t))
+ (add-after 'install 'unbundle-fonts
+ ;; Unbundle Bitstream Vera font and replace deleted one.
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (data (string-append out "/share/seahorse-adventures"))
+ (vera (string-append (assoc-ref inputs "font-bitstream-vera")
+ "/share/fonts/truetype/Vera.ttf")))
+ (let ((themes-dir (string-append data "/data/themes/")))
+ (for-each
+ (lambda (theme)
+ (let ((target (string-append themes-dir theme "/Vera.ttf")))
+ (delete-file target)
+ (symlink vera target)))
+ '("default" "gray")))
+ (symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
+ (substitute* (string-append data "/lib/main.py")
+ (("f_scale = 0.35") "f_scale = 0.47")))
+ #t)))))
+ (inputs
+ `(("font-bitstream-vera" ,font-bitstream-vera)
+ ("python-pygame" ,python-pygame)))
+ (home-page "http://www.imitationpickles.org/barbie/")
+ (synopsis "Help Barbie the seahorse float on bubbles to the moon")
+ (description
+ "Barbie Seahorse Adventures is a retro style platform arcade game.
+You are Barbie the seahorse who travels through the jungle, up to the
+volcano until you float on bubbles to the moon. On the way to your
+final destination you will encounter various enemies, servants of the
+evil overlord who has stolen the galaxy crystal. Avoid getting hit
+and defeat them with your bubbles!")
+ ;; GPL2+ is for code, CC0 is for art.
+ (license (list license:gpl2+ license:cc0))))
+
(define-public superstarfighter
(package
(name "superstarfighter")
@@ -1892,16 +2113,15 @@ that beneath its ruins lay buried an ancient evil.")
(define-public angband
(package
(name "angband")
- (version "4.2.0")
+ (version "4.2.1")
(source
(origin
(method url-fetch)
- (uri (string-append "http://rephial.org/downloads/"
+ (uri (string-append "https://rephial.org/downloads/"
(version-major+minor version)
"/angband-" version ".tar.gz"))
(sha256
- (base32
- "0vdm1ymm28wawp94nl1p5q3lhc0k7cnn2kkvvrkfx962gif4kqfk"))
+ (base32 "03qdavkj2ik02mqjxmlm5bn17ba3yxb1rirp8ghnxy3bsk4kbmxc"))
(modules '((guix build utils)))
(snippet
;; So, some of the sounds/graphics/tilesets are under different
@@ -1934,7 +2154,7 @@ that beneath its ruins lay buried an ancient evil.")
`(("autoconf" ,autoconf)
("automake" ,automake)))
(inputs `(("ncurses" ,ncurses)))
- (home-page "http://rephial.org/")
+ (home-page "https://rephial.org/")
(synopsis "Dungeon exploration roguelike")
(description "Angband is a Classic dungeon exploration roguelike. Explore
the depths below Angband, seeking riches, fighting monsters, and preparing to
@@ -2972,7 +3192,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
- (version "1.14.11")
+ (version "1.14.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@@ -2981,7 +3201,7 @@ falling, themeable graphics and sounds, and replays.")
"wesnoth-" version ".tar.bz2"))
(sha256
(base32
- "1i8mz6gw3qar09bscczhki0g4scj8pl58v85rp0g55r4bcq41l5v"))))
+ "1pmqj4rah0256qi9w394ksb9apid723i5f5agkg6x1lahb1ac91q"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no check target
@@ -3982,7 +4202,7 @@ tactics.")
(define-public starfighter
(package
(name "starfighter")
- (version "2.0.0.3")
+ (version "2.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3991,7 +4211,7 @@ tactics.")
(version-major+minor version) "-src.tar.gz"))
(sha256
(base32
- "13vi5kh9ahws4f52421cbyw0jn7pmbnld358lqfmr6flql7ilj3b"))))
+ "1ldd9cbvl694ps4sapr8213m3zjrci7gii5x3kjjfalkikmndpd2"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -5227,7 +5447,7 @@ fish. The whole game is accompanied by quiet, comforting music.")
(define-public crawl
(package
(name "crawl")
- (version "0.24.0")
+ (version "0.25.0")
(source
(origin
(method url-fetch)
@@ -5240,8 +5460,18 @@ fish. The whole game is accompanied by quiet, comforting music.")
(string-append "http://crawl.develz.org/release/stone_soup-"
version "-nodeps.tar.xz")))
(sha256
- (base32 "0kdq6s12myxfdg75ma9x3ys2nd0xwb3xm2ynlmhg4628va0pnixr"))
- (patches (search-patches "crawl-upgrade-saves.patch"))))
+ (base32 "0rn1wjxdqw33caiwisfypm1j8cid3c9pz01ahicl17144zs29z3d"))
+ (patches (search-patches "crawl-upgrade-saves.patch"))
+ ;; The 0.25.0 -nodeps.tar.xz was built from an OSX machine; normally
+ ;; apparently it's built from a Debian machine before the Debian
+ ;; packages are made. These ._* files are binary and have the string
+ ;; "Mac OS X" in them... removing these seems to result in compilation
+ ;; again.
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each delete-file (find-files "." "^\\._"))
+ #t))))
(build-system gnu-build-system)
(inputs
`(("lua51" ,lua-5.1)
@@ -6844,6 +7074,104 @@ when packaged in Blorb container files or optionally from individual files.")
(home-page "http://frotz.sourceforge.net")
(license license:gpl2+))))
+(define-public frozen-bubble
+ ;; Last official release is very outdated (2010). Use latest commit (2017).
+ (let ((commit "d6a029110ad6ab9e4960052e175addc98807fb7e")
+ (revision "1"))
+ (package
+ (name "frozen-bubble")
+ (version (git-version "2.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kthakore/frozen-bubble.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rfrcym5lf4qac2qdklikb1ywijyxypq298azzxahy461dadl6cx"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Build process needs to create files in the "server"
+ ;; directory.
+ (add-after 'unpack 'fix-permissions
+ (lambda _
+ (for-each make-file-writable
+ (find-files "server" "." #:directories? #t))))
+ ;; By default, build stops at warnings.
+ (add-after 'unpack 'prevent-build-error
+ (lambda _
+ (substitute* "inc/My/Builder.pm"
+ (("-Werror") ""))
+ #t))
+ (add-after 'install 'install-desktop-file-and-icons
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((share (string-append (assoc-ref outputs "out") "/share"))
+ (hicolor (string-append share "/icons/hicolor")))
+ ;; Create desktop entry.
+ (make-desktop-entry-file
+ (string-append share "/applications/" ,name ".desktop")
+ #:name "Frozen Bubble"
+ #:comment "Frozen Bubble arcade game"
+ #:exec ,name
+ #:icon ,name
+ #:categories '("Game" "ArcadeGame"))
+ ;; Add icons.
+ (with-directory-excursion "share/icons"
+ (for-each
+ (lambda (size)
+ (let* ((dim (string-append size "x" size))
+ (dir (string-append hicolor "/" dim "/apps")))
+ (mkdir-p dir)
+ (copy-file
+ (string-append "frozen-bubble-icon-" dim ".png")
+ (string-append dir "/frozen-bubble.png"))))
+ '("16" "32" "48" "64"))))
+ #t))
+ (add-after 'install 'wrap-perl-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (perl5lib (getenv "PERL5LIB")))
+ (for-each (lambda (prog)
+ (wrap-program (string-append out "/" prog)
+ `("PERL5LIB" ":" prefix
+ (,(string-append perl5lib ":" out
+ "/lib/perl5/site_perl")))))
+ (find-files "bin" ".")))
+ #t)))))
+ (native-inputs
+ `(("perl-alien-sdl" ,perl-alien-sdl)
+ ("perl-capture-tiny" ,perl-capture-tiny)
+ ("perl-locale-maketext-lexicon" ,perl-locale-maketext-lexicon)
+ ("perl-module-build" ,perl-module-build)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("glib" ,glib)
+ ("perl-compress-bzip2" ,perl-compress-bzip2)
+ ("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-file-slurp" ,perl-file-slurp)
+ ("perl-file-which" ,perl-file-which)
+ ("perl-ipc-system-simple" ,perl-ipc-system-simple)
+ ("perl-sdl" ,perl-sdl)
+ ("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-pango sdl-ttf)))))
+ (home-page "http://frozen-bubble.org/")
+ (synopsis "Puzzle with bubbles")
+ (description
+ "Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which
+you attempt to shoot bubbles into groups of the same color to cause them to
+pop.
+
+Players compete as penguins and must use the arrow keys to aim a colored
+bubble at groups of bubbles. The objective is to clear all the bubbles off
+the screen before a bubble passes below a line at the bottom.
+
+It features 100 single-player levels, a two-player mode, music and striking
+graphics. A level editor is also included to allow players to create and play
+their own levels.")
+ (license license:gpl2))))
+
(define-public libmanette
(package
(name "libmanette")
@@ -10275,43 +10603,54 @@ This package is part of the KDE games module.")
(define-public xmoto
(package
(name "xmoto")
- (version "0.5.11")
+ (version "0.6.1")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "http://download.tuxfamily.org/xmoto/xmoto/" version "/"
- "xmoto-" version "-src.tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xmoto/xmoto.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1ci6r8zd0l7z28cy92ddf9dmqbdqwinz2y1cny34c61b57wsd155"))
- (patches
- (search-patches
- "xmoto-remove-glext.patch" ;fixes licensing issue
- "xmoto-reproducible.patch"
- "xmoto-utf8.patch"))
- ;; Unbundle ODE.
- (modules '((guix build utils)))
+ (base32 "00f5ha79lfa2iiaz66wl0hl5dapa1l15qdr7m7knzi0ll7j6z66n"))
+ (modules '((guix build utils)
+ (ice-9 ftw)
+ (srfi srfi-1)))
+ ;; XXX: Remove some bundled libraries. Guix provides Chipmunk, but
+ ;; it appears to be incompatible with the (older) one bundled.
(snippet
`(begin
- (delete-file-recursively "src/ode")
+ (let ((keep '("chipmunk" "glad" "md5sum")))
+ (with-directory-excursion "vendor"
+ (for-each delete-file-recursively
+ (lset-difference string=?
+ (scandir ".")
+ (cons* "." ".." keep))))
+ (substitute* "src/CMakeLists.txt"
+ (("add_subdirectory\\(.*?/vendor/(.+?)\".*" line library)
+ (if (member library keep) line ""))))
#t))))
- (build-system gnu-build-system)
+ (build-system cmake-build-system)
(arguments
- ;; XXX: First flag prevents a build error with GCC7+. The second
- ;; flag works around missing text in game. Both are fixed
- ;; upstream. Remove once xmoto 0.5.12+ is released.
- `(#:make-flags '("CXXFLAGS=-fpermissive -D_GLIBCXX_USE_CXX11_ABI=0")
+ `(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
- (add-after 'install 'install-desktop-file
+ (add-after 'unpack 'fix-hard-coded-directory
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (apps (string-append out "/share/applications"))
- (pixmaps (string-append out "/share/pixmaps")))
- (install-file "extra/xmoto.desktop" apps)
- (install-file "extra/xmoto.xpm" pixmaps)
- #t)))
- (add-after 'install-desktop-file 'install-fonts
+ (substitute* "src/common/VFileIO.cpp"
+ (("/usr/share")
+ (string-append (assoc-ref outputs "out") "/share")))
+ #t))
+ (add-before 'build 'set-SDL
+ ;; Set correct environment for SDL.
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append
+ (assoc-ref inputs "sdl") "/include/SDL:"
+ (or (getenv "CPATH") "")))
+ #t))
+ (add-after 'install 'unbundle-fonts
+ ;; Unbundle DejaVuSans TTF files.
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((font-dir (string-append (assoc-ref inputs "font-dejavu")
"/share/fonts/truetype/"))
@@ -10323,38 +10662,34 @@ This package is part of the KDE games module.")
(delete-file target)
(symlink font target)))
'("DejaVuSans.ttf" "DejaVuSansMono.ttf"))
- #t)))
- (add-after 'install-fonts 'install-man-page
- (lambda* (#:key outputs #:allow-other-keys)
- (install-file "xmoto.6"
- (string-append (assoc-ref outputs "out")
- "/share/man/man6"))
- #t)))))
+ #t))))))
(native-inputs
- `(("gettext" ,gettext-minimal)))
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)))
(inputs
- `(("curl" ,curl)
+ `(("bzip2" ,bzip2)
+ ("curl" ,curl)
("font-dejavu" ,font-dejavu)
("glu" ,glu)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libxdg-basedir" ,libxdg-basedir)
("libxml2" ,libxml2)
- ("lua" ,lua-5.2)
+ ("lua" ,lua-5.1)
("ode" ,ode)
("sdl" ,(sdl-union (list sdl sdl-mixer sdl-net sdl-ttf)))
("sqlite" ,sqlite)
("zlib" ,zlib)))
(home-page "https://xmoto.tuxfamily.org/")
(synopsis "2D motocross platform game")
- (description "X-Moto is a challenging 2D motocross platform game, where
-physics play an all important role in the gameplay. You need to control your
-bike to its limit, if you want to have a chance finishing the more difficult
-challenges.")
+ (description
+ "X-Moto is a challenging 2D motocross platform game, where
+physics play an all important role in the gameplay. You need to
+control your bike to its limit, if you want to have a chance finishing
+the more difficult challenges.")
(license (list license:gpl2+ ;whole project
- license:bsd-4 ;src/bzip
- license:bsd-3 ;src/md5sum
- license:lgpl2.1+ ;src/iqsort.h
+ license:bsd-3 ;vendor/md5sum
+ license:lgpl2.1+
license:expat))))
(define-public eboard
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index b27426c84f..38e45b14e5 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
(define-module (gnu packages gdb)
#:use-module (gnu packages)
+ #:use-module (gnu packages hurd)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages dejagnu)
@@ -68,12 +70,20 @@
#t))
(add-after
'install 'remove-libs-already-in-binutils
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key inputs outputs
+ ;; TODO: Inline the native-inputs addition and
+ ;; below usage in the next rebuild cycle.
+ ,@(if (%current-target-system)
+ '(native-inputs)
+ '())
+ #:allow-other-keys)
;; Like Binutils, GDB installs libbfd, libopcodes, etc.
;; However, this leads to collisions when both are
;; installed, and really is none of its business,
;; conceptually. So remove them.
- (let* ((binutils (assoc-ref inputs "binutils"))
+ (let* ((binutils ,@(if (%current-target-system)
+ '((assoc-ref native-inputs "binutils"))
+ '((assoc-ref inputs "binutils"))))
(out (assoc-ref outputs "out"))
(files1 (with-directory-excursion binutils
(append (find-files "lib")
@@ -98,11 +108,15 @@
;; Allow use of XML-formatted syscall information. This enables 'catch
;; syscall' and similar commands.
- ("libxml2" ,libxml2)))
+ ("libxml2" ,libxml2)
+
+ ;; The Hurd needs -lshouldbeinlibc.
+ ,@(if (hurd-target?) `(("hurd" ,hurd)) '())))
(native-inputs
`(("texinfo" ,texinfo)
("dejagnu" ,dejagnu)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ,@(if (hurd-target?) `(("mig" ,mig)) '())))
(home-page "https://www.gnu.org/software/gdb/")
(synopsis "The GNU debugger")
(description
@@ -116,16 +130,16 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
;; This version of GDB is required by some of the Rust compilers, see
;; <https://bugs.gnu.org/37810>.
(define-public gdb-8.2
- (package/inherit
- gdb-9.1
- (version "8.2.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/gdb/gdb-"
- version ".tar.xz"))
- (sha256
- (base32
- "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha"))))))
+ (package
+ (inherit gdb-9.1)
+ (version "8.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gdb/gdb-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "00i27xqawjv282a07i73lp1l02n0a3ywzhykma75qg500wll6sha"))))))
(define-public gdb
;; This is the fixed version that packages depend on. Update it rarely
@@ -140,6 +154,15 @@ written in C, C++, Ada, Objective-C, Pascal and more.")
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
+ (patches (search-patches "gdb-hurd.patch"))
(sha256
(base32
"0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"))))))
+
+(define-public gdb-minimal
+ (package/inherit
+ gdb-9.2
+ (name "gdb-minimal")
+ (inputs (fold alist-delete (package-inputs gdb)
+ '("guile" "libxml2" "ncurses" "python-wrapper"
+ "source-highlight")))))
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index dc40974381..1ad6f697a4 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -1858,6 +1858,7 @@ growing set of geoscientific methods.")
"qgis_filedownloader"
;; TODO: Find why the following tests fail
"ProcessingQgisAlgorithmsTestPt1"
+ "ProcessingQgisAlgorithmsTestPt2"
"ProcessingQgisAlgorithmsTestPt3"
"ProcessingQgisAlgorithmsTestPt4"
"ProcessingGdalAlgorithmsRasterTest"
@@ -1872,6 +1873,7 @@ growing set of geoscientific methods.")
"qgis_geometrytest"
"qgis_layouthtmltest"
"qgis_layoutmaptest"
+ "qgis_layoutmapgridtest"
"qgis_painteffecttest"
"qgis_pallabelingtest"
"qgis_svgmarkertest"
@@ -1890,6 +1892,11 @@ growing set of geoscientific methods.")
"PyQgsFileUtils"
"PyQgsGeometryTest"
"PyQgsImageCache"
+ "PyQgsLayerMetadata"
+ "PyQgsLayout"
+ "PyQgsLayoutHtml"
+ "PyQgsLayoutMapGrid"
+ "PyQgsMetadataBase"
"PyQgsLayoutExporter"
"PyQgsLayoutLegend"
"PyQgsMapLayer"
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm
index 202acf25d4..6bee92cac9 100644
--- a/gnu/packages/gettext.scm
+++ b/gnu/packages/gettext.scm
@@ -7,7 +7,7 @@
;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Miguel <rosen644835@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -148,14 +148,14 @@ translated messages from the catalogs. Nearly all GNU packages use Gettext.")
(define-public libtextstyle
(package
(name "libtextstyle")
- (version "0.20.1")
+ (version "0.20.2")
(source (origin
(inherit (package-source gnu-gettext))
(uri (string-append "mirror://gnu/gettext/gettext-"
version ".tar.gz"))
(sha256
(base32
- "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6"))))
+ "1wc9q3y8rsbd757v985vxqcyqsxs7cxk4x7rzsjmq7d4ij8d1fgc"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")
diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm
index b5bb29e010..c52dc7a4d1 100644
--- a/gnu/packages/gimp.scm
+++ b/gnu/packages/gimp.scm
@@ -51,7 +51,7 @@
(define-public babl
(package
(name "babl")
- (version "0.1.76")
+ (version "0.1.78")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/"
@@ -65,7 +65,7 @@
"/babl-" version ".tar.xz")))
(sha256
(base32
- "183kj2yq08vvldp8307vq61y2ravcqkyarrhak9w2l30gygp9100"))))
+ "0fjjfb0pbgimlqi7rk8cqz8pq595b7gw8nrpkxfmixdz6cv4km8p"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -90,7 +90,7 @@ provided, as well as a framework to add new color models and data types.")
(define-public gegl
(package
(name "gegl")
- (version "0.4.22")
+ (version "0.4.24")
(source (origin
(method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/gegl/"
@@ -104,7 +104,7 @@ provided, as well as a framework to add new color models and data types.")
"/gegl-" version ".tar.xz")))
(sha256
(base32
- "0q9cckf90fb82qc5d496fjz459f1xw4j4p3rff1f57yivx0yr20q"))))
+ "0ji57s7cba94vzy49agn7x47ca61rccm6rif0cb0s6rl4ygljrbp"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
@@ -135,7 +135,7 @@ buffers.")
(define-public gimp
(package
(name "gimp")
- (version "2.10.18")
+ (version "2.10.20")
(source (origin
(method url-fetch)
(uri (string-append "https://download.gimp.org/pub/gimp/v"
@@ -143,7 +143,7 @@ buffers.")
"/gimp-" version ".tar.bz2"))
(sha256
(base32
- "05np26g61fyr72s7qjfrcck8v57r0yswq5ihvqyzvgzfx08y3gv5"))))
+ "0g3vzh1bjffqx94mfghmwvkhncv71cgah2mnfx17q00s9f3rybz1"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 9 MiB of gtk-doc HTML
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 94dc6adf6f..9f0721b8c2 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -68,7 +68,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
- #:use-module (srfi srfi-1)
+ #:use-module ((srfi srfi-1) #:hide (zip))
;; Export variables up-front to allow circular dependency with the 'xorg'
;; module.
@@ -1019,7 +1019,7 @@ other API remains the same.")
(define-public template-glib
(package
(name "template-glib")
- (version "3.32.0")
+ (version "3.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -1027,7 +1027,7 @@ other API remains the same.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr"))))
+ "1z9xkin5fyfh071ma9y045jcw83hgx33dfbjraw6cxk0qdmfysr1"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-D" "enable_gtk_doc=true")))
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 21838ff0cd..53be103495 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -419,7 +419,7 @@ currently focused application in the top panel of the GNOME shell.")
(define-public gnome-shell-extension-dash-to-panel
(package
(name "gnome-shell-extension-dash-to-panel")
- (version "26")
+ (version "37")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -427,7 +427,7 @@ currently focused application in the top panel of the GNOME shell.")
(commit (string-append "v" version))))
(sha256
(base32
- "1phfx2pblygpcvsppsqqqflm7qnz46mqkw29hj0nv2dn69hf4xbc"))
+ "0c8p8cmwjh6rpj7jwj1lccpdv5l0bazwywg8hpwgnqy9f4rxmrz3"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@@ -555,8 +555,8 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
(define-public papirus-icon-theme
(let ((version "0.0.0") ;; The package does not use semver
- (revision "1")
- (tag "20200430"))
+ (revision "2")
+ (tag "20200602"))
(package
(name "papirus-icon-theme")
(version (git-version version revision tag))
@@ -568,7 +568,7 @@ dark elements. It supports GNOME, Unity, Xfce, and Openbox.")
(commit tag)))
(sha256
(base32
- "19dfiifc7cjwy0nb1hgzryzaijszsyix303xsgk5xbmhpwrv92hq"))
+ "0yv19kl8jr2jmh9018b1qmnq68alw84vrmb35jm462qd3qzzdgah"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d7ec21a8ae..dd6906daaa 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -43,7 +43,7 @@
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
-;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -1682,7 +1682,7 @@ forgotten when the session ends.")
(define-public evince
(package
(name "evince")
- (version "3.36.1")
+ (version "3.36.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/evince/"
@@ -1690,7 +1690,7 @@ forgotten when the session ends.")
"evince-" version ".tar.xz"))
(sha256
(base32
- "1msbb66lasikpfjpkwsvi7h22hqmk275850ilpdqwbd0b39vzf4c"))))
+ "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--disable-nautilus" "--enable-introspection")
@@ -2174,8 +2174,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
"023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
(build-system glib-or-gtk-build-system)
(arguments
- `(#:tests? #f ; needs X, GL, and software rendering
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-docbook
(lambda* (#:key inputs #:allow-other-keys)
@@ -2185,18 +2184,27 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
+ #t))
+ (add-before 'check 'pre-check
+ (lambda _
+ (setenv "HOME" "/tmp")
+ ;; Tests require a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
#t)))))
(inputs
`(("gtk+" ,gtk+)
("libxml2" ,libxml2)))
(native-inputs
- `(("intltool" ,intltool)
+ `(("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("intltool" ,intltool)
("itstool" ,itstool)
("libxslt" ,libxslt) ;for xsltproc
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)
("python" ,python-2)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server-for-tests)))
(home-page "https://glade.gnome.org")
(synopsis "GTK+ rapid application development tool")
(description "Glade is a rapid application development (RAD) tool to
@@ -2395,10 +2403,10 @@ library.")
("rust-pango-sys" ,rust-pango-sys-0.9)
("rust-pangocairo" ,rust-pangocairo-0.8)
("rust-phf" ,rust-phf-0.7)
- ("rust-rayon" ,rust-rayon-1.3)
+ ("rust-rayon" ,rust-rayon-1)
("rust-rctree" ,rust-rctree-0.3)
("rust-string-cache" ,rust-string-cache-0.7)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-url" ,rust-url-2.1)
("rust-xml-rs" ,rust-xml-rs-0.8))
#:cargo-development-inputs
@@ -4558,7 +4566,7 @@ throughout GNOME for API documentation).")
(define-public cogl
(package
(name "cogl")
- (version "1.22.6")
+ (version "1.22.8")
(source
(origin
(method url-fetch)
@@ -4566,7 +4574,7 @@ throughout GNOME for API documentation).")
(version-major+minor version) "/"
"cogl-" version ".tar.xz"))
(sha256
- (base32 "0x8v4n61q89qy27v824bqswpz6bmn801403w2q3pa1lcwk9ln4vd"))))
+ (base32 "0nfph4ai60ncdx7hy6hl1i1cmp761jgnyjfhagzi0iqq36qb41d8"))))
;; NOTE: mutter exports a bundled fork of cogl, so when making changes to
;; cogl, corresponding changes may be appropriate in mutter as well.
(build-system gnu-build-system)
@@ -10034,7 +10042,7 @@ integrate seamlessly with the GNOME desktop.")
(define-public gnome-boxes
(package
(name "gnome-boxes")
- (version "3.36.4")
+ (version "3.36.5")
(source
(origin
(method url-fetch)
@@ -10042,7 +10050,7 @@ integrate seamlessly with the GNOME desktop.")
(version-major+minor version) "/"
"gnome-boxes-" version ".tar.xz"))
(sha256
- (base32 "16l0mq2ydmywcdya1795mcy8syg4zkmz9ws3pzjcqv5y4m7cjj03"))))
+ (base32 "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t
@@ -10422,3 +10430,37 @@ communicating using the GVariant serialization format instead of JSON when
both peers support it. You might want that when communicating on a single
host to avoid parser overhead and memory-allocator fragmentation.")
(license license:lgpl2.1+)))
+
+(define-public feedbackd
+ (package
+ (name "feedbackd")
+ (version "0.0.0+git20200527")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/feedbackd.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (inputs
+ `(("dbus" ,dbus)
+ ("gsound" ,gsound)
+ ("json-glib" ,json-glib)
+ ("libgudev" ,libgudev)))
+ (propagated-inputs
+ `(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
+ (synopsis "Haptic/visual/audio feedback via DBus")
+ (description "Feedbackd provides a DBus daemon to act on events to provide
+haptic, visual and audio feedback. It offers the libfeedbackd library and
+GObject introspection bindings.")
+ (home-page "https://source.puri.sm/Librem5/feedbackd")
+ (license (list license:lgpl2.1+ ; libfeedbackd
+ license:lgpl3+)))) ; the rest
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index 1b7ea9246c..f2ab3a1c27 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
-;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Nikita <nikita@n0.is>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
@@ -180,13 +180,13 @@ authentication and support for SSL3 and TLS.")
(define-public gnurl
(package
(name "gnurl")
- (version "7.69.1")
+ (version "7.70.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnunet/gnurl-" version ".tar.gz"))
(sha256
(base32
- "0x8m26y3klndis6a28j8i0b7ab04d38q3rmlvgaqa65bjhlfdrp0"))))
+ "0px9la8v4bj1dzxb95fx3yxk0rcjqjrxpj733ga27cza45wwzkqa"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.8 MiB of man3 pages
@@ -245,7 +245,7 @@ supports HTTP, HTTPS and GnuTLS.")
"See COPYING in the distribution."))
(properties '((ftp-server . "ftp.gnu.org")
(ftp-directory . "/gnunet")))
- (home-page "https://gnunet.org/gnurl")))
+ (home-page "https://gnunet.org/en/gnurl.html")))
(define-public gnunet
(package
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 0a8edcb1e4..3bffe12577 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -648,6 +648,12 @@ from forcing GEXP-PROMISE."
"-p1" "--input" #+makeicecat-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
+
+ ;; Remove the bundled tortm-browser-button extension,
+ ;; which doesn't seem to be working properly.
+ (delete-file-recursively
+ "data/extensions/tortm-browser-button@jeremybenthum")
+
(patch-shebang "makeicecat")
(substitute* "makeicecat"
(("^FFMAJOR=(.*)" all ffmajor)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index a631ad4285..8163950a26 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright @ 2018, 2019 Katherine Cox-Buday <cox.katherine.e@gmail.com>
+;;; Copyright @ 2018, 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright @ 2019 Giovanni Biscuolo <g@xelera.eu>
;;; Copyright @ 2019, 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
@@ -218,21 +218,28 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))
(license license:bsd-3)))
-(define-public go-1.13
+(define-public go-1.14
(package
(inherit go-1.4)
(name "go")
- (version "1.13.9")
+ (version "1.14.4")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://storage.googleapis.com/golang/"
- name version ".src.tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/golang/go.git")
+ (commit (string-append "go" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "07gksk9194wa90xyd6yhagxfv7syvsx29bh8ypc4mg700vc1kfrl"))))
+ "08bazglmqp123c9dgrxflvxd011xsqfxsgah2kzbvca0mhm6qcm3"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
+ ((#:system system)
+ (if (string-prefix? "aarch64-linux" (or (%current-system)
+ (%current-target-system)))
+ "aarch64-linux"
+ system))
((#:phases phases)
`(modify-phases ,phases
(replace 'prebuild
@@ -261,7 +268,13 @@ in the style of communicating sequential processes (@dfn{CSP}).")
'("cmd/go/testdata/script/mod_case_cgo.txt"
"cmd/go/testdata/script/list_find.txt"
"cmd/go/testdata/script/list_compiled_imports.txt"
- "cmd/go/testdata/script/cgo_syso_issue29253.txt"))
+ "cmd/go/testdata/script/cgo_syso_issue29253.txt"
+ "cmd/go/testdata/script/cover_cgo.txt"
+ "cmd/go/testdata/script/cover_cgo_xtest.txt"
+ "cmd/go/testdata/script/cover_cgo_extra_test.txt"
+ "cmd/go/testdata/script/cover_cgo_extra_file.txt"))
+
+ (for-each make-file-writable (find-files "."))
(substitute* "os/os_test.go"
(("/usr/bin") (getcwd))
@@ -329,6 +342,10 @@ in the style of communicating sequential processes (@dfn{CSP}).")
("syscall/exec_linux_test.go"
"(.+)(TestCloneNEWUSERAndRemapNoRootDisableSetgroups.+)")))
+ ;; These tests fail on aarch64-linux
+ (substitute* "cmd/dist/test.go"
+ (("t.registerHostTest\\(\"testsanitizers/msan.*") ""))
+
;; fix shebang for testar script
;; note the target script is generated at build time.
(substitute* "../misc/cgo/testcarchive/carchive_test.go"
@@ -360,7 +377,6 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(setenv "GOROOT_FINAL" output)
(setenv "CGO_ENABLED" "1")
(invoke "sh" "all.bash"))))
-
(replace 'install
;; TODO: Most of this could be factorized with Go 1.4.
(lambda* (#:key outputs #:allow-other-keys)
@@ -406,7 +422,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
,@(package-native-inputs go-1.4)))
(supported-systems %supported-systems)))
-(define-public go go-1.13)
+(define-public go go-1.14)
(define-public go-github-com-alsm-ioprogress
(let ((commit "063c3725f436e7fba0c8f588547bee21ffec7ac5")
@@ -811,6 +827,33 @@ time.")
(home-page "https://godoc.org/golang.org/x/time/rate")
(license license:bsd-3))))
+(define-public go-golang-org-x-oauth2
+ (let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
+ (revision "1"))
+ (package
+ (name "go-golang-org-x-oauth2")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/oauth2")
+ (commit commit)))
+ (file-name (string-append "go.googlesource.com-oauth2-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/oauth2"))
+ (propagated-inputs
+ `(("go-golang-org-x-net" ,go-golang-org-x-net)))
+ (home-page "https://go.googlesource.com/oauth2")
+ (synopsis "Client implementation of the OAuth 2.0 spec")
+ (description "This package contains a client implementation for OAuth 2.0
+ spec in Go.")
+ (license license:bsd-3))))
+
(define-public go-github-com-burntsushi-toml
(package
(name "go-github-com-burntsushi-toml")
@@ -1813,6 +1856,31 @@ terminal.")
makes it possible to handle ANSI color escapes on Windows.")
(license license:expat))))
+(define-public go-github-com-mattn-go-pointer
+ (let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
+ (revision "1"))
+ (package
+ (name "go-github-com-mattn-go-pointer")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mattn/go-pointer")
+ (commit commit)))
+ (sha256
+ (base32
+ "09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/mattn/go-pointer"))
+ (home-page "https://github.com/mattn/go-pointer")
+ (synopsis "Utility for cgo")
+ (description
+ "This package allows for a cgo argument to be passed a Go pointer.")
+ (license license:expat))))
+
(define-public go-github-com-mgutz-ansi
(let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
(revision "0"))
@@ -3563,6 +3631,135 @@ sensors).")
(home-page "https://github.com/shirou/gopsutil")
(license license:bsd-3))))
+(define-public go-github-com-danwakefield-fnmatch
+ (let ((commit "cbb64ac3d964b81592e64f957ad53df015803288")
+ (revision "0"))
+ (package
+ (name "go-github-com-danwakefield-fnmatch")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danwakefield/fnmatch")
+ (commit commit)))
+ (sha256
+ (base32
+ "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/danwakefield/fnmatch"))
+ (home-page "https://github.com/danwakefield/fnmatch")
+ (synopsis "Updated clone of kballards golang fnmatch gist")
+ (description "This package provides an updated clone of kballards golang
+fnmatch gist (https://gist.github.com/kballard/272720).")
+ (license license:bsd-2))))
+
+(define-public go-github-com-ddevault-go-libvterm
+ (let ((commit "b7d861da381071e5d3701e428528d1bfe276e78f")
+ (revision "0"))
+ (package
+ (name "go-github-com-ddevault-go-libvterm")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ddevault/go-libvterm")
+ (commit commit)))
+ (sha256
+ (base32
+ "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/ddevault/go-libvterm"))
+ (propagated-inputs
+ `(("go-github-com-mattn-go-pointer" ,go-github-com-mattn-go-pointer)))
+ (home-page "https://github.com/ddevault/go-libvterm")
+ (synopsis "Go binding to libvterm")
+ (description
+ "This is a fork of another go-libvterm library for use with aerc.")
+ (license license:expat))))
+
+(define-public go-github-com-emersion-go-imap
+ (package
+ (name "go-github-com-emersion-go-imap")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emersion/go-imap")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "1id8j2d0rn9sj8y62xhyygqpk5ygrcl9jlfx92sm1jsvxsm3kywq"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/emersion/go-imap"))
+ (native-inputs
+ `(("go-golang-org-x-text" ,go-golang-org-x-text)))
+ (home-page "https://github.com/emersion/go-imap")
+ (synopsis "IMAP4rev1 library written in Go")
+ (description "This package provides an IMAP4rev1 library written in Go. It
+can be used to build a client and/or a server.")
+ (license license:expat)))
+
+(define-public go-github-com-emersion-go-sasl
+ (let ((commit "240c8404624e076f633766c16adbe96c7ac516b7")
+ (revision "0"))
+ (package
+ (name "go-github-com-emersion-go-sasl")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emersion/go-sasl")
+ (commit commit)))
+ (sha256
+ (base32
+ "1py18p3clp474xhx6ypyp0bgv6n1dfm24m95cyyqb0k3vibar6ih"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/emersion/go-sasl"))
+ (home-page "https://github.com/emersion/go-sasl")
+ (synopsis "SASL library written in Go")
+ (description "This package provides a SASL library written in Go.")
+ (license license:expat))))
+
+(define-public go-github-com-emersion-go-imap-idle
+ (let ((commit "2704abd7050ed7f2143753554ee23affdf847bd9")
+ (revision "0"))
+ (package
+ (name "go-github-com-emersion-go-imap-idle")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/emersion/go-imap-idle")
+ (commit commit)))
+ (sha256
+ (base32
+ "0blwcadmxgqsdwgr9m4jqfbpfa2viw5ah19xbybpa1z1z4aj5cbc"))
+ (file-name (git-file-name name version))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/emersion/go-imap-idle"))
+ (native-inputs
+ `(("go-github-com-emersion-go-imap" ,go-github-com-emersion-go-imap)
+ ("go-github-com-emersion-go-sasl" ,go-github-com-emersion-go-sasl)
+ ("go-golang-org-x-text" ,go-golang-org-x-text)))
+ (home-page "https://github.com/emersion/go-imap-idle")
+ (synopsis "IDLE extension for go-imap")
+ (description "This package provides an IDLE extension for go-imap.")
+ (license license:expat))))
+
(define-public go-github-com-fatih-color
(package
(name "go-github-com-fatih-color")
diff --git a/gnu/packages/graph.scm b/gnu/packages/graph.scm
index dc8f2c64a2..762ee30632 100644
--- a/gnu/packages/graph.scm
+++ b/gnu/packages/graph.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2020 Alexander Krotov <krotov@iitp.ru>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlos@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -235,25 +236,49 @@ lines.")
(define-public python-plotly
(package
(name "python-plotly")
- (version "2.4.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "plotly" version))
- (sha256
- (base32
- "0s9gk2fl53x8wwncs3fwii1vzfngr0sskv15v3mpshqmrqfrk27m"))))
+ (version "4.8.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/plotly/plotly.py.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08ab677gr85m10zhixr6dnmlfws8q6sra7nhyb8nf3r8dx1ffqhz"))))
(build-system python-build-system)
(arguments
- '(#:tests? #f)) ; The tests are not distributed in the release
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "packages/python/plotly")
+ #t))
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-x" "plotly/tests/test_core")
+ (invoke "pytest" "-x" "plotly/tests/test_io")
+ ;; FIXME: Add optional dependencies and enable their tests.
+ ;; (invoke "pytest" "-x" "plotly/tests/test_optional")
+ (invoke "pytest" "_plotly_utils/tests")))
+ (add-before 'reset-gzip-timestamps 'make-files-writable
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (file) (chmod file #o644))
+ (find-files out "\\.gz"))
+ #t))))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-decorator" ,python-decorator)
- ("python-nbformat" ,python-nbformat)
+ ("python-ipywidgets" ,python-ipywidgets)
("python-pandas" ,python-pandas)
- ("python-pytz" ,python-pytz)
("python-requests" ,python-requests)
- ("python-six" ,python-six)))
- (home-page "https://plot.ly/python/")
+ ("python-retrying" ,python-retrying)
+ ("python-six" ,python-six)
+ ("python-statsmodels" ,python-statsmodels)
+ ("python-xarray" ,python-xarray)))
+ (home-page "https://plotly.com/python/")
(synopsis "Interactive plotting library for Python")
(description "Plotly's Python graphing library makes interactive,
publication-quality graphs online. Examples of how to make line plots, scatter
@@ -261,8 +286,29 @@ plots, area charts, bar charts, error bars, box plots, histograms, heatmaps,
subplots, multiple-axes, polar charts, and bubble charts. ")
(license license:expat)))
+(define-public python-plotly-2.4.1
+ (package (inherit python-plotly)
+ (version "2.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "plotly" version))
+ (sha256
+ (base32
+ "0s9gk2fl53x8wwncs3fwii1vzfngr0sskv15v3mpshqmrqfrk27m"))))
+ (native-inputs '())
+ (propagated-inputs
+ `(("python-decorator" ,python-decorator)
+ ("python-nbformat" ,python-nbformat)
+ ("python-pandas" ,python-pandas)
+ ("python-pytz" ,python-pytz)
+ ("python-requests" ,python-requests)
+ ("python-six" ,python-six)))
+ (arguments
+ '(#:tests? #f)))) ; The tests are not distributed in the release
+
(define-public python2-plotly
- (package-with-python2 python-plotly))
+ (package-with-python2 python-plotly-2.4.1))
(define-public python-louvain
(package
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 44d78c036b..0d768b8a0e 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -405,9 +405,11 @@ exception-handling library.")
(base32
"195rs0kdbs8w62irha1nwy83bccz04wglmk578qrj1mky7fc4rjv"))
(patches
- ;; Patch submitted to upstream (see:
- ;; https://gitlab.com/inkscape/lib2geom/merge_requests/17).
- (search-patches "lib2geom-enable-assertions.patch"))
+ ;; Patches submitted to upstream (see:
+ ;; https://gitlab.com/inkscape/lib2geom/merge_requests/17,
+ ;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32).
+ (search-patches "lib2geom-enable-assertions.patch"
+ "lib2geom-fix-tests.patch"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 0942e7cf74..f8e59b0b21 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -27,6 +27,7 @@
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2020 Julien Lepiler <julien@lepiller.eu>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1396,7 +1397,7 @@ PostgreSQL.")
(define-public guile-config
(package
(name "guile-config")
- (version "0.4.1")
+ (version "0.4.2")
(source
(origin
(method git-fetch)
@@ -1405,7 +1406,7 @@ PostgreSQL.")
(commit version)))
(file-name (git-file-name name version))
(sha256 (base32
- "1c59ch96d5p4c7si8qp55fdc15375klf2hyh29y3ap8ahqx9pxqj"))))
+ "09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -2483,163 +2484,162 @@ completion, a simple mode line, etc.")
(license license:gpl3+))))
(define-public guile-stis-parser
- (let ((commit "6e85d37ffc333b722f4413a6c648263701eb75bd")
- (revision "1"))
- (package
- (name "guile-stis-parser")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/tampe/stis-parser")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0v4hvq7rlpbra1ni73lf8k6sdmjlflr50yi3p1f24g85h77pc7c0"))))
- (build-system gnu-build-system)
- (arguments
- `(#:parallel-build? #f ; not supported
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _ (chdir "modules") #t))
- (add-after 'chdir 'use-canonical-directory-for-go-files
- (lambda _
- (substitute* "Makefile.am"
- (("/ccache") "/site-ccache"))
- #t))
- (add-after 'chdir 'delete-broken-symlink
- (lambda _
- (delete-file "parser/stis-parser/lang/.#calc.scm")
- #t)))))
- (inputs
- `(("guile" ,guile-2.2)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/tampe/stis-parser")
- (synopsis "Parser combinator framework")
- (description
- "This package provides a functional parser combinator library that
+ (package
+ (name "guile-stis-parser")
+ (version "1.2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/tampe/stis-parser")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fvxdfvc80zqhwzq5x3kxyr6j8p4b51yx85fx1gr3d4gy2ddpx5w"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f ; not supported
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "modules") #t))
+ (add-after 'chdir 'delete-broken-symlink
+ (lambda _
+ (delete-file "parser/stis-parser/lang/.#calc.scm")
+ #t)))))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://gitlab.com/tampe/stis-parser")
+ (synopsis "Parser combinator framework")
+ (description
+ "This package provides a functional parser combinator library that
supports backtracking and a small logical framework. The idea is to build up
chunks that are memoized and there is no clear scanner/parser separation,
chunks can be expressions as well as simple tokens.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public guile-persist
- (let ((commit "b14927b0368af51c024560aee5f55724aee35233")
- (revision "1"))
- (package
- (name "guile-persist")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/tampe/guile-persist")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Install .go files in the right place.
- (substitute* "Makefile.am"
- (("/ccache") "/site-ccache"))
- #t))))
- (build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-prefix
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "src/Makefile.am"
- (("/usr/local/lib/guile")
- (string-append (assoc-ref outputs "out") "/lib/guile"))
- (("/usr/local/include/guile")
- (string-append (assoc-ref inputs "guile") "/include/guile"))
- (("-L/usr/local/lib")
- (string-append "-L" (assoc-ref inputs "guile") "/lib"))
- ;; Use canonical directory for go files.
- (("/ccache") "/site-ccache"))
- #t))
- (add-after 'unpack 'patch-library-reference
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "persist/persistance.scm"
- (("\"libguile-persist\"")
- (format #f "\"~a/lib/guile/2.2/extensions/libguile-persist\"" out)))
- #t))))))
- (inputs
- `(("guile" ,guile-2.2)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/tampe/guile-persist")
- (synopsis "Persistence programming framework for Guile")
- (description
- "This is a serialization library for serializing objects like classes
+ (package
+ (name "guile-persist")
+ (version "1.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/tampe/guile-persist")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "19f8hqcax4v40858kx2j8fy1cvzc2djj99r0n17dy1xxmwa097qi"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-prefix
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "src/Makefile.am"
+ (("/usr/local/lib/guile")
+ (string-append (assoc-ref outputs "out") "/lib/guile"))
+ (("/usr/local/include/guile")
+ (string-append (assoc-ref inputs "guile") "/include/guile"))
+ (("-L/usr/local/lib")
+ (string-append "-L" (assoc-ref inputs "guile") "/lib")))
+ #t))
+ (add-after 'unpack 'patch-library-reference
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "persist/persistance.scm"
+ (("\"libguile-persist\"")
+ (format #f "\"~a/lib/guile/3.0/extensions/libguile-persist\"" out)))
+ #t))))))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://gitlab.com/tampe/guile-persist")
+ (synopsis "Persistence programming framework for Guile")
+ (description
+ "This is a serialization library for serializing objects like classes
and objects, closures and structs. This currently does not support
serializing continuations or delimited continuations.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public python-on-guile
- (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f")
- (revision "3"))
- (package
- (name "python-on-guile")
- (version (git-version "0.1.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.elephly.net/software/python-on-guile.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68"))))
- (build-system gnu-build-system)
- (arguments
- `(#:parallel-build? #f ; not supported
- #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
-
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _ (chdir "modules") #t))
- (add-after 'install 'wrap
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Wrap the 'python' executable so it can find its
- ;; dependencies.
- (let ((out (assoc-ref outputs "out")))
- (wrap-program (string-append out "/bin/python")
- `("GUILE_LOAD_PATH" ":" prefix
- (,(getenv "GUILE_LOAD_PATH")))
- `("GUILE_LOAD_COMPILED_PATH" ":" prefix
- (,(getenv "GUILE_LOAD_COMPILED_PATH"))))
- #t))))))
- (inputs
- `(("guile" ,guile-2.2)))
- (propagated-inputs
- `(("guile-persist" ,guile-persist)
- ("guile-readline" ,guile-readline)
- ("guile-stis-parser" ,guile-stis-parser)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/python-on-guile/python-on-guile/")
- (synopsis "Python implementation in Guile")
- (description
- "This package allows you to compile a Guile Python file to any target
+ (package
+ (name "python-on-guile")
+ (version "1.2.3.5")
+ (home-page "https://gitlab.com/python-on-guile/python-on-guile")
+ (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
+ "05xrvcj6a4gzq1ybyin270qz8wamgc7w2skyi9iy6hkpgdhxy8vf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f ;not supported
+ #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "modules") #t))
+ (add-after 'chdir 'augment-GUILE_LOAD_PATH
+ (lambda _
+ ;; TODO: It would be better to patch the Makefile.
+ (setenv "GUILE_LOAD_PATH"
+ (string-append ".:"
+ (getenv "GUILE_LOAD_PATH")))
+ #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Wrap the 'python' executable so it can find its
+ ;; dependencies and own modules.
+ (let* ((out (assoc-ref outputs "out"))
+ (guile-version ,(version-major+minor
+ (package-version guile-3.0)))
+ (scm (string-append out "/share/guile/site/"
+ guile-version))
+ (ccache (string-append out "/lib/guile/" guile-version
+ "/site-ccache"))
+ (load-path (string-join
+ (cons scm
+ ;; XXX: cdr because we augment it above.
+ (cdr (string-split
+ (getenv "GUILE_LOAD_PATH") #\:)))
+ ":"))
+ (compiled-path (string-append
+ ccache ":"
+ (getenv "GUILE_LOAD_COMPILED_PATH"))))
+ (wrap-program (string-append out "/bin/python")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,load-path))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,compiled-path)))
+ #t))))))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("guile-persist" ,guile-persist)
+ ("guile-readline" ,guile-readline)
+ ("guile-stis-parser" ,guile-stis-parser)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Python implementation in Guile")
+ (description
+ "This package allows you to compile a Guile Python file to any target
from @code{tree-il}.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public guile-file-names
(package
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 34d348c344..a32bd33293 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -308,6 +308,19 @@ without requiring the source code to be rewritten.")
(files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))))
+(define-public guile-3.0-latest
+ ;; TODO: Make this 'guile-3.0' on the next rebuild cycle.
+ (package
+ (inherit guile-3.0)
+ (version "3.0.4")
+ (source (origin
+ (inherit (package-source guile-3.0))
+ (uri (string-append "mirror://gnu/guile/guile-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0c8dkyvs6xbxp7rgnhkyakajzhakay7qn9kahj1mj49x5vf4fybb"))))))
+
(define-public guile-next
(deprecated-package "guile-next" guile-3.0))
@@ -317,7 +330,7 @@ without requiring the source code to be rewritten.")
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40525
(hidden-package
(package
- (inherit guile-3.0)
+ (inherit guile-3.0-latest)
(propagated-inputs
`(("bdw-gc" ,libgc-7)
,@(srfi-1:alist-delete "bdw-gc" (package-propagated-inputs guile-3.0)))))))
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 3089c17145..f8bee424c3 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -341,14 +341,14 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "8.20200522")
+ (version "8.20200617")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
- (base32 "1v71k5k9mcj1nq4pb8apx99rgw2rmckr6yshhvjl1dr6j70d67x8"))))
+ (base32 "1vgpqbscvxm03ibxy6cjnp9vd1wpsr3gkajp4z3m9nnkmjz5r4q4"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
@@ -762,6 +762,58 @@ advanced user's otherwise working script to fail under future circumstances.
@end enumerate")
(license license:gpl3+)))
+(define-public shelltestrunner
+ (package
+ (name "shelltestrunner")
+ (version "1.9")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://hackage/package/shelltestrunner-"
+ version "/shelltestrunner-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1a5kzqbwg6990249ypw0cx6cqj6663as1kbj8nzblcky8j6kbi6b"))))
+ (build-system haskell-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key outputs tests? parallel-tests? #:allow-other-keys)
+ ;; This test is inspired by the Makefile in the upstream
+ ;; repository, which is missing in the Hackage release tarball
+ ;; along with some of the tests. The Makefile would not work
+ ;; anyway as it ties into the 'stack' build tool.
+ (let* ((out (assoc-ref outputs "out"))
+ (shelltest (string-append out "/bin/shelltest"))
+ (numjobs (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")))
+ (if tests?
+ (invoke shelltest (string-append "-j" numjobs)
+ "tests/examples")
+ (format #t "test suite not run~%"))
+ #t))))))
+ (inputs
+ `(("ghc-diff" ,ghc-diff)
+ ("ghc-cmdargs" ,ghc-cmdargs)
+ ("ghc-filemanip" ,ghc-filemanip)
+ ("ghc-hunit" ,ghc-hunit)
+ ("ghc-pretty-show" ,ghc-pretty-show)
+ ("ghc-regex-tdfa" ,ghc-regex-tdfa)
+ ("ghc-safe" ,ghc-safe)
+ ("ghc-utf8-string" ,ghc-utf8-string)
+ ("ghc-test-framework" ,ghc-test-framework)
+ ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
+ (home-page "https://github.com/simonmichael/shelltestrunner")
+ (synopsis "Test CLI programs")
+ (description
+ "shelltestrunner (executable: @command{shelltest}) is a command-line tool
+for testing command-line programs, or general shell commands. It reads simple
+test specifications defining a command to run, some input, and the expected
+output, stderr, and exit status.")
+ (license license:gpl3+)))
+
(define-public stylish-haskell
(package
(name "stylish-haskell")
diff --git a/gnu/packages/haskell-web.scm b/gnu/packages/haskell-web.scm
index 4689025432..0c79ece194 100644
--- a/gnu/packages/haskell-web.scm
+++ b/gnu/packages/haskell-web.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -93,6 +94,27 @@ for screen-scraping.")
(description "HTTP cookie parsing and rendering library for Haskell.")
(license license:bsd-3)))
+(define-public ghc-curl
+ (package
+ (name "ghc-curl")
+ (version "1.3.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://hackage/package/curl/curl-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("curl" ,curl)))
+ (home-page "https://hackage.haskell.org/package/curl")
+ (synopsis "Haskell bindings for libcurl")
+ (description
+ "@code{libcurl} is a versatile client-side URL transfer library.
+This package provides a Haskell binding to libcurl.")
+ (license license:bsd-3)))
+
(define-public ghc-httpd-shed
(package
(name "ghc-httpd-shed")
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 64c09c9274..0508916ead 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -9812,6 +9812,29 @@ the ideal templating system.")
replace the standard one provided by GHC.")
(license license:expat)))
+(define-public ghc-psqueue
+ (package
+ (name "ghc-psqueue")
+ (version "1.1.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://hackage/package/PSQueue-"
+ version "/PSQueue-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
+ (build-system haskell-build-system)
+ (home-page "https://hackage.haskell.org/package/PSQueue")
+ (synopsis "Priority search queue")
+ (description
+ "A @dfn{priority search queue} efficiently supports the operations of
+both a search tree and a priority queue. A @code{Binding} is a product of
+a key and a priority. Bindings can be inserted, deleted, modified and queried
+in logarithmic time, and the binding with the least priority can be retrieved
+in constant time. A queue can be built from a list of bindings, sorted by
+keys, in linear time.")
+ (license license:bsd-3)))
+
(define-public ghc-psqueues
(package
(name "ghc-psqueues")
@@ -10249,6 +10272,29 @@ This is not good for Unicode users. This modified regex-compat uses regex-tdfa
this problem.")
(license license:bsd-3)))
+(define-public ghc-regex-pcre
+ (package
+ (name "ghc-regex-pcre")
+ (version "0.94.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://hackage.haskell.org/package/"
+ "regex-pcre/regex-pcre-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-regex-base" ,ghc-regex-base)
+ ("pcre" ,pcre)))
+ (home-page "https://hackage.haskell.org/package/regex-pcre")
+ (synopsis "Enhancement of the builtin Text.Regex library")
+ (description
+ "This package is an enhancement of the @code{Text.Regex} library.
+It wraps the @code{PCRE} C library providing Perl-compatible regular
+expressions.")
+ (license license:bsd-3)))
+
(define-public ghc-regex-pcre-builtin
(package
(name "ghc-regex-pcre-builtin")
@@ -10264,7 +10310,7 @@ this problem.")
(build-system haskell-build-system)
(inputs
`(("ghc-regex-base" ,ghc-regex-base)))
- (home-page "https://hackage.haskell.org/package/regex-pcre")
+ (home-page "https://hackage.haskell.org/package/regex-pcre-builtin")
(synopsis "Enhancement of the builtin Text.Regex library")
(description
"This package is an enhancement of the @code{Text.Regex} library,
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index dd2d0f1b95..f0c4451e80 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -131,11 +131,21 @@ GNU/Hurd."
(build-system gnu-build-system)
;; Flex is needed both at build and run time.
(inputs `(("gnumach-headers" ,gnumach-headers)
- ("flex" ,flex)))
+ ("flex" ,flex)
+ ("perl" ,perl)))
(native-inputs
`(("flex" ,flex)
("bison" ,bison)))
- (arguments `(#:tests? #f))
+ (arguments `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'patch-non-shebang-references
+ (lambda* (#:key build inputs outputs #:allow-other-keys)
+ (let ((perl (assoc-ref inputs "perl"))
+ (out (assoc-ref outputs "out")))
+ (substitute* (string-append out "/bin/mig")
+ (("perl ") (string-append perl "/bin/perl ")))
+ #t))))))
(home-page "https://www.gnu.org/software/hurd/microkernel/mach/mig/gnu_mig.html")
(synopsis "Mach 3.0 interface generator for the Hurd")
(description
diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm
index cf76c6fe20..54a65365d7 100644
--- a/gnu/packages/icu4c.scm
+++ b/gnu/packages/icu4c.scm
@@ -95,6 +95,22 @@ C/C++ part.")
(license x11)
(home-page "http://site.icu-project.org/")))
+(define-public icu4c-67
+ (package
+ (inherit icu4c)
+ (version "67.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/unicode-org/icu/releases/download/release-"
+ (string-map (lambda (x) (if (char=? x #\.) #\- x)) version)
+ "/icu4c-"
+ (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
+ "-src.tgz"))
+ (sha256
+ (base32
+ "1p6mhvxl0xr2n0g6xdps3mwzwlv6mjsz3xlpm793p9aiybb0ra4l"))))))
+
(define-public icu4c-build-root
(package
(inherit icu4c)
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 801dc70149..a11b1b89d3 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018 Lprndn <guix@lprndn.info>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -487,6 +488,43 @@ quickly, especially on machines with more than one CPU core. This is primarily
due to its architecture which automatically parallelises the image workflows.")
(license license:lgpl2.1+)))
+(define-public gmic
+ (package
+ (name "gmic")
+ (version "2.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://gmic.eu/files/source/gmic_"
+ version ".tar.gz"))
+ (sha256
+ (base32 "13axx7nwchn6ysgpvlw3fib474q4nrwv3qn20g3q03ldid0xvjah"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ;there are no tests
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("curl" ,curl)
+ ("fftw" ,fftw)
+ ("graphicsmagick" ,graphicsmagick)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("libx11" ,libx11)
+ ;;("opencv" ,opencv) ;OpenCV is currently broken in the CI
+ ("openexr" ,openexr)
+ ("zlib" ,zlib)))
+ (home-page "https://gmic.eu/")
+ (synopsis "Full-featured framework for digital image processing")
+ (description "G'MIC is a full-featured framework for digital image
+processing. It provides several user interfaces to convert / manipulate
+/ filter / visualize generic image datasets, ranging from 1D scalar
+signals to 3D+t sequences of multi-spectral volumetric images, hence
+including 2D color images.")
+ ;; Dual-licensed, either license applies.
+ (license (list license:cecill license:cecill-c))))
+
(define-public nip2
(package
(name "nip2")
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index b0707d6eff..85b0ba9fcf 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -213,6 +213,11 @@ endif()~%~%"
(arguments
`(#:tests? #t
#:test-target "check" ;otherwise some test binaries are missing
+ #:imported-modules (,@%cmake-build-system-modules
+ (guix build glib-or-gtk-build-system))
+ #:modules ((guix build cmake-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ (guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-icon-cache-generator
@@ -240,7 +245,11 @@ endif()~%~%"
;; as the "share/inkscape/ui/units.xml" file.
(delete 'check)
(add-after 'install 'check
- (assoc-ref %standard-phases 'check)))))
+ (assoc-ref %standard-phases 'check))
+ (add-after 'install 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs
`(("aspell" ,aspell)
("autotrace" ,autotrace)
diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm
index 7ef7108c1f..15f174f8b6 100644
--- a/gnu/packages/ipfs.scm
+++ b/gnu/packages/ipfs.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -212,7 +213,7 @@ written in Go.")
(define-public go-ipfs
(package
(name "go-ipfs")
- (version "0.4.23")
+ (version "0.5.1")
(source
(origin
(method url-fetch/tarbomb)
@@ -220,7 +221,7 @@ written in Go.")
"https://dist.ipfs.io/go-ipfs/v" version
"/go-ipfs-source.tar.gz"))
(sha256
- (base32 "191ir4h6c76xcnbwx9fj8j2lzzqyp10inmqd8sa393b5y0jmhi5a"))
+ (base32 "0lpilycjbc1g9adp4d5kryfprixj18hg3235fnivakmv7fy2akkm"))
(file-name (string-append name "-" version "-source"))))
(build-system go-build-system)
(arguments
diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 548a3ca049..81e4205acf 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -48,6 +48,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages lxqt)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
@@ -77,6 +78,7 @@
(sha256
(base32
"0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
+ (patches (search-patches "quassel-qt-514-compat.patch"))
(modules '((guix build utils)))
;; We don't want to install the bundled scripts.
(snippet
@@ -111,6 +113,7 @@
("qttools" ,qttools)))
(inputs
`(("inxi" ,inxi-minimal)
+ ("libdbusmenu-qt" ,libdbusmenu-qt)
("qca" ,qca)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d5bc713c70..48f9a52a56 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -54,7 +54,6 @@
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
- #:use-module (gnu packages gcc)
#:use-module (gnu packages gl)
#:use-module (gnu packages ghostscript) ;lcms
#:use-module (gnu packages gnome)
@@ -165,6 +164,64 @@ defined in The Java Language Specification into the bytecoded instruction set
and binary format defined in The Java Virtual Machine Specification.")
(license license:ibmpl1.0)))
+(define-public drip
+ ;; Last release is from 2014, with a few important commits afterwards.
+ (let ((commit "a4bd00df0199e78243847f06cc04ecaea31f8f08"))
+ (package
+ (name "drip")
+ (version (git-version "0.2.4" "1" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ninjudd/drip")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wzmjwfyldr3jn49517xd8yn7dgdk8h88qkga3kjyg1zc375ylg2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("jdk" ,icedtea "jdk")))
+ (arguments
+ `(#:tests? #f ; No tests.
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'install 'fix-wrapper
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((jps (string-append (assoc-ref inputs "jdk") "/bin/jps")))
+ (substitute* "bin/drip"
+ (("jps") jps)
+ (("brew update && brew upgrade drip") "guix pull && guix install drip")
+ ;; No need to make:
+ (("\\(cd -- \"\\$drip_dir\" && make -s\\) \\|\\| exit 1") "")
+ ;; No need to include source:
+ (("\\[\\[ -r \\$drip_dir/src/org/flatland/drip/Main\\.java \\]\\]")
+ "true"))
+ #t)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share/drip")))
+ (mkdir-p bin)
+ (for-each
+ (lambda (file)
+ (install-file (string-append "bin/" file) bin))
+ '("drip" "drip_daemon" "drip_proxy"))
+ (install-file "drip.jar" share)
+ (substitute* (string-append bin "/drip")
+ (("drip_dir=\\$bin_dir/..")
+ (string-append "drip_dir=" share)))
+ #t))))))
+ (home-page "https://github.com/ninjudd/drip")
+ (synopsis "Faster Java Virtual Machine launching")
+ (description "Drip is a launcher for the Java Virtual Machine that
+provides much faster startup times than the @command{java} command. The @command{drip}
+script is intended to be a drop-in replacement for the @command{java} command,
+only faster.")
+ (license license:epl1.0))))
+
;; This is the last version of GNU Classpath that can be built without ECJ.
(define classpath-bootstrap
(package
@@ -254,11 +311,6 @@ language.")
("libffi" ,libffi)
("zip" ,zip)
("zlib" ,zlib)))
- ;; When built with a recent GCC and glibc the configure step of icedtea-6
- ;; fails with an invalid instruction error.
- (native-inputs
- `(("gcc" ,gcc-5)
- ("libc" ,glibc-2.28)))
(home-page "http://jamvm.sourceforge.net/")
(synopsis "Small Java Virtual Machine")
(description "JamVM is a Java Virtual Machine conforming to the JVM
@@ -708,6 +760,8 @@ machine.")))
(sha256
(base32
"1nl0zxz8y5x8gwsrm7n32bry4dx8x70p8z3s9jbdvs8avyb8whkn"))
+ (patches
+ (search-patches "jamvm-2.0.0-disable-branch-patching.patch"))
(snippet
'(begin
;; Remove precompiled software.
@@ -7363,8 +7417,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
`(("junit" ,java-junit)))
(propagated-inputs
`(("java-stringtemplate" ,java-stringtemplate-3)
- ("antlr" ,antlr2)
- ("antlr3" ,antlr3-3.1)))))
+ ("antlr" ,antlr2)))))
(define-public antlr3-3.1
(package
@@ -11926,6 +11979,7 @@ Isolation and Durability) properties.")
(uri (git-reference
(url "https://github.com/remkop/picocli")
(commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
"1sxp6rxjfgjd98ly14b3d15dvxkm5wg4g46w12jyhmr0kmkaca3c"))))
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 938251a532..dd1355010e 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -287,21 +288,48 @@ This package is part of the KDE multimedia module.")
(define-public k3b
(package
(name "k3b")
- (version "20.04.1")
+ (version "20.04.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kde/stable/release-service/" version
"/src/k3b-" version ".tar.xz"))
(sha256
- (base32 "0r01ninrrmqk7pl5jg0g51fcky1ammw0yyq572wyhibw7q8y7ly7"))))
+ (base32 "15wm987hz6rfs9ds9l1gbs6gdsardj1ywvk6zmpvj2i2190y4b3q"))))
(build-system qt-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'set-absolute-library-paths
+ (lambda _
+ ;; Set absolute paths for dlopened libraries. We can’t use k3b’s
+ ;; runpath as they are loaded by the Qt library.
+ (let ((libcdio-paranoia (assoc-ref %build-inputs "libcdio-paranoia"))
+ (libdvdcss (assoc-ref %build-inputs "libdvdcss")))
+ (substitute* "libk3b/tools/k3bcdparanoialib.cpp"
+ (("\"(cdio_cdda|cdio_paranoia)\"" _ library)
+ (string-append "\"" libcdio-paranoia "/lib/" library "\"")))
+ (substitute* "libk3b/tools/k3blibdvdcss.cpp"
+ (("\"(dvdcss)\"" _ library)
+ (string-append "\"" libdvdcss "/lib/" library "\""))))
+ #t))
+ (add-after 'qt-wrap 'wrap-path
+ (lambda _
+ ;; Set paths to backend programs.
+ (wrap-program (string-append (assoc-ref %outputs "out") "/bin/k3b")
+ `("PATH" ":" prefix
+ ,(map (lambda (input)
+ (string-append (assoc-ref %build-inputs input) "/bin"))
+ '("cdrdao" "dvd+rw-tools" "libburn" "sox"))))
+ #t)))))
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("pkg-config" ,pkg-config)
("kdoctools" ,kdoctools)))
(inputs
- `(("ffmpeg" ,ffmpeg)
+ `(("cdrdao" ,cdrdao)
+ ("dvd+rw-tools" ,dvd+rw-tools)
+ ("ffmpeg" ,ffmpeg)
("flac" ,flac)
("karchive" ,karchive)
("kcmutils" ,kcmutils)
@@ -319,6 +347,9 @@ This package is part of the KDE multimedia module.")
("kwidgetsaddons" ,kwidgetsaddons)
("kxmlgui" ,kxmlgui)
("lame" ,lame)
+ ("libburn" ,libburn)
+ ("libcdio-paranoia" ,libcdio-paranoia)
+ ("libdvdcss" ,libdvdcss)
("libdvdread" ,libdvdread)
;; TODO: LibFuzzer
("libiconv" ,libiconv)
@@ -334,13 +365,17 @@ This package is part of the KDE multimedia module.")
("qtwebkit" ,qtwebkit)
("shared-mime-info" ,shared-mime-info)
("solid" ,solid)
+ ("sox" ,sox)
("taglib" ,taglib)))
(home-page "https://kde.org/applications/multimedia/org.kde.k3b")
(synopsis "Sophisticated CD/DVD burning application")
(description "K3b is CD-writing software which intends to be feature-rich
and provide an easily usable interface. Features include burning audio CDs
from .WAV and .MP3 audio files, configuring external programs and configuring
-devices.")
+devices.
+
+The @code{udisks-service} should be enabled for @command{k3b} to discover the
+available CD drives.")
(license ;; GPL for programs, FDL for documentation
(list license:gpl2+ license:fdl1.2+))))
diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index fb14a64988..cba00b2882 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -567,20 +567,20 @@ different notification systems.")
(define-public kdeconnect
(package
(name "kdeconnect")
- (version "1.4")
+ (version "20.04.1")
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://kde/stable/kdeconnect/"
- version "/kdeconnect-kde-"
+ (uri (string-append "mirror://kde/stable/release-service/"
+ version "/src/kdeconnect-kde-"
version ".tar.xz"))
(sha256
(base32
- "06i6spspqpl79x6z2bfvbgd08b3h1pyx5j1xjhd8ifyrm52pkvna"))))
+ "1knhpjdbffw858dfd9kml91a02fkc0rcjydfavcyr79j9x8mv3bq"))))
(build-system qt-build-system)
(arguments
`(#:configure-flags '("-DBUILD_TESTING=ON"
- "-DLIBEXEC_INSTALL_DIR=libexec")
+ "-DKDE_INSTALL_LIBEXECDIR=libexec")
#:phases (modify-phases %standard-phases
(add-after 'set-paths 'extend-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index c81a4bc487..742172a969 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -269,7 +269,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
(define-public kodi
(package
(name "kodi")
- (version "18.7")
+ (version "18.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -278,7 +278,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.")
(file-name (git-file-name name version))
(sha256
(base32
- "082cpih84j7v29w55qhj0rdia7hdjpwi81qywiwawd4vlyimpv2h"))
+ "1ypn29yhy49mz9x4xqh2zfdrsbfwm1b4canvh9zvy9c1irjwf419"))
(patches (search-patches "kodi-skip-test-449.patch"
"kodi-increase-test-timeout.patch"
"kodi-set-libcurl-ssl-parameters.patch"))
diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index 3842f3fead..ce958d86dc 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -166,12 +166,14 @@ with usb4java.")
(name "java-usb4java")
(version "1.2.0")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/usb4java/usb4java/"
- "archive/usb4java-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/usb4java/usb4java")
+ (commit (string-append "usb4java-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0gzpsnzwgsdyra3smq288yvxnwrgvdwxr6g8jbknnsk56kv6wc34"))))
+ "0aip6k24czz5g58qwb963mpick0b6ks774drfpdd8gcdvj9iv87j"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "usb4java.jar"
diff --git a/gnu/packages/linphone.scm b/gnu/packages/linphone.scm
index f96fff2fc4..14da150ced 100644
--- a/gnu/packages/linphone.scm
+++ b/gnu/packages/linphone.scm
@@ -512,14 +512,6 @@ and video calls or instant messaging capabilities to an application.")
`(#:tests? #f ; No test target
#:phases
(modify-phases %standard-phases
- (add-after 'set-paths 'set-qt-rcc-source-date-override
- (lambda _
- ;; This fixes a reproducibility problem where the Qt Resource
- ;; Compiler (RCC) includes timestamp of its source files
- ;; (see: https://reproducible-builds.org/docs/
- ;; deterministic-build-systems/#cmake-notes).
- (setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
- #t))
(add-after 'unpack 'fix-cmake-error
(lambda _
;; This is fixed in commit efed2fd8 of the master branch.
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 20c17144a3..cadfd186a1 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -371,50 +371,50 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(sha256 hash)))
-(define-public linux-libre-5.7-version "5.7.2")
+(define-public linux-libre-5.7-version "5.7.6")
(define-public linux-libre-5.7-pristine-source
(let ((version linux-libre-5.7-version)
- (hash (base32 "02brxm78n0kg4mh48acvjsr7mpvaqd279ycyaixaflid1s1awrb0")))
+ (hash (base32 "1rhhys2fvfrfsc6lk0qkq59p83qhwvns4jhk0jlyylyzqqywkm4z")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.7)))
-(define-public linux-libre-5.4-version "5.4.46")
+(define-public linux-libre-5.4-version "5.4.49")
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "13hvnfdcbcb9a21zizq8d90mc8maxz03zmzsj6iqsjd2y7r4y1rh")))
+ (hash (base32 "0g2psjf2q10mfc3vv6brjn6s2nkg73ll1s04gpshw907d9irpn2m")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.128")
+(define-public linux-libre-4.19-version "4.19.130")
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "0g31ad3wziy4xqna0yvwjcnza3jhd93syjpfvmwh0b4pkj2adar9")))
+ (hash (base32 "03zhsizj53ngwxn7d4mzix9xbxxd5lhbzrvawvbb91f83pkc14m6")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.184")
+(define-public linux-libre-4.14-version "4.14.186")
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0h6r06c1d7amkfglsr66ic89p0zxpmk7jkq1ylcbknmkiwkixx9g")))
+ (hash (base32 "0q52fmkiqa9hpdkf0wlpcqnc6wqssqz6cgfk1ix1anq0h5hl4ns4")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.227")
+(define-public linux-libre-4.9-version "4.9.228")
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "0pqc0wld4s4zjas95xm54mrkk00l9zkc59b6i9gq4km126s8bi1q")))
+ (hash (base32 "0d7w2zzs79ywxzfrh4bmk5lw318qbkcb8mcsyyh3cc25qqlz9gwg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.227")
+(define-public linux-libre-4.4-version "4.4.228")
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "196x57w740firg8zchypq4vq6a83ymmwn9amqrscym9zr0pcgm40")))
+ (hash (base32 "0y1xc5lk8j3p5maarksmh18wy921rgcngzsih7q1a82rah1fsjxr")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -1087,6 +1087,29 @@ network adapters.")
between the CDemu userspace daemon and linux kernel.")
(license license:gpl2+)))
+(define-public bbswitch-module
+ (package
+ (name "bbswitch-module")
+ (version "0.8")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Bumblebee-Project/bbswitch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1glch4j0x1dzlp2yrb67v2r5jg9609jb6p8m251y78m74advqw0l"))))
+ (build-system linux-module-build-system)
+ (arguments
+ ;; No tests.
+ `(#:tests? #f))
+ (home-page "https://github.com/Bumblebee-Project/bbswitch")
+ (synopsis "Kernel module that disables discrete Nvidia graphics cards")
+ (description "The bbswitch module provides a way to toggle the Nvidia
+graphics card on Optimus laptops.")
+ (license license:gpl2)))
+
(define-public ddcci-driver-linux
(package
(name "ddcci-driver-linux")
@@ -1463,12 +1486,13 @@ block devices, UUIDs, TTYs, and many other tools.")
(name "ddate")
(version "0.2.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/bo0ts/ddate/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bo0ts/ddate")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1bbqqq8mswj4bp9083gxjaky5ysfznax4cynsqwmy125z053yg6m"))))
+ (base32 "1qchxnxvghbma6gp1g78wnjxsri0b72ha9axyk31cplssl7yn73f"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f))
(home-page "https://github.com/bo0ts/ddate")
@@ -3764,13 +3788,14 @@ particular the @code{perf} command.")
(name "pflask")
(version "0.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/ghedo/pflask/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ghedo/pflask")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1g8fjj67dfkc2s0852l9vqi1pm61gp4rxbpzbzg780f5s5hd1fys"))))
+ "1jikjbhlxlqracnai3v9krzcgd2xwp0p4adw5n07yxc7b857damz"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f)) ; no tests
@@ -6266,13 +6291,14 @@ NexGen, Rise, and SiS CPUs.")
(version "0.5")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/JasonFerrara/jmtpfs/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JasonFerrara/jmtpfs")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "10v8d7mmx8b8123x5f9y9zaaa428ms6wkngwn2ra71n5a53wrjn0"))))
+ "1pm68agkhrwgrplrfrnbwdcvx5lrivdmqw8pb5gdmm3xppnryji1"))))
(build-system gnu-build-system)
(inputs
`(("file" ,file)
@@ -6293,12 +6319,13 @@ the MTP device as a file system.")
(version "0.51")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/jamesodhunt/procenv/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jamesodhunt/procenv")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1javw97yw0qvjmj14js8vw6nsfyf2xc0kfiyq5f2hsp0553w2cdq"))))
+ (base32 "1ilrsw1rc85w29mkbkmm5n5w427gapv43yrjzvkb4kc9xhscgdjn"))))
(build-system gnu-build-system)
(arguments `(#:configure-flags '("--disable-silent-rules")))
(native-inputs `(("groff" ,groff) ; for tests
@@ -6817,12 +6844,18 @@ the superuser to make device nodes.")
(substitute* "Makefile"
(("/bin/sh") (which "sh")))
#t))
- (add-after 'unpack 'patch-getopt
+ (add-after 'unpack 'patch-script
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "scripts/fakeroot.in"
(("getopt")
(string-append (assoc-ref inputs "util-linux")
- "/bin/getopt")))
+ "/bin/getopt"))
+ (("sed")
+ (string-append (assoc-ref inputs "sed")
+ "/bin/sed"))
+ (("cut")
+ (string-append (assoc-ref inputs "coreutils")
+ "/bin/cut")) )
#t))
(add-before 'configure 'setenv
(lambda _
@@ -6859,7 +6892,9 @@ the superuser to make device nodes.")
("xz" ,xz))) ; for the tests
(inputs
`(("libcap" ,libcap/next)
- ("util-linux" ,util-linux)))
+ ("util-linux" ,util-linux)
+ ("sed" ,sed)
+ ("coreutils" ,coreutils)))
(synopsis "Provides a fake root environment")
(description "@command{fakeroot} runs a command in an environment where
it appears to have root privileges for file manipulation. This is useful
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 025d1bc9ef..fd9422a8ba 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -3592,11 +3592,13 @@ process form data posted with HTTP POST method using enctype
(version "2.0.4")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pmai/md5")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name "md5" version))
(sha256
- (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
+ (base32 "1waqxzm7vlc22n92hv8r27anlvvjkkh9slhrky1ww7mdx4mmxwb8"))))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/pmai/md5")
(synopsis
@@ -5719,22 +5721,7 @@ offered, one SAX-like, the other similar to StAX.")
(install-file "catalog.dtd"
(string-append
(assoc-ref outputs "out")
- "/lib/" (%lisp-type)))))
- (add-after 'create-asd 'remove-component
- ;; XXX: The original .asd has no components, but our build system
- ;; creates an entry nonetheless. We need to remove it for the
- ;; generated .asd to load properly. See trivia.trivial for a
- ;; similar problem.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (asd (string-append out "/lib/sbcl/cxml.asd")))
- (substitute* asd
- ((" :components
-")
- ""))
- (substitute* asd
- ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
- ""))))))))))
+ "/lib/" (%lisp-type))))))))))
(define-public cl-cxml
(sbcl-package->cl-source-package sbcl-cxml))
@@ -6136,7 +6123,6 @@ This package uses fare-quasiquote with named-readtable.")))
(define-public cl-fare-quasiquote-readtable
(sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
-;; TODO: Add support for component-less system in asdf-build-system/sbcl.
(define-public sbcl-fare-quasiquote-extras
(package
(inherit sbcl-fare-quasiquote)
@@ -6156,22 +6142,7 @@ This package uses fare-quasiquote with named-readtable.")))
(install-file "fare-quasiquote-extras.asd" lib)
(make-file-writable
(string-append lib "/fare-quasiquote-extras.asd"))
- #t)))
- (add-after 'create-asd-file 'fix-asd-file
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib/" (%lisp-type)))
- (asd (string-append lib "/fare-quasiquote-extras.asd")))
- (substitute* asd
- ((":class")
- "")
- (("asdf/bundle:prebuilt-system")
- "")
- ((":components")
- "")
- (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
- "")))
- #t)))))
+ #t))))))
(description "This library combines @code{fare-quasiquote-readtable} and
@code{fare-quasiquote-optima}.")))
@@ -6247,32 +6218,6 @@ with extensible optimizer interface.")))
(name "sbcl-trivia.trivial")
(inputs
`(("trivia.level2" ,sbcl-trivia.level2)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'create-asd-file
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lib (string-append out "/lib/" (%lisp-type)))
- (level2 (assoc-ref inputs "trivia.level2")))
- (mkdir-p lib)
- (install-file "trivia.trivial.asd" lib)
- ;; XXX: This .asd does not have any component and the build
- ;; system fails to work in this case. We should update the
- ;; build system to handle component-less .asd.
- ;; TODO: How do we append to file in Guile? It seems that
- ;; (open-file ... "a") gets a "Permission denied".
- (substitute* (string-append lib "/trivia.trivial.asd")
- (("\"\\)")
- (string-append "\")
-
-(progn (asdf/source-registry:ensure-source-registry)
- (setf (gethash
- \"trivia.level2\"
- asdf/source-registry:*source-registry*)
- #p\""
- level2
- "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.
@@ -6350,24 +6295,7 @@ This system contains the CFFI foreign slot access extension.")))
("trivia.cffi" ,sbcl-trivia.cffi)
("optima" ,sbcl-optima)))
(arguments
- `(#:test-asd-file "trivia.test.asd"
- #:phases
- (modify-phases %standard-phases
- (add-after 'create-asd 'remove-component
- ;; XXX: The original .asd has no components, but our build system
- ;; creates an entry nonetheless. We need to remove it for the
- ;; generated .asd to load properly. See trivia.trivial for a
- ;; similar problem.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
- (substitute* asd
- ((" :components
-")
- ""))
- (substitute* asd
- ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
- ""))))))))
+ `(#:test-asd-file "trivia.test.asd"))
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.")))
@@ -12018,3 +11946,180 @@ tables.")
(define-public cl-rdkafka
(sbcl-package->cl-source-package sbcl-cl-rdkafka))
+
+(define-public sbcl-acclimation
+ (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
+ (package
+ (name "sbcl-acclimation")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/robert-strandh/Acclimation")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/robert-strandh/Acclimation")
+ (synopsis "Internationalization library for Common Lisp")
+ (description "This project is meant to provide tools for
+internationalizing Common Lisp programs.
+
+One important aspect of internationalization is of course the language used in
+error messages, documentation strings, etc. But with this project we provide
+tools for all other aspects of internationalization as well, including dates,
+weight, temperature, names of physical quantitites, etc.")
+ (license license:bsd-2))))
+
+(define-public cl-acclimation
+ (sbcl-package->cl-source-package sbcl-acclimation))
+
+(define-public sbcl-clump-2-3-tree
+ (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
+ (package
+ (name "sbcl-clump-2-3-tree")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/robert-strandh/Clump")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
+ (arguments
+ '(#:asd-file "2-3-tree/clump-2-3-tree.asd"
+ #:asd-system-name "clump-2-3-tree"))
+ (inputs
+ `(("acclimation" ,sbcl-acclimation)))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/robert-strandh/Clump")
+ (synopsis "Implementation of 2-3 trees for Common Lisp")
+ (description "The purpose of this library is to provide a collection of
+implementations of trees.
+
+In contrast to existing libraries such as cl-containers, it does not impose a
+particular use for the trees. Instead, it aims for a stratified design,
+allowing client code to choose between different levels of abstraction.
+
+As a consequence of this policy, low-level interfaces are provided where
+the concrete representation is exposed, but also high level interfaces
+where the trees can be used as search trees or as trees that represent
+sequences of objects.")
+ (license license:bsd-2))))
+
+(define-public sbcl-clump-binary-tree
+ (package
+ (inherit sbcl-clump-2-3-tree)
+ (name "sbcl-clump-binary-tree")
+ (arguments
+ '(#:asd-file "Binary-tree/clump-binary-tree.asd"
+ #:asd-system-name "clump-binary-tree"))
+ (synopsis "Implementation of binary trees for Common Lisp")))
+
+(define-public sbcl-clump
+ (package
+ (inherit sbcl-clump-2-3-tree)
+ (name "sbcl-clump")
+ (arguments
+ '(#:asd-file "clump.asd"
+ #:asd-system-name "clump"))
+ (inputs
+ `(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
+ ("clump-binary-tree" ,sbcl-clump-binary-tree)))
+ (synopsis "Collection of tree implementations for Common Lisp")))
+
+(define-public cl-clump
+ (sbcl-package->cl-source-package sbcl-clump))
+
+(define-public sbcl-cluffer-base
+ (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
+ (package
+ (name "sbcl-cluffer-base")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/robert-strandh/cluffer")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
+ (arguments
+ '(#:asd-file "Base/cluffer-base.asd"
+ #:asd-system-name "cluffer-base"))
+ (inputs
+ `(("acclimation" ,sbcl-acclimation)))
+ (build-system asdf-build-system/sbcl)
+ (home-page "https://github.com/robert-strandh/cluffer")
+ (synopsis "Common Lisp library providing a protocol for text-editor buffers")
+ (description "Cluffer is a library for representing the buffer of a text
+editor. As such, it defines a set of CLOS protocols for client code to
+interact with the buffer contents in various ways, and it supplies different
+implementations of those protocols for different purposes.")
+ (license license:bsd-2))))
+
+(define-public sbcl-cluffer-standard-line
+ (package
+ (inherit sbcl-cluffer-base)
+ (name "sbcl-cluffer-standard-line")
+ (arguments
+ '(#:asd-file "Standard-line/cluffer-standard-line.asd"
+ #:asd-system-name "cluffer-standard-line"))
+ (inputs
+ `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer-standard-buffer
+ (package
+ (inherit sbcl-cluffer-base)
+ (name "sbcl-cluffer-standard-buffer")
+ (arguments
+ '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
+ #:asd-system-name "cluffer-standard-buffer"))
+ (inputs
+ `(("cluffer-base" ,sbcl-cluffer-base)
+ ("clump" ,sbcl-clump)))))
+
+(define-public sbcl-cluffer-simple-line
+ (package
+ (inherit sbcl-cluffer-base)
+ (name "sbcl-cluffer-simple-line")
+ (arguments
+ '(#:asd-file "Simple-line/cluffer-simple-line.asd"
+ #:asd-system-name "cluffer-simple-line"))
+ (inputs
+ `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer-simple-buffer
+ (package
+ (inherit sbcl-cluffer-base)
+ (name "sbcl-cluffer-simple-buffer")
+ (arguments
+ '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd"
+ #:asd-system-name "cluffer-simple-buffer"))
+ (inputs
+ `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer
+ (package
+ (inherit sbcl-cluffer-base)
+ (name "sbcl-cluffer")
+ (arguments
+ '(#:asd-file "cluffer.asd"
+ #:asd-system-name "cluffer"))
+ (inputs
+ `(("cluffer-base" ,sbcl-cluffer-base)
+ ("cluffer-standard-line" ,sbcl-cluffer-standard-line)
+ ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer)
+ ("cluffer-simple-line" ,sbcl-cluffer-simple-line)
+ ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer)))))
+
+(define-public cl-cluffer
+ (sbcl-package->cl-source-package sbcl-cluffer))
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 181ce76559..7babb281ec 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2020 Simon South <simon@simonsouth.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,6 +39,7 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages m4)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module (gnu packages glib)
@@ -292,6 +294,65 @@ directory structure and file attributes.")
(define-public lua5.2-filesystem
(make-lua-filesystem "lua5.2-filesystem" lua-5.2))
+(define (make-lua-ossl name lua)
+ (package
+ (name name)
+ (version "20170903")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://25thandclement.com/~william/"
+ "projects/releases/luaossl-" version ".tgz"))
+ (sha256
+ (base32
+ "10392bvd0lzyibipblgiss09zlqh3a5zgqg1b9lgbybpqb9cv2k3"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (lua-api-version ,(version-major+minor (package-version lua))))
+ (list "CC=gcc"
+ "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated
+ (string-append "DESTDIR=" out)
+ (string-append "LUA_APIS=" lua-api-version)
+ "prefix="))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (lua-version ,(version-major+minor (package-version lua))))
+ (setenv "LUA_CPATH"
+ (string-append out "/lib/lua/" lua-version "/?.so;;"))
+ (setenv "LUA_PATH"
+ (string-append out "/share/lua/" lua-version "/?.lua;;"))
+ (with-directory-excursion "regress"
+ (for-each (lambda (f)
+ (invoke "lua" f))
+ (find-files "." "^[0-9].*\\.lua$"))))
+ #t)))))
+ (inputs
+ `(("lua" ,lua)
+ ("openssl" ,openssl)))
+ (home-page "https://25thandclement.com/~william/projects/luaossl.html")
+ (synopsis "OpenSSL bindings for Lua")
+ (description "The luaossl extension module for Lua provides comprehensive,
+low-level bindings to the OpenSSL library, including support for certificate and
+key management, key generation, signature verification, and deep bindings to the
+distinguished name, alternative name, and X.509v3 extension interfaces. It also
+binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG interfaces.")
+ (license license:expat)))
+
+(define-public lua-ossl
+ (make-lua-ossl "lua-ossl" lua))
+
+(define-public lua5.1-ossl
+ (make-lua-ossl "lua5.1-ossl" lua-5.1))
+
+(define-public lua5.2-ossl
+ (make-lua-ossl "lua5.2-ossl" lua-5.2))
+
(define (make-lua-sec name lua)
(package
(name name)
@@ -340,6 +401,112 @@ secure session between the peers.")
(define-public lua5.2-sec
(make-lua-sec "lua5.2-sec" lua-5.2))
+(define (make-lua-cqueues name lua lua-ossl)
+ (package
+ (name name)
+ (version "20171014")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://25thandclement.com/~william/"
+ "projects/releases/cqueues-" version ".tgz"))
+ (sha256
+ (base32
+ "1dabhpn6r0hlln8vx9hxm34pfcm46qzgpb2apmziwg5z51fi4ksb"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 string-fun))
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out"))
+ (lua-api-version ,(version-major+minor (package-version lua))))
+ (list "CC=gcc"
+ (string-append "LUA_APIS=" lua-api-version)))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key make-flags outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (apply invoke "make" "install"
+ (append make-flags
+ (list (string-append "DESTDIR=" out)
+ "prefix="))))))
+ (add-after 'install 'check
+ (lambda* (#:key inputs outputs make-flags #:allow-other-keys)
+ (let*
+ ((lua-version ,(version-major+minor (package-version lua)))
+ (env-suffix (if (equal? lua-version "5.1")
+ ""
+ (string-append
+ "_"
+ (string-replace-substring lua-version "." "_"))))
+
+ (lua-ossl (assoc-ref inputs "lua-ossl"))
+ (out (assoc-ref outputs "out"))
+
+ (lua-cpath (lambda (p)
+ (string-append p "/lib/lua/" lua-version "/?.so")))
+ (lua-path (lambda (p)
+ (string-append p "/share/lua/" lua-version "/?.lua"))))
+ ;; The test suite sets Lua-version-specific search-path variables
+ ;; when available so we must do the same, as these take
+ ;; precedence over the generic "LUA_CPATH" and "LUA_PATH"
+ (setenv (string-append "LUA_CPATH" env-suffix)
+ (string-append
+ (string-join (map lua-cpath (list out lua-ossl)) ";")
+ ";;"))
+ (setenv (string-append "LUA_PATH" env-suffix)
+ (string-append
+ (string-join (map lua-path (list out lua-ossl)) ";")
+ ";;"))
+
+ ;; Skip regression tests we expect to fail
+ (with-directory-excursion "regress"
+ (for-each (lambda (f)
+ (rename-file f (string-append f ".skip")))
+ (append
+ ;; Regression tests that require network
+ ;; connectivity
+ '("22-client-dtls.lua"
+ "30-starttls-completion.lua"
+ "62-noname.lua"
+ "153-dns-resolvers.lua")
+
+ ;; Regression tests that require LuaJIT
+ '("44-resolvers-gc.lua"
+ "51-join-defunct-thread.lua")
+
+ ;; Regression tests that require Lua 5.3
+ (if (not (equal? lua-version "5.3"))
+ '("152-thread-integer-passing.lua")
+ '()))))
+
+ (apply invoke "make" "check" make-flags)))))))
+ (native-inputs
+ `(("m4" ,m4)))
+ (inputs
+ `(("lua" ,lua)
+ ("openssl" ,openssl)))
+ (propagated-inputs
+ `(("lua-ossl" ,lua-ossl)))
+ (home-page "https://25thandclement.com/~william/projects/cqueues.html")
+ (synopsis "Event loop for Lua using continuation queues")
+ (description "The cqueues extension module for Lua implements an event loop
+that operates through the yielding and resumption of coroutines. It is designed
+to be non-intrusive, composable, and embeddable within existing applications.")
+ (license license:expat)))
+
+(define-public lua-cqueues
+ (make-lua-cqueues "lua-cqueues" lua lua-ossl))
+
+(define-public lua5.1-cqueues
+ (make-lua-cqueues "lua5.1-cqueues" lua-5.1 lua5.1-ossl))
+
+(define-public lua5.2-cqueues
+ (make-lua-cqueues "lua5.2-cqueues" lua-5.2 lua5.2-ossl))
+
(define-public lua-penlight
(package
(name "lua-penlight")
diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm
index fbf32bf337..cad5282e1a 100644
--- a/gnu/packages/lxde.scm
+++ b/gnu/packages/lxde.scm
@@ -137,7 +137,19 @@ able to change themes, icons, and fonts used by GTK+ applications.")
(base32
"04n3vgh3ix12p8jfs4w0dyfq3anbjy33h7g53wbbqqc0f74xyplb"))))
(build-system gnu-build-system)
- (inputs `(("gtk+" ,gtk+-2)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'xrandr-absolutely
+ ;; lxrandr is useless without xrandr and gives an unhelpful error
+ ;; message if it's not in $PATH, so make it a hard dependency.
+ (lambda* (#:key input #:allow-other-keys)
+ (substitute* "src/lxrandr.c"
+ (("(\"|')xrandr\"" _ match)
+ (string-append match (which "xrandr") "\"")))
+ #t)))))
+ (inputs `(("gtk+" ,gtk+-2)
+ ("xrandr" ,xrandr)))
(native-inputs `(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(synopsis "LXDE monitor configuration tool")
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 0e11da41ca..0c02fbcfc7 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -946,14 +946,14 @@ main intended application of Autograd is gradient-based optimization.")
(name "lightgbm")
(version "2.0.12")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/Microsoft/LightGBM/archive/v"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Microsoft/LightGBM")
+ (commit (string-append "v" version))))
(sha256
(base32
- "132zf0yk0545mg72hyzxm102g3hpb6ixx9hnf8zd2k55gas6cjj1"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "0jlvyn7k81dzrh9ij3zw576wbgiwmmr26rzpdxjn1dbpc3njpvzi"))
+ (file-name (git-file-name name version))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-nose" ,python-nose)))
@@ -968,8 +968,8 @@ main intended application of Autograd is gradient-based optimization.")
#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion ,(string-append "../LightGBM-" version)
+ (lambda _
+ (with-directory-excursion "../source"
(invoke "pytest" "tests/c_api_test/test_.py")))))))
(build-system cmake-build-system)
(home-page "https://github.com/Microsoft/LightGBM")
@@ -1817,8 +1817,7 @@ advanced research.")
"1k8szlpm19rcwcxdny9qdm3gmaqq8akb4xlvrzyz8c2d679aak6l"))))
(build-system python-build-system)
(propagated-inputs
- `(("ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
- python-ipython))
+ `(("ipython" ,python-ipython)
("numpy" ,python-numpy)
("pandas" ,python-pandas)
("scipy" ,python-scipy)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index ec1233f83b..87388747e4 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -32,6 +32,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -146,6 +147,44 @@
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
+(define-public anubis
+ (package
+ (name "anubis")
+ ;; This 4.2.90 alpha release adds support for Guile 3 and has fixes for
+ ;; other issues.
+ (version "4.2.90")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://alpha.gnu.org/gnu/anubis/anubis-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("gettext" ,gettext-minimal)
+ ("m4" ,m4))) ;for the test suite
+ (inputs
+ `(("gdbm" ,gdbm)
+ ("gnutls" ,gnutls)
+ ("gpgme" ,gpgme)
+ ("gsasl" ,gsasl)
+ ("guile" ,guile-3.0)
+ ("libgcrypt" ,libgcrypt) ;gnutls support depends on libgcrypt
+ ("libgpg-error" ,libgpg-error)))
+ (outputs '("out" "debug"))
+ (synopsis "SMTP message submission daemon")
+ (description "Anubis is a daemon that sits between the Mail User
+Agent (MUA) and the Mail Transfer Agent (MTA). When a mail is sent by a user
+in the MUA, it is first passed to Anubis, which performs additional processing
+to the message before passing it on for delivery by the MTA. Anubis may, for
+example, modify the message headers or body, or encrypt or sign the message.")
+ (home-page "https://www.gnu.org/software/anubis/manual/")
+ (license gpl3+)))
+
(define-public mailutils
(package
(name "mailutils")
@@ -382,7 +421,7 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.14.2")
+ (version "1.14.4")
(source (origin
(method url-fetch)
(uri (list
@@ -392,7 +431,7 @@ aliasing facilities to work just as they would on normal mail.")
version ".tar.gz")))
(sha256
(base32
- "0cdcls0x6f2w99hkjz48hxhnx86w3bnyxzibchdc9yspih770bz2"))
+ "1hykkq3m7kqic5r7vzg45xaww7415fv5i2d03slzykqb47w5d3na"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm
index 8b548b5d8e..8afd3be152 100644
--- a/gnu/packages/mate.scm
+++ b/gnu/packages/mate.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -75,7 +76,7 @@
(define-public mate-common
(package
(name "mate-common")
- (version "1.22.0")
+ (version "1.24.1")
(source
(origin
(method url-fetch)
@@ -83,7 +84,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
- "11lwckndizawbq993ws8lqp59vsc873zri0m8s1i5zyc4qx9f69z"))))
+ "1dgp6k2l6dz7x2lnqk4y5xfkld376726hda3mrc777f821kk99nr"))))
(build-system gnu-build-system)
(home-page "https://mate-desktop.org/")
(synopsis "Common files for development of MATE packages")
@@ -264,7 +265,16 @@ desktop and the mate-about program.")
name "-" version ".tar.xz"))
(sha256
(base32
- "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d"))))
+ "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d"))
+ (modules '((guix build utils)))
+ ;; This is fixed by commit ea13e065 upstream. Remove this once 1.25.0
+ ;; is out.
+ (snippet
+ '(begin
+ (substitute* "data/Locations.xml.in"
+ (("Godthab")
+ "Nuuk"))
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@@ -1596,10 +1606,6 @@ used to bring up authentication dialogs.")
("shared-mime-info" ,shared-mime-info)
("yelp" ,yelp)
("zenity" ,zenity)))
- ;; FIXME: Propagating glib:bin fixes http://issues.guix.gnu.org/issue/38135
- ;; The proper fix is in core-updates. So we can remove this after next merge.
- (propagated-inputs
- `(("glib:bin" ,glib "bin")))
(synopsis "The MATE desktop environment")
(home-page "https://mate-desktop.org/")
(description
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 45d699e39c..0688650738 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4052,6 +4052,7 @@ evaluates expressions using the standard order of operations.")
(uri (git-reference
(url "https://github.com/xaos-project/XaoS")
(commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
"00110p5xscjsmn7avfqgydn656zbmdj3l3y2fpv9b4ihzpid8n7a"))))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index e9c6c94cef..8ac03ef6b9 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017, 2018, 2019 Clément Lassieur <clement@lassieur.org>
@@ -21,6 +21,8 @@
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
+;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -59,6 +61,7 @@
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@@ -152,14 +155,14 @@ keys, no previous conversation is compromised.")
(name "libsignal-protocol-c")
(version "2.3.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/WhisperSystems/"
- "libsignal-protocol-c/archive/v" version
- ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/WhisperSystems/libsignal-protocol-c")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0380hl6fw3ppf265fg897pyrpqygpx4m9j8ifq118bim8lq6z0pk"))))
+ "1qj2w4csy6j9jg1jy66n1qwysx7hgjywk4n35hlqcnh1kpa14k3p"))))
(arguments
`(;; Required for proper linking and for tests to run.
#:configure-flags '("-DBUILD_SHARED_LIBS=on" "-DBUILD_TESTING=1")))
@@ -568,7 +571,7 @@ compromised.")
(version "1.8.1")
(source (origin
(method url-fetch)
- (uri (string-append "http://znc.in/releases/archive/znc-"
+ (uri (string-append "https://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
@@ -602,7 +605,7 @@ compromised.")
("perl" ,perl)
("python" ,python)
("zlib" ,zlib)))
- (home-page "https://znc.in")
+ (home-page "https://wiki.znc.in/ZNC")
(synopsis "IRC network bouncer")
(description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can
detach the client from the actual IRC server, and also from selected channels.
@@ -1031,7 +1034,7 @@ and prevent message loss.")
(define-public c-toxcore
(package
(name "c-toxcore")
- (version "0.2.9")
+ (version "0.2.12")
(source
(origin
(method git-fetch)
@@ -1041,7 +1044,7 @@ and prevent message loss.")
(file-name (git-file-name name version))
(sha256
(base32
- "0aljr9hqybla6p61af6fdkv0x8gph7c2wacqqa9hq2z9w0p4fs5j"))))
+ "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp"))))
(arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now.
@@ -1120,14 +1123,15 @@ instant messenger with audio and video chat capabilities.")
(define-public qtox
(package
(name "qtox")
- (version "1.16.3")
+ (version "1.17.2")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/qTox/qTox/archive/v"
- version ".tar.gz"))
+ (method url-fetch/tarbomb)
+ (uri (string-append "https://github.com/qTox/qTox/releases"
+ "/download/v" version
+ "/v" version ".tar.gz"))
(sha256
(base32
- "10n3cgw9xaqin9la8wpd8v83bkjmimicgbyp5ninsdgsrgky4hmq"))
+ "0fmr3a0apil3rl32247qv2pqslp3knpbj5vhprdq0ixsvifrlhmh"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
@@ -1140,6 +1144,13 @@ instant messenger with audio and video chat capabilities.")
(("__TIME__") "\"\"")
(("TIMESTAMP") "\"\""))
#t))
+ (add-after 'unpack 'disable-network-tests
+ (lambda _
+ ;; These tests require network access.
+ (substitute* "cmake/Testing.cmake"
+ (("auto_test\\(core core\\)") "# auto_test(core core)")
+ (("auto_test\\(net bsu\\)") "# auto_test(net bsu)"))
+ #t))
;; Ensure that icons are found at runtime.
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -2177,4 +2188,84 @@ support for high performance Telegram Bot creation.")
(home-page "https://core.telegram.org/tdlib")
(license license:boost1.0))))
+(define-public purple-mm-sms
+ (package
+ (name "purple-mm-sms")
+ (version "0.1.4")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/purple-mm-sms.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1daf7zl8bhhm1szkgxflpqql69f2w9i9nlgf1n4p1nynxifz1bim"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ ;; Fix hardcoded paths
+ (list (string-append "PREFIX=" out)
+ (string-append "PLUGIN_DIR_PURPLE=" out "/lib/purple-2")
+ (string-append "DATA_ROOT_DIR_PURPLE=" out "/share")))
+ #:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure))))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("modem-manager" ,modem-manager)
+ ("pidgin" ,pidgin)))
+ (synopsis "Libpurple plugin for SMS via ModemManager")
+ (description "Plugin for libpurple to allow sending SMS using ModemManager.")
+ (home-page "https://source.puri.sm/Librem5/purple-mm-sms")
+ (license license:gpl2+)))
+
+(define-public chatty
+ (package
+ (name "chatty")
+ (version "0.1.10")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/chatty.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0czvqwjzsb0rvmgrmbh97m1b35rnwl41j7q32z4fcqb7bschibql"))))
+ (build-system meson-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'skip-updating-desktop-database
+ (lambda _
+ (substitute* "meson.build"
+ (("meson.add_install_script.*") ""))
+ #t)))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("feedbackd" ,feedbackd)
+ ("folks" ,folks)
+ ("libgcrypt" ,libgcrypt)
+ ("libgee" ,libgee)
+ ("libhandy" ,libhandy)
+ ("pidgin" ,pidgin)
+ ("purple-mm-sms" ,purple-mm-sms)
+ ("sqlite" ,sqlite)))
+ (propagated-inputs
+ `(("adwaita-icon-theme" ,adwaita-icon-theme)
+ ("evolution-data-server" ,evolution-data-server)))
+ (synopsis "Mobile client for XMPP and SMS messaging")
+ (description "Chatty is a chat program for XMPP and SMS. It works on mobile
+as well as on desktop platforms. It's based on libpurple and ModemManager.")
+ (home-page "https://source.puri.sm/Librem5/chatty")
+ (license license:gpl3+)))
+
;;; messaging.scm ends here
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 543345d9e0..74c898979e 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -299,14 +299,14 @@ interface for the Music Player Daemon.")
(name "sonata")
(version "1.7b1")
(source (origin
- (method url-fetch)
- (uri
- (string-append "https://github.com/multani/sonata/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/multani/sonata")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "07gq2nxqwxs0qyxjbay7k5j25zd386bn7wdr2dl1gk53diwnn7s0"))))
+ "1npbxlrg6k154qybfd250nq2p96kxdsdkj9wwnp93gljnii3g8wh"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 49f784f529..639cf6d5f2 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -503,7 +503,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(define-public hydrogen
(package
(name "hydrogen")
- (version "1.0.0-beta2")
+ (version "1.0.0-rc1")
(source
(origin
(method git-fetch)
@@ -512,7 +512,7 @@ settings (aliasing, linear interpolation and cubic interpolation).")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a"))))
+ (base32 "1ibbdzyk30nj83jrq7py78hwpjgy0lq7ji6gi2pdp1pqzz1mqp0v"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"
@@ -2182,7 +2182,7 @@ backends, including ALSA, OSS, Network and FluidSynth.")
("docbook-xsl" ,docbook-xsl)
("qttools" ,qttools)
("pkg-config" ,pkg-config)))
- (home-page "http://vmpk.sourceforge.net")
+ (home-page "https://vmpk.sourceforge.io/")
(synopsis "Virtual MIDI piano keyboard")
(description
"Virtual MIDI Piano Keyboard is a MIDI events generator and receiver. It
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 11344216aa..af49b25e7c 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -38,6 +38,7 @@
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,6 +64,7 @@
#: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 perl)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
@@ -85,6 +87,7 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dejagnu)
+ #:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
@@ -297,6 +300,34 @@ specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
residing in IPv4-only networks, even when they are behind a NAT device.")
(license license:gpl2+)))
+(define-public ndisc6
+ (package
+ (name "ndisc6")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.remlab.net/files/ndisc6/ndisc6-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "07swyar1hl83zxmd7fqwb2q0c0slvrswkcfp3nz5lknrk15dmcdb"))))
+ (build-system gnu-build-system)
+ (home-page "https://www.remlab.net/ndisc6/")
+ (synopsis "IPv6 diagnostic tools")
+ (description
+ "NDisc6 is a collection of tools for IPv6 networking diagnostics.
+It includes the following programs:
+
+@itemize
+@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.
+@item @command{rdisc6}: ICMPv6 Router Discovery tool.
+@item @command{tcptraceroute6}: IPv6 traceroute over TCP.
+@item @command{traceroute6}: IPv6 traceroute over UDP.
+@item @command{rdnssd}: Recursive DNS Servers discovery daemon.
+@end itemize")
+ ;; The user can choose version 2 or 3 of the GPL, not later versions.
+ (license (list license:gpl2 license:gpl3))))
+
(define-public socat
(package
(name "socat")
@@ -653,6 +684,76 @@ interfaces, with a simple and efficient view on the command line. It is
intended as a substitute for the PPPStatus and EthStatus projects.")
(license license:gpl2+)))
+(define-public iputils
+ (package
+ (name "iputils")
+ (version "20190709")
+ (home-page "https://github.com/iputils/iputils")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit (string-append "s" version))))
+ (file-name (git-file-name name version))
+ (patches (search-patches "iputils-libcap-compat.patch"))
+ (sha256
+ (base32
+ "04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags '("-DBUILD_RARPD=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-docbook-url
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((docbook-xsl (assoc-ref inputs "docbook-xsl"))
+ (uri (string-append docbook-xsl "/xml/xsl/docbook-xsl-"
+ ,(package-version docbook-xsl))))
+ (for-each
+ (lambda (file)
+ (substitute* file
+ (("http://docbook\\.sourceforge\\.net/release/xsl-ns/current")
+ uri)))
+ (cons "doc/meson.build"
+ (find-files "doc" "\\.xsl$")))
+ #t))))))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("pkg-config" ,pkg-config)
+ ("docbook-xsl" ,docbook-xsl)
+ ("docbook-xml" ,docbook-xml-5)
+ ("libxml2" ,libxml2) ;for XML_CATALOG_FILES
+ ("xsltproc" ,libxslt)))
+ (inputs
+ `(("libcap" ,libcap)
+ ("libidn2" ,libidn2)
+ ("openssl" ,openssl)))
+ (synopsis "Collection of network utilities")
+ (description
+ "This package contains a variety of tools for dealing with network
+configuration, troubleshooting, or servers. Utilities included are:
+
+@itemize @bullet
+@item @command{arping}: Ping hosts using the @dfn{Adress Resolution Protocol}.
+@item @command{clockdiff}: Compute time difference between network hosts
+using ICMP TSTAMP messages.
+@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.
+@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays
+and packet loss across network paths.
+@item @command{rarpd}: Answer RARP requests from clients.
+@item @command{rdisc}: Populate network routing tables with information from
+the ICMP router discovery protocol.
+@item @command{tftpd}: Trivial file transfer protocol server.
+@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and
+discover MTU along the way.
+@end itemize")
+ ;; The various utilities are covered by different licenses, see LICENSE
+ ;; for details.
+ (license (list license:gpl2+ ;arping, rarpd, tracepath
+ license:bsd-3 ;clockdiff, ninfod, ping, tftpd
+ (license:non-copyleft
+ "https://spdx.org/licenses/Rdisc.html"
+ "Sun Microsystems license, see rdisc.c for details")))))
+
(define-public nload
(package
(name "nload")
@@ -1343,13 +1444,13 @@ definitions and structure manipulators for Perl.")
(define-public perl-net-dns-resolver-programmable
(package
(name "perl-net-dns-resolver-programmable")
- (version "v0.003")
+ (version "0.003")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
- "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
+ "Net-DNS-Resolver-Programmable-v" version ".tar.gz"))
(sha256
(base32
"1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
@@ -1765,12 +1866,12 @@ gone wild and are suddenly taking up your bandwidth.")
(source
(origin
(method url-fetch)
- (uri (string-append "https://github.com/nzbget/nzbget/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (uri (string-append "https://github.com/nzbget/nzbget/releases"
+ "/download/v" version
+ "/nzbget-" version "-src.tar.gz"))
(sha256
(base32
- "0l3dzxz7d7jf6cyach41zirvsx1x0vs4nh053c0miycv7zjyrly7"))
+ "0lwd0pfrs4a5ms193hgz2qiyf7grrc925dw6y0nfc0gkp27db9b5"))
(modules '((guix build utils)))
(snippet
;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
@@ -1807,7 +1908,7 @@ procedure calls (RPCs).")
(define-public openvswitch
(package
(name "openvswitch")
- (version "2.12.0")
+ (version "2.13.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1815,7 +1916,7 @@ procedure calls (RPCs).")
version ".tar.gz"))
(sha256
(base32
- "1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k"))))
+ "0cd5vmfr6zwgcnkwys6rag6cmz68v0librpaplianv734xs74pyx"))))
(build-system gnu-build-system)
(arguments
'(;; FIXME: many tests fail with:
@@ -1842,11 +1943,9 @@ procedure calls (RPCs).")
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python-2)
+ ("python" ,python-wrapper)
;; for testing
("util-linux" ,util-linux)))
- (propagated-inputs
- `(("python-six" ,python2-six)))
(inputs
`(("libcap-ng" ,libcap-ng)
("openssl" ,openssl)))
@@ -1936,13 +2035,14 @@ enabled due to license conflicts between the BSD advertising clause and the GPL.
(version "3.0.19")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/ptrrkssn/pidentd/archive/"
- "v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ptrrkssn/pidentd")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0y3kd1bkydqkpc1qdff24yswysamsqivvadjy0468qri5730izgc"))))
+ "1k4rr0b4ygxssbnsykzjvz4hjhazzz4j5arlilyc1iq7b1wzsk7i"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; No tests are included
@@ -1951,7 +2051,7 @@ enabled due to license conflicts between the BSD advertising clause and the GPL.
(home-page "https://www.lysator.liu.se/~pen/pidentd/")
(synopsis "Small Ident Daemon")
(description
- "@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a
+ "@dfn{Pidentd} (Peter's Ident Daemon) is an identd, which implements a
identification server. Pidentd looks up specific TCP/IP connections and
returns the user name and other information about the connection.")
(license license:public-domain)))
@@ -2121,33 +2221,28 @@ interface and a programmable text output for scripting.")
(define-public libnet
(package
(name "libnet")
- (version "1.2-rc3")
+ (version "1.2")
(source
(origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/sam-github/libnet")
- (commit (string-append "libnet-" version))))
- (file-name (git-file-name name version))
+ (method url-fetch)
+ (uri (string-append "https://github.com/libnet/libnet/releases/download"
+ "/v" version "/libnet-" version ".tar.gz"))
(sha256
(base32
- "0cy8w4g5rv963v4p6iq3333kxgdddx2lywp70xf62553a25xhhs4"))))
+ "19ys9vxk6fg70yzzdxsphfr0rwzgxxhr9b3ykhpg7rfray0qd96a"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _ (chdir "libnet") #t))
(add-before 'build 'build-doc
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "-C" "doc" "doc"
make-flags))))))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("doxygen" ,doxygen)))
- (home-page "https://sourceforge.net/projects/libnet-dev/")
+ `(;; To build the documentation, Doxygen and Perl is required.
+ ("doxygen" ,doxygen)
+ ("perl" ,perl)))
+ (home-page "https://github.com/libnet/libnet")
(synopsis "Framework for low-level network packet construction")
(description
"Libnet provides a fairly portable framework for network packet
@@ -2937,7 +3032,7 @@ module @code{batman-adv}, for Layer 2.")
(define-public pagekite
(package
(name "pagekite")
- (version "1.5.0.200327")
+ (version "1.5.2.200603")
(source
(origin
(method git-fetch)
@@ -2946,7 +3041,7 @@ module @code{batman-adv}, for Layer 2.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1vw7kjwxqd3qvm7kpxgjzl6797y0i1f16yfkfad84qpx2ij0gvdm"))))
+ (base32 "08rcyr54dssnpand6y26f8x9cjmd91hr44my08kxw70s5iqiwizv"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -3192,3 +3287,49 @@ CDP. The goal of LLDP is to provide an inter-vendor compatible mechanism to
deliver Link-Layer notifications to adjacent network devices. @code{lldpd} is
an implementation of LLDP. It also supports some proprietary protocols.")
(license license:isc)))
+
+(define-public hashcash
+ (package
+ (name "hashcash")
+ (version "1.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.hashcash.org/source/hashcash-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "15kqaimwb2y8wvzpn73021bvay9mz1gqqfc40gk4hj6f84nz34h1"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ ;; No tests available.
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((outdir (assoc-ref outputs "out"))
+ (bindir (string-append outdir "/bin"))
+ (mandir (string-append outdir "/share/man/man1"))
+ (docdir (string-append outdir "/share/doc/hashcash-" ,version)))
+ ;; Install manually, as we don't need the `sha1' binary
+ (install-file "hashcash" bindir)
+ (install-file "hashcash.1" mandir)
+ (install-file "README" docdir)
+ (install-file "LICENSE" docdir)
+ (install-file "CHANGELOG" docdir)
+ #t))))))
+ (home-page "https://www.hashcash.org/")
+ (synopsis "Denial-of-service countermeasure")
+ (description "Hashcash is a proof-of-work algorithm, which has been used
+as a denial-of-service countermeasure technique in a number of systems.
+
+A hashcash stamp constitutes a proof-of-work which takes a parametrizable
+amount of work to compute for the sender. The recipient can verify received
+hashcash stamps efficiently.
+
+This package contains a command-line tool for computing and verifying hashcash
+stamps.")
+ (license license:public-domain)))
diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index d9ba2aee2d..5792c1f465 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -2940,13 +2940,14 @@ and 4 (random based) according to RFC 4122.")
(name "ocaml4.07-piqi")
(version "0.7.7")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/alavrik/piqi-ocaml/"
- "archive/v" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alavrik/piqi-ocaml")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1l0b4saxmwqgw9mb10mwrz31lvpj3l0abh3cwarqp0x4vdrzshbh"))))
+ "1913jpsb8mvqi8609j4g4sm5jhg50dq0xqxgy8nmvknfryyc89nm"))))
(build-system ocaml-build-system)
(arguments
`(#:make-flags
@@ -2955,6 +2956,10 @@ and 4 (random based) according to RFC 4122.")
"/bin/sh"))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-files-writable
+ (lambda _
+ (for-each make-file-writable (find-files "."))
+ #t))
(delete 'configure))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
diff --git a/gnu/packages/openkinect.scm b/gnu/packages/openkinect.scm
index 536eb5a6fd..0cdecca3ab 100644
--- a/gnu/packages/openkinect.scm
+++ b/gnu/packages/openkinect.scm
@@ -39,6 +39,7 @@
(uri (git-reference
(url "https://github.com/OpenKinect/libfreenect")
(commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
"0was1va167rqshmpn382h36yyprpfi9cwillb6ylppmnfdrfrhrr"))))
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index c1e6657dff..bfecf110ca 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -118,8 +118,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.1.0")
- (commit "141b5c162048f5cb52e8c90ff7c16a2e98babcfb")
- (revision 10))
+ (commit "c00564192a9924ab2218c243342963aba89d67d1")
+ (revision 12))
(package
(name "guix")
@@ -135,7 +135,7 @@
(commit commit)))
(sha256
(base32
- "1j3vag994kj05b09a7w4lyas991a19hbbslcm9xvn5k2ilf4qskz"))
+ "008ywpdkc5f2jh25x6rr9glzvq4a6qih7v73w5dbxscpddx5c5g2"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@@ -319,7 +319,7 @@ $(prefix)/etc/init.d\n")))
;; Guile libraries are needed here for
;; cross-compilation.
- ("guile" ,guile-3.0)
+ ("guile" ,guile-3.0-latest) ;for faster builds
("gnutls" ,gnutls)
("guile-gcrypt" ,guile-gcrypt)
("guile-json" ,guile-json-4)
@@ -346,7 +346,7 @@ $(prefix)/etc/init.d\n")))
("sqlite" ,sqlite)
("libgcrypt" ,libgcrypt)
- ("guile" ,guile-3.0)
+ ("guile" ,guile-3.0-latest)
;; Some of the tests use "unshare" when it is available.
("util-linux" ,util-linux)
@@ -542,15 +542,30 @@ out) and returning a package that uses that as its 'source'."
(define-public nix
(package
(name "nix")
- (version "2.3.5")
+ (version "2.3.6")
(source (origin
(method url-fetch)
(uri (string-append "http://nixos.org/releases/nix/nix-"
version "/nix-" version ".tar.xz"))
(sha256
(base32
- "1hbqsrp1ii2sfq8x2mahjrl2182qck76n8blrl1jfz3xq99m6i15"))))
+ "128xf2as0y7hr28x575pbf9lkjpxr9hsxknbavv4p7ywr4lhbs85"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--sysconfdir=/etc")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ ;; Don't try & fail to create subdirectories in /etc, but keep them
+ ;; in the output as examples.
+ (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (etc (string-append out "/etc")))
+ (apply invoke "make" "install"
+ (string-append "sysconfdir=" etc)
+ (string-append "profiledir=" etc "/profile.d")
+ make-flags)))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("boost" ,boost)
("brotli" ,brotli)
@@ -882,7 +897,7 @@ written entirely in Python.")))
("texinfo" ,texinfo)
("graphviz" ,graphviz)))
(inputs
- `(("guile" ,guile-3.0)))
+ `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
(propagated-inputs
`(("guix" ,guix)
("guile-commonmark" ,guile-commonmark)
@@ -980,7 +995,7 @@ environments.")
("python-ipykernel" ,python-ipykernel)))
(inputs
`(("guix" ,guix)
- ("guile" ,guile-3.0)))
+ ("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
(propagated-inputs
`(("guile-json" ,guile-json-4)
("guile-simple-zmq" ,guile-simple-zmq)
@@ -1137,7 +1152,9 @@ the boot loader configuration.")
(string-append "--with-system-bubblewrap="
(assoc-ref %build-inputs "bubblewrap")
"/bin/bwrap")
- "--with-system-dbus-proxy")
+ (string-append "--with-system-dbus-proxy="
+ (assoc-ref %build-inputs "xdg-dbus-proxy")
+ "/bin/xdg-dbus-proxy"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
diff --git a/gnu/packages/pantheon.scm b/gnu/packages/pantheon.scm
index 72910e5470..036050d1bf 100644
--- a/gnu/packages/pantheon.scm
+++ b/gnu/packages/pantheon.scm
@@ -18,11 +18,15 @@
(define-module (gnu packages pantheon)
#:use-module (gnu packages cmake)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages package-management)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system meson)
#:use-module (guix git-download)
@@ -107,3 +111,64 @@ in apps built for the Pantheon desktop.")
arithmetic. It is the default calculator application in the Pantheon
desktop.")
(license license:gpl3)))
+
+(define-public sideload
+ (package
+ (name "sideload")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/elementary/sideload.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:configure-flags (list (string-append "-Dflatpak="
+ (assoc-ref %build-inputs "flatpak")
+ "/include"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'set-environment-variables
+ (lambda _
+ ;; Disable compiling schemas and updating desktop databases
+ (setenv "DESTDIR" "/")
+ #t))
+ (add-after 'install 'install-symlinks
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/io.elementary.sideload"))
+ (link (string-append out "/bin/sideload")))
+ (symlink bin link)
+ #t))))))
+ (inputs
+ `(("flatpak" ,flatpak)
+ ("glib" ,glib)
+ ("granite" ,granite)
+ ("gtk" ,gtk+)
+ ("hicolor-icon-theme" ,hicolor-icon-theme)
+ ("libgee" ,libgee)
+ ("libostree" ,libostree)
+ ("libxml2" ,libxml2)))
+ (propagated-inputs
+ ;; Sideload needs these in the environment to fetch data securely from
+ ;; Flatpak remotes.
+ `(("gnupg" ,gnupg)
+ ("gpgme" ,gpgme)))
+ (native-inputs
+ `(("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (home-page "https://github.com/elementary/sideload")
+ (synopsis "Graphical application to side-load Flatpaks")
+ (description "Sideload handles flatpakref files, like those you might find
+on Flathub or another third-party website providing a Flatpak app for
+download.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
new file mode 100644
index 0000000000..33a68a1dd8
--- /dev/null
+++ b/gnu/packages/patches/alsa-modular-synth-fix-vocoder.patch
@@ -0,0 +1,522 @@
+This patch was taken from Debian.
+https://salsa.debian.org/multimedia-team/ams/-/raw/master/debian/patches/0007-Make-vocoder-module-compatible-to-C-11.patch
+
+From: Guido Scholz <gscholz@users.sourceforge.net>
+Date: Tue, 6 Nov 2018 21:55:38 +0100
+Subject: Make vocoder module compatible to C++11
+
+---
+ src/m_vocoder.cpp | 218 +++++++++++++++++++++++++++---------------------------
+ src/m_vocoder.h | 31 ++++----
+ 2 files changed, 124 insertions(+), 125 deletions(-)
+
+diff --git a/src/m_vocoder.cpp b/src/m_vocoder.cpp
+index 572cf65..371e2cf 100644
+--- a/src/m_vocoder.cpp
++++ b/src/m_vocoder.cpp
+@@ -18,10 +18,6 @@
+ along with ams. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <unistd.h>
+-#include <math.h>
+ #include <qwidget.h>
+ #include <qstring.h>
+ #include <qslider.h>
+@@ -36,16 +32,13 @@
+ #include "synthdata.h"
+ #include "midicheckbox.h"
+ #include "midislider.h"
+-// For FFTW to be happy we must include complex.h before fftw3.h
+-#include <complex.h>
+-#include <fftw3.h>
+ #include "port.h"
+ #include "m_vocoder.h"
+
+ // Window function - One way to make the FFT behave
+ // and give more continuous results over edge steps.
+
+-float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
++float M_vocoder::windowcurve (int windowfunc, unsigned int len, int elem, float alpha)
+ {
+ float out;
+ out = 1.0;
+@@ -98,6 +91,7 @@ float M_vocoder::windowcurve (int windowfunc, int len, int elem, float alpha)
+ return (out);
+ }
+
++
+ M_vocoder::M_vocoder(QWidget* parent, int id)
+ : Module(M_type_vocoder, id, 5, parent, tr("FFT Vocoder"))
+ {
+@@ -160,6 +154,7 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
+ modbuf[l1] = (float *)malloc( fftsize * sizeof(float));
+ memset( modbuf[l1], 0, fftsize * sizeof(float));
+ }
++
+ carrbuf = (float **)malloc(synthdata->poly * sizeof(float *));
+ for (l1 = 0; l1 < synthdata->poly; l1++) {
+ carrbuf[l1] = (float *)malloc( fftsize * sizeof(float));
+@@ -175,38 +170,48 @@ M_vocoder::M_vocoder(QWidget* parent, int id)
+ window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
+
+ // FFTW setup stuff
+- carrinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- carrinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- carroutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- carroutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- modinforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- modinbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- modoutforward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- modoutbackward = (fftw_complex *) fftw_malloc (sizeof (fftw_complex)
+- * fftsize);
+- fftw_set_timelimit (5.0);
+- planmodforward = fftw_plan_dft_1d (fftsize, modinforward,
+- modoutforward, FFTW_FORWARD, FFTW_MEASURE);
+- planmodbackward = fftw_plan_dft_1d (fftsize, modinbackward,
+- modoutbackward, FFTW_BACKWARD, FFTW_MEASURE);
+- plancarrforward = fftw_plan_dft_1d (fftsize, carrinforward,
+- carroutforward, FFTW_FORWARD, FFTW_MEASURE);
+- plancarrbackward = fftw_plan_dft_1d (fftsize, carrinbackward,
+- carroutbackward, FFTW_BACKWARD, FFTW_MEASURE);
++ carrinforward.reserve(fftsize);
++ carrinbackward.reserve(fftsize);
++ carroutforward.reserve(fftsize);
++ carroutbackward.reserve(fftsize);
++ modinforward.reserve(fftsize);
++ modinbackward.reserve(fftsize);
++ modoutforward.reserve(fftsize);
++ modoutbackward.reserve(fftsize);
++
++ fftw_set_timelimit(5.0);
++
++ planmodforward = fftw_plan_dft_1d(fftsize,
++ reinterpret_cast<fftw_complex*> (modinforward.data()),
++ reinterpret_cast<fftw_complex*> (modoutforward.data()),
++ FFTW_FORWARD, FFTW_MEASURE);
++
++ planmodbackward = fftw_plan_dft_1d(fftsize,
++ reinterpret_cast<fftw_complex*> (modinbackward.data()),
++ reinterpret_cast<fftw_complex*> (modoutbackward.data()),
++ FFTW_BACKWARD, FFTW_MEASURE);
++
++ plancarrforward = fftw_plan_dft_1d(fftsize,
++ reinterpret_cast<fftw_complex*> (carrinforward.data()),
++ reinterpret_cast<fftw_complex*> (carroutforward.data()),
++ FFTW_FORWARD, FFTW_MEASURE);
++
++ plancarrbackward = fftw_plan_dft_1d(fftsize,
++ reinterpret_cast<fftw_complex*> (carrinbackward.data()),
++ reinterpret_cast<fftw_complex*> (carroutbackward.data()),
++ FFTW_BACKWARD, FFTW_MEASURE);
+ }
+
++
+ M_vocoder::~M_vocoder() {
+
+- int l1;
++ // Clean up FFTW stuff.
++ fftw_destroy_plan (plancarrforward);
++ fftw_destroy_plan (plancarrbackward);
++ fftw_destroy_plan (planmodforward);
++ fftw_destroy_plan (planmodbackward);
+
+- for (l1 = 0; l1 < synthdata->poly; l1++) {
++ for (int l1 = 0; l1 < synthdata->poly; l1++) {
+ free(modbuf[l1]);
+ free(carrbuf[l1]);
+ }
+@@ -215,29 +220,14 @@ M_vocoder::~M_vocoder() {
+ free (window);
+ free (modmap);
+ free (armodmap);
+-
+- //#define FFTW_CLEANUP
+-#ifdef FFTW_CLEANUP
+- // Clean up FFTW stuff.
+- fftw_destroy_plan (plancarrforward);
+- fftw_destroy_plan (plancarrbackward);
+- fftw_destroy_plan (planmodforward);
+- fftw_destroy_plan (planmodbackward);
+- fftw_free (carrinforward);
+- fftw_free (carrinbackward);
+- fftw_free (carroutforward);
+- fftw_free (carroutbackward);
+- fftw_free (modinforward);
+- fftw_free (modinbackward);
+- fftw_free (modoutforward);
+- fftw_free (modoutbackward);
+-#endif
+ }
+
++
+ void M_vocoder::generateCycle() {
+
+ int l1; // l1 indexes along polyphony.
+ unsigned int l2; // l2 indexes along the cycle
++ const std::complex<double> I(0.0, 1.0);
+
+ inModulator = port_M_modulator->getinputdata();
+ inPitchShift = port_M_pitchshift->getinputdata();
+@@ -272,7 +262,7 @@ void M_vocoder::generateCycle() {
+ // Did the user change the FFT windowing function?
+ if (myFFTWindowFunc != whichwin) {
+ whichwin = myFFTWindowFunc;
+- for (l2 = 0; l2 < (unsigned int) fftsize; l2++)
++ for (l2 = 0; l2 < fftsize; l2++)
+ window[l2] = windowcurve (whichwin, fftsize, l2, 0.25);
+ }
+
+@@ -294,7 +284,7 @@ void M_vocoder::generateCycle() {
+ }
+
+ // window the input buffer to modinforward
+- for (l2 = 0; l2 < (unsigned int)fftsize ; l2++) {
++ for (l2 = 0; l2 < fftsize ; l2++) {
+ modinforward[l2] = modbuf[l1][l2] * window[l2];
+ }
+
+@@ -310,17 +300,18 @@ void M_vocoder::generateCycle() {
+ fftw_execute (planmodforward);
+
+ // copy the FFT of the modulator to modinbackward.
+- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
+- modinbackward[l2] = modoutforward[l2];
++ //for (l2 = 0; l2 < fftsize; l2++)
++ // modinbackward[l2] = modoutforward[l2];
++ modinbackward = modoutforward;
+
+ // Send the FFT of the modulator to the output for giggles
+ // and get an approximation of the first harmonic too.
+ float firstharmonicval;
+ int firstharmonicindex;
+ firstharmonicval = 0.0;
+- firstharmonicindex = 1.0;
++ firstharmonicindex = 1;
+ for (l2 = 1; l2 < (unsigned int) synthdata->cyclesize; l2++) {
+- data[2][l1][l2] = logf(fabs (creal (modoutforward[l2])) + 1.0);
++ data[2][l1][l2] = logf(fabs(modoutforward[l2].real()) + 1.0);
+ if (data[2][l1][l2] > firstharmonicval) {
+ firstharmonicindex = l2;
+ firstharmonicval = data[2][l1][l2] ;
+@@ -333,35 +324,38 @@ void M_vocoder::generateCycle() {
+
+ // intermediate frequency-domain munging of modulator
+ // Frequency (additive, Bode-style) shifting first
+- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
+- modinbackward[l2] = 0;
++ for (l2 = 0; l2 < fftsize; l2++)
++ modinbackward[l2] = 0.0;
++
+ int lclfrq;
+- for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
++ for (l2 = 0; l2 < fftsize/2; l2++) {
+ // positive frequencies (first half) of the FFT result
+ lclfrq = l2 + (int)freqshift + vcfreqshift * inFreqShift[l1][0];
+ lclfrq = lclfrq > 0 ? lclfrq : 0;
+- lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
++ lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
+ modinbackward [lclfrq] = modoutforward [l2];
+ // Negative frequencies (second half of the fft result)
+- modinbackward [fftsize - lclfrq] = modoutforward [ fftsize - l2];
++ modinbackward [fftsize - lclfrq] = modoutforward [fftsize - l2];
+ }
+
+- // Pitchshifting (multiplicative, harmonic-retaining) shifting.
+- // Note that we reuse the modoutforward as working space
+- for (l2 = 0; l2 < (unsigned int) fftsize; l2++) {
+- modoutforward[l2] = modinbackward[l2];
+- };
+- for (l2 = 0; l2 < (unsigned int)fftsize; l2++)
+- modinbackward[l2] = 0;
++ // Pitchshifting (multiplicative, harmonic-retaining) shifting.
++ // Note that we reuse the modoutforward as working space
++ //for (l2 = 0; l2 < fftsize; l2++) {
++ // modoutforward[l2] = modinbackward[l2];
++ //};
++ modoutforward = modinbackward;
++
++ for (l2 = 0; l2 < fftsize; l2++)
++ modinbackward[l2] = 0.0;
+
+ float psmod, psfactor;
+ psmod = (pitchshift + vcpitch * inPitchShift[l1][0]);
+ psfactor = pow (2.0, psmod);
+- for (l2 = 0; l2 < (unsigned int)fftsize/2; l2++) {
++ for (l2 = 0; l2 < fftsize/2; l2++) {
+ // positive frequencies (first half) of the FFT result
+ lclfrq = l2 * psfactor;
+ lclfrq = lclfrq > 0 ? lclfrq : 0;
+- lclfrq = lclfrq < ((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
++ lclfrq = lclfrq < (int)((fftsize/2)-1) ? lclfrq : (fftsize/2)-1;
+ // Old way to pitch shift: just move the bucket. But this puts
+ // nulls wherever the energy is split between two buckets with
+ // a 180 degree phase difference.
+@@ -375,12 +369,12 @@ void M_vocoder::generateCycle() {
+ // Better way: move freq. bin, multiply angle by octave motion.
+ //
+ modinbackward[lclfrq] +=
+- cabs (modoutforward [l2])
+- * cexp (I * ( carg (modoutforward [l2])
++ std::abs(modoutforward[l2])
++ * std::exp (I * ( std::arg (modoutforward [l2])
+ + (l2 * phaseshift * psfactor)));
+ modinbackward[fftsize - lclfrq] +=
+- cabs (modoutforward [ fftsize - l2])
+- * cexp (I * ( carg (modoutforward [ fftsize - l2])
++ std::abs (modoutforward [ fftsize - l2])
++ * std::exp (I * ( std::arg (modoutforward [ fftsize - l2])
+ + (l2 * phaseshift * psfactor)));
+ };
+ }
+@@ -389,9 +383,9 @@ void M_vocoder::generateCycle() {
+ fftw_execute (planmodbackward);
+
+ // renormalize the time-domain modulator output
+- for (l2 = 0; l2 < (unsigned)fftsize; l2++) {
+- modoutbackward [l2] = modoutbackward[l2] / float (fftsize) ;
+- modoutbackward [l2] = modoutbackward[l2] / window[l2];
++ for (l2 = 0; l2 < fftsize; l2++) {
++ modoutbackward [l2] = modoutbackward[l2] / (double) fftsize;
++ modoutbackward [l2] = modoutbackward[l2] / (double) window[l2];
+ }
+
+ unsigned int i;
+@@ -400,13 +394,11 @@ void M_vocoder::generateCycle() {
+
+
+ // Splicing the new output to the results
+- if (dynsplice == 0.0)
+- {
++ if (dynsplice == 0.0) {
+ // output it as the altered modulator.
+ for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
+- data[0][l1][l2] = creal ( modoutbackward [l2 +
+- fftsize/2 -
+- synthdata->cyclesize/2 ]);
++ data[0][l1][l2] =
++ modoutbackward[l2 + fftsize/2 - synthdata->cyclesize/2].real();
+ }
+ clomatch_index = fftsize - synthdata->cyclesize;
+ }
+@@ -421,18 +413,21 @@ void M_vocoder::generateCycle() {
+ float tval, dtval;
+ int searchstart;
+ float spliceval, dspliceval;
+- searchstart = fftsize/2 - synthdata->cyclesize;
+- if (searchstart < 1) searchstart = 1;
+- clomatch_index = searchstart;
++
++ searchstart = fftsize/2 - synthdata->cyclesize;
++ if (searchstart < 1)
++ searchstart = 1;
++
++ clomatch_index = searchstart;
+ spliceval = data[0][l1][synthdata->cyclesize - 1];
+ dspliceval = spliceval - data[0][l1][synthdata->cyclesize - 2];
+- clov_sofar= fabs(creal(modoutbackward[clomatch_index])-spliceval );
++ clov_sofar= fabs(modoutbackward[clomatch_index].real()-spliceval);
+ for (l2 = searchstart;
+ l2 < (searchstart + synthdata->cyclesize);
+ l2++)
+ {
+- tval = creal (modoutbackward[l2]);
+- dtval = tval - creal (modoutbackward [l2-1]);
++ tval = modoutbackward[l2].real();
++ dtval = tval - modoutbackward [l2-1].real();
+ if (
+ ((fabs (tval - spliceval )) < clov_sofar )
+ && ((dtval * dspliceval ) >= 0)
+@@ -445,15 +440,15 @@ void M_vocoder::generateCycle() {
+ };
+ // fprintf (stderr, "%d %f %f ",
+ // clomatch_index, clov_sofar, clodv_sofar);
+-
++
+ // What's our residual error, so that we can splice this
+ // with minimal "click"?
+- residual = + spliceval - creal( modoutbackward[clomatch_index]);
++ residual = + spliceval - modoutbackward[clomatch_index].real();
+
+ // Move our wave, with the best match so far established, to
+ // the output buffer area.
+ for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
+- data[0][l1][l2] = creal ( modoutbackward [ clomatch_index + l2])
++ data[0][l1][l2] = modoutbackward[clomatch_index + l2].real()
+ + ((1.0 - (float(l2) / float(synthdata->cyclesize))) * residual);
+ };
+
+@@ -466,17 +461,18 @@ void M_vocoder::generateCycle() {
+ for (l2 = 0; l2 < fftsize - synthdata->cyclesize; l2++) {
+ carrbuf [l1][l2] = carrbuf [l1][l2 + synthdata->cyclesize];
+ }
++
+ for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
+ carrbuf [l1][l2 + fftsize - synthdata->cyclesize] = inCarrier[l1][l2];
+ }
+
+- for (l2 = 0; l2 < unsigned (fftsize); l2++) {
++ for (l2 = 0; l2 < fftsize; l2++) {
+ carrinforward [l2] = carrbuf [l1][l2] * window[l2];
+ }
+
+ fftw_execute (plancarrforward);
+
+- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
++ for (l2 = 0; l2 < fftsize; l2++) {
+ carrinbackward[l2] = carroutforward[l2];
+ };
+
+@@ -486,34 +482,37 @@ void M_vocoder::generateCycle() {
+ // Group the modulator into channels, and multipy the channels
+ // over the carrier.
+
+- int localchannels;
+- localchannels = channels + vcchannels * inChannels[l1][0];
+- if (localchannels < 1) localchannels = 1;
+- if (localchannels > fftsize - 1) localchannels = fftsize - 1;
+- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
++ unsigned int localchannels = channels + vcchannels * inChannels[l1][0];
++ if (localchannels < 1)
++ localchannels = 1;
++
++ if (localchannels > fftsize - 1)
++ localchannels = fftsize - 1;
++
++ for (l2 = 0; l2 < fftsize; l2++) {
+ modmap[l2] = 0;
+ // initial conditions...
+ if (l2 == 0)
+ for (i = 0; i < channels; i++)
+- modmap[l2] += cabs (modoutforward[l2 + i]);
++ modmap[l2] += std::abs(modoutforward[l2 + i]);
+ else
+ modmap [l2] = modmap[l2 - 1];
+
+ // add the heads, subtract the tails
+ i = l2 + channels;
+- if (l2 < (unsigned)fftsize - 2)
+- modmap[l2] += cabs( modoutforward [i] );
++ if (l2 < fftsize - 2)
++ modmap[l2] += std::abs(modoutforward[i]);
+ i = l2 - channels;
+ if (l2 >= channels)
+- modmap[l2] -= cabs( modoutforward [i] );
++ modmap[l2] -= std::abs(modoutforward[i]);
+ }
+
+ // Normalize the modmap
+- for (l2 = 0; l2 < (unsigned) fftsize; l2++)
++ for (l2 = 0; l2 < fftsize; l2++)
+ modmap[l2] = modmap[l2] / localchannels;
+
+ // Do attack/release
+- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
++ for (l2 = 0; l2 < fftsize; l2++) {
+ if (modmap [l2] > armodmap[l2])
+ armodmap [l2] += (1 - attack) * (modmap[l2] - armodmap[l2]);
+ if (modmap [l2] < armodmap[l2])
+@@ -521,8 +520,8 @@ void M_vocoder::generateCycle() {
+ }
+
+ // multiply the carrier by the modulation map.
+- for (l2 = 0; l2 < (unsigned) fftsize; l2++) {
+- carrinbackward[l2] = carroutforward[l2] * armodmap[l2];
++ for (l2 = 0; l2 < fftsize; l2++) {
++ carrinbackward[l2] = carroutforward[l2] * (double) armodmap[l2];
+ }
+
+ // reverse transform to final output, and renormalize by 1/fftsize.
+@@ -532,8 +531,7 @@ void M_vocoder::generateCycle() {
+ for (l2 = 0; l2 < synthdata->cyclesize; l2++) {
+ offset = l2 + (fftsize/2) - (synthdata->cyclesize / 2);
+ data[1][l1][l2]=
+- (creal(carroutbackward[offset]/window[offset])) / (fftsize * 100);
++ (carroutbackward[offset].real()/window[offset]) / (fftsize * 100);
+ };
+ };
+ }
+-
+diff --git a/src/m_vocoder.h b/src/m_vocoder.h
+index 38eac58..32c8521 100644
+--- a/src/m_vocoder.h
++++ b/src/m_vocoder.h
+@@ -1,4 +1,4 @@
+-/*
++/*
+ Vocoder - derived from m_delay.cpp
+
+ Copyright (C) 2011 Bill Yerazunis <yerazunis@yahoo.com>
+@@ -22,7 +22,9 @@
+ #define M_VOCODER_H
+
+ #include "module.h"
+-#include <complex.h>
++
++#include <vector>
++#include <ccomplex>
+ #include <fftw3.h>
+
+ #define MODULE_VOCODER_WIDTH 105
+@@ -30,7 +32,7 @@
+
+ class M_vocoder : public Module
+ {
+- Q_OBJECT
++ Q_OBJECT
+
+ float channels, vcchannels;
+ float attack, release;
+@@ -42,21 +44,20 @@ class M_vocoder : public Module
+
+ Port *port_M_modulator, *port_M_pitchshift, *port_M_freqshift,
+ *port_M_channels, *port_M_carrier;
++
+ Port *port_modfft_out, *port_firstharmonic_out,
+- *port_altmodulator_out,
+- *port_vocoder_out;
++ *port_altmodulator_out, *port_vocoder_out;
+
+- fftw_plan planmodforward, planmodbackward,
++ fftw_plan planmodforward, planmodbackward,
+ plancarrforward, plancarrbackward;
+
+- fftw_complex *carrinforward, *carroutforward,
+- *carrinbackward, *carroutbackward,
+- *modinforward, *modoutforward,
+- *modinbackward, *modoutbackward;
++ std::vector<std::complex<double>> carrinforward, carroutforward,
++ carrinbackward, carroutbackward,
++ modinforward, modoutforward,
++ modinbackward, modoutbackward;
+
+- public:
+- int fftsize;
+- float **inModulator, **inPitchShift, **inFreqShift,
++ unsigned int fftsize;
++ float **inModulator, **inPitchShift, **inFreqShift,
+ **inChannels, **inCarrier;
+ // the previous time-based samples, for overlapping
+ float **modbuf, **carrbuf;
+@@ -68,10 +69,10 @@ class M_vocoder : public Module
+ float *armodmap;
+
+ public:
+- float windowcurve (int windowfunc, int len, int elem, float alpha );
++ float windowcurve (int windowfunc, unsigned int len, int elem, float alpha );
+ M_vocoder(QWidget* parent=0, int id = 0);
+ ~M_vocoder();
+ void generateCycle();
+ };
+-
++
+ #endif
diff --git a/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
new file mode 100644
index 0000000000..1518df067f
--- /dev/null
+++ b/gnu/packages/patches/busybox-1.31.1-fix-build-with-glibc-2.31.patch
@@ -0,0 +1,68 @@
+See: https://bugs.gentoo.org/708350
+Author: Patrick McLean <patrick.mclean@sony.com>
+Date: 2020-02-06 23:06:22 +0000
+diff --git a/coreutils/date.c b/coreutils/date.c
+index 3414d38ae..4ade6abb4 100644
+--- a/coreutils/date.c
++++ b/coreutils/date.c
+@@ -279,6 +279,9 @@ int date_main(int argc UNUSED_PARAM, char **argv)
+ time(&ts.tv_sec);
+ #endif
+ }
++#if !ENABLE_FEATURE_DATE_NANO
++ ts.tv_nsec = 0;
++#endif
+ localtime_r(&ts.tv_sec, &tm_time);
+
+ /* If date string is given, update tm_time, and maybe set date */
+@@ -301,9 +304,10 @@ int date_main(int argc UNUSED_PARAM, char **argv)
+ if (date_str[0] != '@')
+ tm_time.tm_isdst = -1;
+ ts.tv_sec = validate_tm_time(date_str, &tm_time);
++ ts.tv_nsec = 0;
+
+ /* if setting time, set it */
+- if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
++ if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
+ bb_perror_msg("can't set date");
+ }
+ }
+diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
+index 87cf59b3d..dc40d9155 100644
+--- a/libbb/missing_syscalls.c
++++ b/libbb/missing_syscalls.c
+@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
+ return syscall(__NR_getsid, pid);
+ }
+
+-int stime(const time_t *t)
+-{
+- struct timeval tv;
+- tv.tv_sec = *t;
+- tv.tv_usec = 0;
+- return settimeofday(&tv, NULL);
+-}
+-
+ int sethostname(const char *name, size_t len)
+ {
+ return syscall(__NR_sethostname, name, len);
+diff --git a/util-linux/rdate.c b/util-linux/rdate.c
+index 70f829e7f..878375d78 100644
+--- a/util-linux/rdate.c
++++ b/util-linux/rdate.c
+@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
+ if (!(flags & 2)) { /* no -p (-s may be present) */
+ if (time(NULL) == remote_time)
+ bb_error_msg("current time matches remote time");
+- else
+- if (stime(&remote_time) < 0)
++ else {
++ struct timespec ts;
++ ts.tv_sec = remote_time;
++ ts.tv_nsec = 0;
++ if (clock_settime(CLOCK_REALTIME, &ts) < 0)
+ bb_perror_msg_and_die("can't set time of day");
++ }
+ }
+
+ if (flags != 1) /* not lone -s */
diff --git a/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
new file mode 100644
index 0000000000..ab66e1b389
--- /dev/null
+++ b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
@@ -0,0 +1,86 @@
+From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
+From: Joseph LaFreniere <joseph@lafreniere.xyz>
+Date: Fri, 12 Jul 2019 12:43:46 -0500
+Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
+
+---
+ hsettings.el | 25 +++++++++++++++++++++++++
+ hyperbole.el | 26 --------------------------
+ 2 files changed, 25 insertions(+), 26 deletions(-)
+
+diff --git a/hsettings.el b/hsettings.el
+index 6cdd1b8..9632067 100644
+--- a/hsettings.el
++++ b/hsettings.el
+@@ -163,6 +163,31 @@ package to display search results."
+ search-term)))
+ (user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
+
++;;;###autoload
++(defun hyperbole-toggle-messaging (&optional arg)
++ "Toggle Hyperbole support for explicit buttons in mail and news buffers.
++Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
++adds hooks (nil value) or removes them (t value).
++
++With optional prefix ARG > 0, enables support. If ARG <= 0,
++disables/inhibits support."
++ (interactive "P")
++ (setq inhibit-hyperbole-messaging (if (null arg)
++ (not inhibit-hyperbole-messaging)
++ (<= (prefix-numeric-value arg) 0)))
++ (if inhibit-hyperbole-messaging
++ (var:remove-all)
++ (var:append-all)
++ ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
++ ;; was nil.
++ (cond ((boundp 'hyperbole-loading))
++ ((not after-init-time)
++ (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
++ (t (load "hyperbole"))))
++ (if (called-interactively-p 'interactive)
++ (message "Hyperbole messaging button support is %s"
++ (if inhibit-hyperbole-messaging "disabled" "enabled"))))
++
+ (defcustom inhibit-hyperbole-messaging t
+ "*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
+ The default of t means disable such support (work remains to
+diff --git a/hyperbole.el b/hyperbole.el
+index 4aa427d..872dbaf 100644
+--- a/hyperbole.el
++++ b/hyperbole.el
+@@ -121,32 +121,6 @@
+ t)))
+ (error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
+
+-;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
+-;;;###autoload
+-(defun hyperbole-toggle-messaging (&optional arg)
+- "Toggle Hyperbole support for explicit buttons in mail and news buffers.
+-Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
+-adds hooks (nil value) or removes them (t value).
+-
+-With optional prefix ARG > 0, enables support. If ARG <= 0,
+-disables/inhibits support."
+- (interactive "P")
+- (setq inhibit-hyperbole-messaging (if (null arg)
+- (not inhibit-hyperbole-messaging)
+- (<= (prefix-numeric-value arg) 0)))
+- (if inhibit-hyperbole-messaging
+- (var:remove-all)
+- (var:append-all)
+- ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
+- ;; was nil.
+- (cond ((boundp 'hyperbole-loading))
+- ((not after-init-time)
+- (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
+- (t (load "hyperbole"))))
+- (if (called-interactively-p 'interactive)
+- (message "Hyperbole messaging button support is %s"
+- (if inhibit-hyperbole-messaging "disabled" "enabled"))))
+-
+ (defgroup hyperbole-koutliner nil
+ "Hyperbole multi-level autonumbered outliner customizations."
+ :group 'hyperbole)
+--
+2.22.0
+
diff --git a/gnu/packages/patches/ffmpeg-prefer-dav1d.patch b/gnu/packages/patches/ffmpeg-prefer-dav1d.patch
deleted file mode 100644
index 95e3712a7f..0000000000
--- a/gnu/packages/patches/ffmpeg-prefer-dav1d.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-When decoding AV1 files, prefer dav1d over libaom for performance
-reasons.
-
-Patch copied from upstream source repository:
-
-<https://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commitdiff;h=dc0806dd25882f41f6085c8356712f95fded56c7>
-
-From dc0806dd25882f41f6085c8356712f95fded56c7 Mon Sep 17 00:00:00 2001
-From: James Almer <jamrial@gmail.com>
-Date: Sun, 15 Sep 2019 11:29:56 -0300
-Subject: [PATCH] avcodec/allcodecs: make libdav1d the preferred AV1 decoder
-
-It's considerably faster than libaom in most systems.
-
-Reviewed-by: BBB
-Signed-off-by: James Almer <jamrial@gmail.com>
----
- libavcodec/allcodecs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
-index 5130fca026..d5dfba1877 100644
---- a/libavcodec/allcodecs.c
-+++ b/libavcodec/allcodecs.c
-@@ -680,7 +680,6 @@ extern AVCodec ff_pcm_mulaw_at_encoder;
- extern AVCodec ff_pcm_mulaw_at_decoder;
- extern AVCodec ff_qdmc_at_decoder;
- extern AVCodec ff_qdm2_at_decoder;
--extern AVCodec ff_libaom_av1_decoder;
- extern AVCodec ff_libaom_av1_encoder;
- extern AVCodec ff_libaribb24_decoder;
- extern AVCodec ff_libcelt_decoder;
-@@ -738,6 +737,7 @@ extern AVCodec ff_idf_decoder;
- /* external libraries, that shouldn't be used by default if one of the
- * above is available */
- extern AVCodec ff_h263_v4l2m2m_encoder;
-+extern AVCodec ff_libaom_av1_decoder;
- extern AVCodec ff_libopenh264_encoder;
- extern AVCodec ff_libopenh264_decoder;
- extern AVCodec ff_h264_amf_encoder;
---
-2.20.1
-
diff --git a/gnu/packages/patches/gdb-hurd.patch b/gnu/packages/patches/gdb-hurd.patch
new file mode 100644
index 0000000000..0af8d4dc28
--- /dev/null
+++ b/gnu/packages/patches/gdb-hurd.patch
@@ -0,0 +1,69 @@
+Taken from upstream, removed ChangeLog.
+
+From 6930bffe3373690b3431d6291f9f7c116d6a1ec4 Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sat, 30 May 2020 18:35:59 +0000
+Subject: [PATCH] hurd: fix gnu_debug_flag type
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes
+
+../../gdb/gnu-nat.c:96:6: error: conflicting declaration ‘bool gnu_debug_flag’
+ 96 | bool gnu_debug_flag = false;
+../../gdb/gnu-nat.c: In function ‘void _initialize_gnu_nat()’:
+../../gdb/gnu-nat.c:3511:7: error: cannot
+
+gdb/ChangeLog:
+
+ * gnu-nat.h (gnu_debug_flag): Set type to bool.
+---
+ gdb/ChangeLog | 4 ++++
+ gdb/gnu-nat.h | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h
+index 77c57817b2..766f716587 100644
+--- a/gdb/gnu-nat.h
++++ b/gdb/gnu-nat.h
+@@ -111,7 +111,7 @@ extern char *proc_string (struct proc *proc);
+ __proc_pid (__proc), __proc->tid, \
+ host_address_to_string (__proc) , ##args); } while (0)
+
+-extern int gnu_debug_flag;
++extern bool gnu_debug_flag;
+
+ #define debug(msg, args...) \
+ do { if (gnu_debug_flag) \
+--
+Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
+Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
+
+commit 366f550a593c7e6bae3699a4b6d65fe937af5603
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sat May 30 18:41:30 2020 +0000
+
+ hurd: add missing include
+
+ Fixes
+
+ ../../gdb/gnu-nat.c:2522:14: error: ‘target_gdbarch’ was not declared in this scope; did you mean ‘target_detach’?
+ 2522 | paddress (target_gdbarch (), memaddr), pulongest (len),
+
+ gdb/Changelog:
+
+ * gnu-nat.c: Include "gdbarch.h".
+
+diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
+index 3b438a9a43..9b93488b41 100644
+--- a/gdb/gnu-nat.c
++++ b/gdb/gnu-nat.c
+@@ -64,6 +64,7 @@ extern "C"
+ #include "language.h"
+ #include "target.h"
+ #include "gdbsupport/gdb_wait.h"
++#include "gdbarch.h"
+ #include "gdbcmd.h"
+ #include "gdbcore.h"
+ #include "gdbthread.h"
diff --git a/gnu/packages/patches/grub-cross-system-i686.patch b/gnu/packages/patches/grub-cross-system-i686.patch
new file mode 100644
index 0000000000..a376cae1db
--- /dev/null
+++ b/gnu/packages/patches/grub-cross-system-i686.patch
@@ -0,0 +1,79 @@
+Not upstreamed.
+Fixes cross-build for the Hurd, from i686-linux,
+see <https://bugs.gnu.org/41982>.
+
+From 270667540146f8ef9ea7a44258a71b3837a7af4a Mon Sep 17 00:00:00 2001
+From: "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org>
+Date: Sun, 21 Jun 2020 15:10:40 +0200
+Subject: [PATCH] grub-core: Build fixes for i386
+
+* grub-core/lib/i386/relocator64.S: Avoid x86_64 instructions on i386.
+---
+ grub-core/lib/i386/relocator64.S | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/grub-core/lib/i386/relocator64.S b/grub-core/lib/i386/relocator64.S
+index 148f38adb..45fed9444 100644
+--- a/grub-core/lib/i386/relocator64.S
++++ b/grub-core/lib/i386/relocator64.S
+@@ -63,7 +63,9 @@ VARIABLE(grub_relocator64_cr3)
+ movq %rax, %cr3
+ #endif
+
++#ifdef __x86_64__
+ .code64
++#endif
+
+ /* mov imm64, %rax */
+ .byte 0x48
+@@ -71,7 +73,14 @@ VARIABLE(grub_relocator64_cr3)
+ VARIABLE(grub_relocator64_rsp)
+ .quad 0
+
++#ifndef __x86_64__
++ /* movq %rax, %rsp */
++ .byte 0x48
++ .byte 0x89
++ .byte 0xc4
++#else
+ movq %rax, %rsp
++#endif
+
+ #ifdef GRUB_MACHINE_EFI
+ jmp LOCAL(skip_efi_stack_align)
+@@ -95,8 +104,15 @@ LOCAL(skip_efi_stack_align):
+ VARIABLE(grub_relocator64_rsi)
+ .quad 0
+
++#ifndef __x86_64__
++ /* movq %rax, %rsi */
++ .byte 0x48
++ .byte 0x89
++ .byte 0xc6
++#else
+ movq %rax, %rsi
+-
++#endif
++
+ /* mov imm64, %rax */
+ .byte 0x48
+ .byte 0xb8
+@@ -128,6 +144,14 @@ VARIABLE(grub_relocator64_rdx)
+ #ifdef __APPLE__
+ .byte 0xff, 0x25
+ .quad 0
++#elif !defined (__x86_64__)
++ /* jmp *LOCAL(jump_addr) (%rip) */
++ .byte 0xff
++ .byte 0x25
++ .byte 0
++ .byte 0
++ .byte 0
++ .byte 0
+ #else
+ jmp *LOCAL(jump_addr) (%rip)
+ #endif
+--
+Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
+Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
+
diff --git a/gnu/packages/patches/iputils-libcap-compat.patch b/gnu/packages/patches/iputils-libcap-compat.patch
new file mode 100644
index 0000000000..dc6da310ce
--- /dev/null
+++ b/gnu/packages/patches/iputils-libcap-compat.patch
@@ -0,0 +1,37 @@
+Fix name clash with libcap 2.29.
+
+Taken from upstream:
+https://github.com/iputils/iputils/commit/18f9a84e0e702841d6cc4d5f593de4fbd1348e83
+
+diff --git a/ninfod/ninfod.c b/ninfod/ninfod.c
+--- a/ninfod/ninfod.c
++++ b/ninfod/ninfod.c
+@@ -455,7 +455,7 @@ static void do_daemonize(void)
+ /* --------- */
+ #ifdef HAVE_LIBCAP
+ static const cap_value_t cap_net_raw = CAP_NET_RAW;
+-static const cap_value_t cap_setuid = CAP_SETUID;
++static const cap_value_t cap_setuserid = CAP_SETUID;
+ static cap_flag_value_t cap_ok;
+ #else
+ static uid_t euid;
+@@ -487,7 +487,7 @@ static void limit_capabilities(void)
+
+ cap_get_flag(cap_cur_p, CAP_SETUID, CAP_PERMITTED, &cap_ok);
+ if (cap_ok != CAP_CLEAR)
+- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
++ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
+
+ if (cap_set_proc(cap_p) < 0) {
+ DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
+@@ -520,8 +520,8 @@ static void drop_capabilities(void)
+
+ /* setuid / setuid */
+ if (cap_ok != CAP_CLEAR) {
+- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
+- cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuid, CAP_SET);
++ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
++ cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuserid, CAP_SET);
+
+ if (cap_set_proc(cap_p) < 0) {
+ DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
diff --git a/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch b/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
new file mode 100644
index 0000000000..1352ed7803
--- /dev/null
+++ b/gnu/packages/patches/jamvm-2.0.0-disable-branch-patching.patch
@@ -0,0 +1,31 @@
+From d80cfc83325f8e95d35ecd9f15b36b96fa9ed3ee Mon Sep 17 00:00:00 2001
+From: Simon South <simon@simonsouth.net>
+Date: Sat, 6 Jun 2020 18:56:56 -0400
+Subject: [PATCH] Disable branch-patching
+
+This patch disables JamVM's branch-patching optimization, which tends
+to make JamVM fail with an "Illegal instruction" error on x86_64 (and
+possibly other architectures that use variable-length instructions)
+when built using modern versions of gcc and glibc.
+---
+ src/init.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/init.c b/src/init.c
+index 32539cf..38ad54b 100644
+--- a/src/init.c
++++ b/src/init.c
+@@ -72,8 +72,8 @@ void setDefaultInitArgs(InitArgs *args) {
+ #ifdef INLINING
+ args->replication_threshold = 10;
+ args->profile_threshold = 10;
+- args->branch_patching_dup = TRUE;
+- args->branch_patching = TRUE;
++ args->branch_patching_dup = FALSE;
++ args->branch_patching = FALSE;
+ args->print_codestats = FALSE;
+ args->join_blocks = TRUE;
+ args->profiling = TRUE;
+--
+2.25.2
+
diff --git a/gnu/packages/patches/lib2geom-fix-tests.patch b/gnu/packages/patches/lib2geom-fix-tests.patch
new file mode 100644
index 0000000000..9118658e49
--- /dev/null
+++ b/gnu/packages/patches/lib2geom-fix-tests.patch
@@ -0,0 +1,172 @@
+From 488edbf84e918e0353e7a8f438abbf6eeca3767e Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Wed, 17 Jun 2020 23:20:53 -0400
+Subject: [PATCH] tests: Fix tests on non-x86_64 platforms.
+
+On platform other than x86_64 such as aarch64-linux or i686-linux,
+some double comparison would fail.
+
+See <http://issues.guix.gnu.org/41827>.
+
+* tests/bezier-test.cpp: (Casteljau): Replace EXPECT_EQ by
+EXPECT_near.
+(Subdivide): Replace EXPECT_EQ by EXPECT_DOUBLE_EQ.
+(Portion): Replace EXPECT_EQ by EXPECT_near.
+* tests/ellipse-test.cpp (BezierIntersection): Lower error tolerance
+from 6e-13 to 6e-12.
+* tests/line-test.cpp (Reflection): Replace EXPECT_FLOAT_EQ BY
+EXPECT_near.
+(Coefficients): Skip test.
+* tests/parallelogram-test.cpp (area): Replace EXPECT_EQ by
+EXPECT_DOUBLE_EQ.
+---
+ tests/bezier-test.cpp | 31 +++++++++++++++++--------------
+ tests/ellipse-test.cpp | 2 +-
+ tests/line-test.cpp | 11 +++++++----
+ tests/parallelogram-test.cpp | 8 ++++----
+ 4 files changed, 29 insertions(+), 23 deletions(-)
+
+diff --git a/tests/bezier-test.cpp b/tests/bezier-test.cpp
+index 4054a65..46209f4 100644
+--- a/tests/bezier-test.cpp
++++ b/tests/bezier-test.cpp
+@@ -152,11 +152,13 @@ TEST_F(BezierTest, Casteljau) {
+ EXPECT_vector_equal(right2, right);
+
+ double vnone = casteljau_subdivision<double>(t, &wiggle[0], NULL, NULL, wiggle.order());
+- EXPECT_EQ(vnone, vok);
++ EXPECT_near(vnone, vok, 1e-12);
+ }
+ }
+
+ TEST_F(BezierTest, Portion) {
++ constexpr Coord eps{1e-12};
++
+ for (unsigned i = 0; i < 10000; ++i) {
+ double from = g_random_double_range(0, 1);
+ double to = g_random_double_range(0, 1);
+@@ -165,8 +167,8 @@ TEST_F(BezierTest, Portion) {
+ Bezier result = portion(input, from, to);
+
+ // the endpoints must correspond exactly
+- EXPECT_EQ(result.at0(), input.valueAt(from));
+- EXPECT_EQ(result.at1(), input.valueAt(to));
++ EXPECT_near(result.at0(), input.valueAt(from), eps);
++ EXPECT_near(result.at1(), input.valueAt(to), eps);
+ }
+ }
+ }
+@@ -181,16 +183,16 @@ TEST_F(BezierTest, Subdivide) {
+
+ // the endpoints must correspond exactly
+ // moreover, the subdivision point must be exactly equal to valueAt(t)
+- EXPECT_EQ(result.first.at0(), input.at0());
+- EXPECT_EQ(result.first.at1(), result.second.at0());
+- EXPECT_EQ(result.second.at0(), input.valueAt(t));
+- EXPECT_EQ(result.second.at1(), input.at1());
++ EXPECT_DOUBLE_EQ(result.first.at0(), input.at0());
++ EXPECT_DOUBLE_EQ(result.first.at1(), result.second.at0());
++ EXPECT_DOUBLE_EQ(result.second.at0(), input.valueAt(t));
++ EXPECT_DOUBLE_EQ(result.second.at1(), input.at1());
+
+ // ditto for valueAt
+- EXPECT_EQ(result.first.valueAt(0), input.valueAt(0));
+- EXPECT_EQ(result.first.valueAt(1), result.second.valueAt(0));
+- EXPECT_EQ(result.second.valueAt(0), input.valueAt(t));
+- EXPECT_EQ(result.second.valueAt(1), input.valueAt(1));
++ EXPECT_DOUBLE_EQ(result.first.valueAt(0), input.valueAt(0));
++ EXPECT_DOUBLE_EQ(result.first.valueAt(1), result.second.valueAt(0));
++ EXPECT_DOUBLE_EQ(result.second.valueAt(0), input.valueAt(t));
++ EXPECT_DOUBLE_EQ(result.second.valueAt(1), input.valueAt(1));
+
+ if (result.first.at1() != result.second.at0()) {
+ errors.push_back(std::pair<Bezier,double>(input, t));
+@@ -271,9 +273,10 @@ TEST_F(BezierTest, Deflate) {
+ EXPECT_FLOAT_EQ(0, b.at0());
+ b = b.deflate();
+ const double rootposition = (0.5-0.25) / (1-0.25);
+- EXPECT_FLOAT_EQ(0, b.valueAt(rootposition));
++ constexpr Coord eps{1e-12};
++ EXPECT_near(0.0, b.valueAt(rootposition), eps);
+ b = b.subdivide(rootposition).second;
+- EXPECT_FLOAT_EQ(0, b.at0());
++ EXPECT_near(0.0, b.at0(), eps);
+ }
+
+ TEST_F(BezierTest, Roots) {
+@@ -364,7 +367,7 @@ TEST_F(BezierTest, Operators) {
+ for(int i = 0; i <= 16; i++) {
+ double t = i/16.0;
+ double b = B.valueAt(t);
+- EXPECT_FLOAT_EQ(b*b, product.valueAt(t));
++ EXPECT_near(b*b, product.valueAt(t), 1e-12);
+ }
+ }
+ }
+diff --git a/tests/ellipse-test.cpp b/tests/ellipse-test.cpp
+index 561c285..d6e65d8 100644
+--- a/tests/ellipse-test.cpp
++++ b/tests/ellipse-test.cpp
+@@ -199,7 +199,7 @@ TEST(EllipseTest, BezierIntersection) {
+ std::vector<ShapeIntersection> xs = e.intersect(b);
+
+ EXPECT_EQ(xs.size(), 2ul);
+- EXPECT_intersections_valid(e, b, xs, 6e-13);
++ EXPECT_intersections_valid(e, b, xs, 6e-12);
+ }
+
+ TEST(EllipseTest, Coefficients) {
+diff --git a/tests/line-test.cpp b/tests/line-test.cpp
+index 99546dd..2399130 100644
+--- a/tests/line-test.cpp
++++ b/tests/line-test.cpp
+@@ -91,10 +91,12 @@ TEST(LineTest, Reflection) {
+
+ Point testra = pa * reflecta;
+ Point testrb = pb * reflectb;
+- EXPECT_FLOAT_EQ(testra[X], ra[X]);
+- EXPECT_FLOAT_EQ(testra[Y], ra[Y]);
+- EXPECT_FLOAT_EQ(testrb[X], rb[X]);
+- EXPECT_FLOAT_EQ(testrb[Y], rb[Y]);
++
++ constexpr Coord eps{1e-12};
++ EXPECT_near(testra[X], ra[X], eps);
++ EXPECT_near(testra[Y], ra[Y], eps);
++ EXPECT_near(testrb[X], rb[X], eps);
++ EXPECT_near(testrb[Y], rb[Y], eps);
+ }
+
+ TEST(LineTest, RotationToZero) {
+@@ -115,6 +117,7 @@ TEST(LineTest, RotationToZero) {
+ }
+
+ TEST(LineTest, Coefficients) {
++ GTEST_SKIP() << "This test fails on i686-linux and aarch64-linux";
+ std::vector<Line> lines;
+ lines.push_back(Line(Point(1e9,1e9), Point(1,1)));
+ //the case below will never work without normalizing the line
+diff --git a/tests/parallelogram-test.cpp b/tests/parallelogram-test.cpp
+index 8109ead..70ccea1 100644
+--- a/tests/parallelogram-test.cpp
++++ b/tests/parallelogram-test.cpp
+@@ -106,13 +106,13 @@ TEST(ParallelogramTest, area)
+ {
+ Rect r(2, 4, 7, 8);
+ Parallelogram p(r);
+- EXPECT_EQ(p.area(), r.area());
++ EXPECT_DOUBLE_EQ(p.area(), r.area());
+ p *= Rotate(M_PI / 4.0); // 45°
+- EXPECT_EQ(p.area(), r.area());
++ EXPECT_DOUBLE_EQ(p.area(), r.area());
+ p *= HShear(2);
+- EXPECT_EQ(p.area(), r.area());
++ EXPECT_DOUBLE_EQ(p.area(), r.area());
+ p *= Scale(2);
+- EXPECT_EQ(p.area(), r.area() * 4);
++ EXPECT_DOUBLE_EQ(p.area(), r.area() * 4);
+ }
+
+ class ParallelogramTest
+--
+2.26.2
+
diff --git a/gnu/packages/patches/lib2geom-link-tests-against-glib.patch b/gnu/packages/patches/lib2geom-link-tests-against-glib.patch
deleted file mode 100644
index 2b4f7ca6bf..0000000000
--- a/gnu/packages/patches/lib2geom-link-tests-against-glib.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f95925afef451755fc1449e57fbfdc2e7277f4b4 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Sat, 11 Jan 2020 00:44:55 -0500
-Subject: [PATCH 1/3] tests: Link against GLib.
-
-This resolves an error about not finding <glib.h> when linking the
-tests that make use of GLib.
-
-* src/tests/CMakeLists.txt[2GEOM_GTESTS_SRC]: Add the glib library to
-the link target libraries.
----
- src/tests/CMakeLists.txt | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
-index 5ddf7f9c..626cfd87 100644
---- a/src/tests/CMakeLists.txt
-+++ b/src/tests/CMakeLists.txt
-@@ -32,8 +32,10 @@ sbasis-test
-
- foreach(source ${2GEOM_GTESTS_SRC})
- add_executable(${source} ${source}.cpp)
-- target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS})
-- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
-+ target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS}
-+ ${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
-+ target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES}
-+ ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
- add_test(NAME ${source} COMMAND ${source})
- endforeach()
-
---
-2.24.1
-
diff --git a/gnu/packages/patches/lib2geom-use-system-googletest.patch b/gnu/packages/patches/lib2geom-use-system-googletest.patch
deleted file mode 100644
index 16cce1799f..0000000000
--- a/gnu/packages/patches/lib2geom-use-system-googletest.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 6693b9c8ff1ae1ec02c9002c0a8f5f416f0c88f0 Mon Sep 17 00:00:00 2001
-From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-Date: Sun, 12 Jan 2020 23:23:33 -0500
-Subject: [PATCH 3/3] build: Prefer googletest from the system.
-
-Fixes issue #4.
-
-The build system now look for a system installed googletest or falls
-back to the bundled copy of googletest otherwise.
-
-* CMakeLists.txt: Add call to find_package(GTest).
-(include_directories): Remove "src/googletest/googletest/include" from
-arg.
-* src/CMakeLists.txt[NOT GTEST_FOUND]: Define the gtest and gtest_main
-libraries when GTEST_FOUND is false. Globally include the googletest
-headers here. Define aliases for the gtest and gtest_main libraries
-that match those defined by the FindGTest module.
-* src/tests/CMakeLists.txt: Replace references to gtest_main and gtest
-by GTest::Main and GTest::GTest, respectively.
----
- CMakeLists.txt | 3 ++-
- src/CMakeLists.txt | 15 +++++++++++----
- src/tests/CMakeLists.txt | 6 +++---
- 3 files changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bfeb8f03..96fbd58c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -25,13 +25,14 @@ find_package(DoubleConversion REQUIRED)
- find_package(PkgConfig REQUIRED)
- find_package(Cython)
- find_package(Threads)
-+find_package(GTest)
- pkg_check_modules(GTK3 gtk+-3.0)
- pkg_check_modules(GLIB glib-2.0)
- pkg_check_modules(CAIRO cairo)
- pkg_check_modules(GSL gsl)
-
- # Add global include and link directories
--include_directories(src src/googletest/googletest/include ${CMAKE_CURRENT_BINARY_DIR})
-+include_directories(src ${CMAKE_CURRENT_BINARY_DIR})
- link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/2geom)
-
- check_cxx_source_compiles("#include <math.h>\nint main() { double a=0.5,b=0.5,c=0.5; sincos(a, &b, &c); return 0; }" HAVE_SINCOS)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index eefb3ac5..941dc4c7 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -1,7 +1,14 @@
--add_library(gtest SHARED googletest/googletest/src/gtest-all.cc)
--target_include_directories(gtest PRIVATE googletest/googletest)
--target_link_libraries(gtest Threads::Threads)
--add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc)
-+if(NOT GTEST_FOUND)
-+ message("No system googletest library: using bundled copy.")
-+ add_library(gtest SHARED googletest/googletest/src/gtest-all.cc)
-+ add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc)
-+ target_include_directories(gtest PRIVATE googletest/googletest)
-+ target_link_libraries(gtest Threads::Threads)
-+ include_directories(SYSTEM googletest/googletest/include)
-+ # Aliases to share the same nomenclature with FindGTest.
-+ add_library(GTest::GTest ALIAS gtest)
-+ add_library(GTest::Main ALIAS gtest_main)
-+endif()
-
- add_subdirectory(2geom)
- add_subdirectory(tests)
-diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
-index 626cfd87..3538f8cf 100644
---- a/src/tests/CMakeLists.txt
-+++ b/src/tests/CMakeLists.txt
-@@ -34,15 +34,15 @@ foreach(source ${2GEOM_GTESTS_SRC})
- add_executable(${source} ${source}.cpp)
- target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS}
- ${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
-- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES}
-- ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
-+ target_link_libraries(${source} 2geom GTest::Main GTest::GTest
-+ ${GSL_LIBRARIES} ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
- add_test(NAME ${source} COMMAND ${source})
- endforeach()
-
- foreach(source ${2GEOM_TESTS_SRC})
- add_executable(${source} ${source}.cpp)
- target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS})
-- target_link_libraries(${source} 2geom gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
-+ target_link_libraries(${source} 2geom GTest::GTest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
- add_test(NAME ${source} COMMAND ${source})
- endforeach(source)
-
---
-2.24.1
-
diff --git a/gnu/packages/patches/python-memcached-syntax-warnings.patch b/gnu/packages/patches/python-memcached-syntax-warnings.patch
new file mode 100644
index 0000000000..f8690677c0
--- /dev/null
+++ b/gnu/packages/patches/python-memcached-syntax-warnings.patch
@@ -0,0 +1,24 @@
+Problem reported upstream:
+https://github.com/linsomniac/python-memcached/issues/176
+
+---
+ memcache.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/memcache.py b/memcache.py
+index 05b6657..b935681 100644
+--- a/memcache.py
++++ b/memcache.py
+@@ -1300,8 +1300,8 @@ class Client(threading.local):
+ key = key[1]
+ if key is None:
+ raise Client.MemcachedKeyNoneError("Key is None")
+- if key is '':
+- if key_extra_len is 0:
++ if key == '':
++ if key_extra_len == 0:
+ raise Client.MemcachedKeyNoneError("Key is empty")
+
+ # key is empty but there is some other component to key
+--
+2.26.2
diff --git a/gnu/packages/patches/quassel-qt-514-compat.patch b/gnu/packages/patches/quassel-qt-514-compat.patch
new file mode 100644
index 0000000000..7a0c42e8aa
--- /dev/null
+++ b/gnu/packages/patches/quassel-qt-514-compat.patch
@@ -0,0 +1,130 @@
+https://github.com/quassel/quassel/commit/579e559a6322209df7cd51c34801fecff5fe734b.patch
+
+Based on the above patch, with some changes due to how the code has changed
+in the time since 0.13.1 was released.
+
+https://git.archlinux.org/svntogit/community.git/plain/trunk/quassel-0.13.1-qt5.14.patch?h=packages/quassel
+
+From 579e559a6322209df7cd51c34801fecff5fe734b Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Tue, 7 Jan 2020 18:34:54 +0100
+Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
+
+Starting from version 5.14, Qt provides stream operators for enum
+types, which collide with the ones we ship in types.h. Disable
+Quassel's stream operators when compiling against Qt 5.14 or later.
+
+Add a unit test that ensures that enum serialization honors the width
+of the underlying type.
+---
+ src/common/types.h | 2 +
+ tests/common/CMakeLists.txt | 2 +
+ tests/common/typestest.cpp | 79 +++++++++++++++++++++++++++++++++++++
+ 3 files changed, 83 insertions(+)
+ create mode 100644 tests/common/typestest.cpp
+
+diff --git a/src/common/types.h b/src/common/types.h
+index d3742b788..e2a9aab5e 100644
+--- a/src/common/types.h
++++ b/src/common/types.h
+@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
+ typedef QList<MsgId> MsgIdList;
+ typedef QList<BufferId> BufferIdList;
+
++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+ /**
+ * Catch-all stream serialization operator for enum types.
+ *
+@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
+ value = static_cast<T>(v);
+ return in;
+ }
++#endif
+
+ // Exceptions
+
+diff --git a/tests/common/typestest.cpp b/tests/common/typestest.cpp
+new file mode 100644
+index 000000000..04031c299
+--- /dev/null
++++ b/tests/common/typestest.cpp
+@@ -0,0 +1,79 @@
++/***************************************************************************
++ * Copyright (C) 2005-2020 by the Quassel Project *
++ * devel@quassel-irc.org *
++ * *
++ * This program 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 2 of the License, or *
++ * (at your option) version 3. *
++ * *
++ * This program 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 this program; if not, write to the *
++ * Free Software Foundation, Inc., *
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
++ ***************************************************************************/
++
++#include <cstdint>
++
++#include <QByteArray>
++#include <QDataStream>
++#include <QObject>
++
++#include "testglobal.h"
++#include "types.h"
++
++using namespace ::testing;
++
++class EnumHolder
++{
++ Q_GADGET
++
++public:
++ enum class Enum16 : uint16_t {};
++ enum class Enum32 : uint32_t {};
++
++ enum class EnumQt16 : uint16_t {};
++ Q_ENUM(EnumQt16)
++ enum class EnumQt32 : uint32_t {};
++ Q_ENUM(EnumQt32)
++};
++
++// Verify that enums are (de)serialized as their underlying type
++TEST(TypesTest, enumSerialization)
++{
++ QByteArray data;
++ QDataStream out(&data, QIODevice::WriteOnly);
++
++ // Serialize
++ out << EnumHolder::Enum16(0xabcd);
++ ASSERT_THAT(data.size(), Eq(2));
++ out << EnumHolder::Enum32(0x123456);
++ ASSERT_THAT(data.size(), Eq(6));
++ out << EnumHolder::EnumQt16(0x4321);
++ ASSERT_THAT(data.size(), Eq(8));
++ out << EnumHolder::Enum32(0xfedcba);
++ ASSERT_THAT(data.size(), Eq(12));
++ ASSERT_THAT(out.status(), Eq(QDataStream::Status::Ok));
++
++ // Deserialize
++ QDataStream in(data);
++ EnumHolder::Enum16 enum16;
++ EnumHolder::Enum32 enum32;
++ EnumHolder::EnumQt16 enumQt16;
++ EnumHolder::EnumQt32 enumQt32;
++ in >> enum16 >> enum32 >> enumQt16 >> enumQt32;
++ ASSERT_THAT(in.status(), Eq(QDataStream::Status::Ok));
++ EXPECT_TRUE(in.atEnd());
++
++ EXPECT_THAT((int)enum16, Eq(0xabcd));
++ EXPECT_THAT((int)enum32, Eq(0x123456));
++ EXPECT_THAT((int)enumQt16, Eq(0x4321));
++ EXPECT_THAT((int)enumQt32, Eq(0xfedcba));
++}
++
++#include "typestest.moc"
diff --git a/gnu/packages/patches/sssd-fix-samba.patch b/gnu/packages/patches/sssd-fix-samba.patch
new file mode 100644
index 0000000000..714968337a
--- /dev/null
+++ b/gnu/packages/patches/sssd-fix-samba.patch
@@ -0,0 +1,50 @@
+From bc56b10aea999284458dcc293b54cf65288e325d Mon Sep 17 00:00:00 2001
+From: Stephen Gallagher <sgallagh@redhat.com>
+Date: Fri, 24 Jan 2020 15:17:39 +0100
+Subject: [PATCH] Fix build failure against samba 4.12.0rc1
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The ndr_pull_get_switch() function was dropped, but it was just a wrapper
+around the ndr_token_peek() function, so we can use this approach on both
+old and new versions of libndr.
+
+Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
+
+Reviewed-by: Pavel Březina <pbrezina@redhat.com>
+---
+ src/providers/ad/ad_gpo_ndr.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/providers/ad/ad_gpo_ndr.c b/src/providers/ad/ad_gpo_ndr.c
+index d573033494..8f405aa62b 100644
+--- a/src/providers/ad/ad_gpo_ndr.c
++++ b/src/providers/ad/ad_gpo_ndr.c
+@@ -105,7 +105,7 @@ ndr_pull_security_ace_object_type(struct ndr_pull *ndr,
+ union security_ace_object_type *r)
+ {
+ uint32_t level;
+- level = ndr_pull_get_switch_value(ndr, r);
++ level = ndr_token_peek(&ndr->switch_list, r);
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_union_align(ndr, 4));
+@@ -135,7 +135,7 @@ ndr_pull_security_ace_object_inherited_type(struct ndr_pull *ndr,
+ union security_ace_object_inherited_type *r)
+ {
+ uint32_t level;
+- level = ndr_pull_get_switch_value(ndr, r);
++ level = ndr_token_peek(&ndr->switch_list, r);
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_union_align(ndr, 4));
+@@ -198,7 +198,7 @@ ndr_pull_security_ace_object_ctr(struct ndr_pull *ndr,
+ union security_ace_object_ctr *r)
+ {
+ uint32_t level;
+- level = ndr_pull_get_switch_value(ndr, r);
++ level = ndr_token_peek(&ndr->switch_list, r);
+ NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_union_align(ndr, 4));
diff --git a/gnu/packages/patches/tup-unbundle-dependencies.patch b/gnu/packages/patches/tup-unbundle-dependencies.patch
new file mode 100644
index 0000000000..6409522bd3
--- /dev/null
+++ b/gnu/packages/patches/tup-unbundle-dependencies.patch
@@ -0,0 +1,66 @@
+Allow building tup after removing some bundled sources from the source
+tree.
+
+diff --git a/build.sh b/build.sh
+index 2937116d..eab650f7 100755
+--- a/build.sh
++++ b/build.sh
+@@ -16,7 +16,7 @@ else
+ echo "Error: invalid TUP_SERVER \"$server\"" 1>&2
+ exit 1
+ fi
+-LDFLAGS="$LDFLAGS -lm"
++LDFLAGS="$LDFLAGS -lm -lsqlite3 `pcre-config --libs`"
+ : ${CC:=gcc}
+ case "$os" in
+ Linux)
+@@ -65,17 +65,15 @@ mkdir luabuiltin
+
+ CFLAGS="$CFLAGS -DTUP_SERVER=\"$server\""
+ CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
++CFLAGS="$CFLAGS `pcre-config --cflags`"
+
+-for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c ../src/pcre/*.c $plat_files; do
++for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c $plat_files; do
+ echo " bootstrap CC $CFLAGS $i"
+ # Put -I. first so we find our new luabuiltin.h file, not one built
+ # by a previous 'tup upd'.
+- $CC $CFLAGS -c $i -I. -I../src -I../src/pcre $plat_cflags
++ $CC $CFLAGS -c $i -I. -I../src $plat_cflags
+ done
+
+-echo " bootstrap CC $CFLAGS ../src/sqlite3/sqlite3.c"
+-$CC $CFLAGS -c ../src/sqlite3/sqlite3.c -DSQLITE_TEMP_STORE=2 -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION $plat_cflags
+-
+ echo " bootstrap LD tup $LDFLAGS"
+ echo "const char *tup_version(void) {return \"$label\";}" | $CC -x c -c - -o tup_version.o
+ $CC *.o -o tup -lpthread $plat_ldflags $LDFLAGS
+diff --git a/src/tup/db.c b/src/tup/db.c
+index 55ee3edd..9bdf7a80 100644
+--- a/src/tup/db.c
++++ b/src/tup/db.c
+@@ -46,7 +46,7 @@
+ #include <errno.h>
+ #include <ctype.h>
+ #include <sys/stat.h>
+-#include "sqlite3/sqlite3.h"
++#include <sqlite3.h>
+
+ #define DB_VERSION 17
+ #define PARSER_VERSION 12
+diff --git a/src/tup/tupid.h b/src/tup/tupid.h
+index 7b36ae46..19aed438 100644
+--- a/src/tup/tupid.h
++++ b/src/tup/tupid.h
+@@ -21,7 +21,7 @@
+ #ifndef tup_tupid_h
+ #define tup_tupid_h
+
+-#include "sqlite3/sqlite3.h"
++#include <sqlite3.h>
+
+ typedef sqlite3_int64 tupid_t;
+
+--
+2.26.2
+
diff --git a/gnu/packages/patches/ungoogled-chromium-system-jsoncpp.patch b/gnu/packages/patches/ungoogled-chromium-system-jsoncpp.patch
new file mode 100644
index 0000000000..294e1ea33b
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-system-jsoncpp.patch
@@ -0,0 +1,65 @@
+Build with the system jsoncpp instead of the bundled one.
+
+Adapted from Debian:
+https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/system/jsoncpp.patch
+
+diff --git a/third_party/jsoncpp/BUILD.gn b/third_party/jsoncpp/BUILD.gn
+--- a/third_party/jsoncpp/BUILD.gn
++++ b/third_party/jsoncpp/BUILD.gn
+@@ -3,52 +3,14 @@
+ # found in the LICENSE file.
+
+ import("//testing/libfuzzer/fuzzer_test.gni")
++import("//build/config/linux/pkg_config.gni")
+
+-config("jsoncpp_config") {
+- include_dirs = [
+- "source/include",
+- "generated",
+- ]
+-
+- # TODO(crbug.com/983223): Update JsonCpp BUILD.gn to remove deprecated
+- # declaration flag.
+- # This temporary flag allowing clients to update to the new version, and then
+- # update to the new StreamWriter and CharReader classes.
+- if (!is_win || is_clang) {
+- cflags_cc = [ "-Wno-deprecated-declarations" ]
+- }
++pkg_config("jsoncpp_config") {
++ packages = [ "jsoncpp" ]
+ }
+
+-source_set("jsoncpp") {
+- sources = [
+- "generated/version.h",
+- "source/include/json/assertions.h",
+- "source/include/json/autolink.h",
+- "source/include/json/config.h",
+- "source/include/json/features.h",
+- "source/include/json/forwards.h",
+- "source/include/json/json.h",
+- "source/include/json/reader.h",
+- "source/include/json/value.h",
+- "source/include/json/writer.h",
+- "source/src/lib_json/json_reader.cpp",
+- "source/src/lib_json/json_tool.h",
+- "source/src/lib_json/json_value.cpp",
+- "source/src/lib_json/json_writer.cpp",
+- ]
+-
++group("jsoncpp") {
+ public_configs = [ ":jsoncpp_config" ]
+-
+- defines = [
+- "JSON_USE_EXCEPTION=0",
+- "JSON_USE_NULLREF=0",
+- ]
+-
+- include_dirs = [ "source/src/lib_json" ]
+-
+- if (!is_win || is_clang) {
+- cflags_cc = [ "-Wno-implicit-fallthrough" ]
+- }
+ }
+
+ if (build_with_chromium) {
diff --git a/gnu/packages/patches/ungoogled-chromium-system-zlib.patch b/gnu/packages/patches/ungoogled-chromium-system-zlib.patch
new file mode 100644
index 0000000000..b6e3c0f075
--- /dev/null
+++ b/gnu/packages/patches/ungoogled-chromium-system-zlib.patch
@@ -0,0 +1,47 @@
+Use zlib instead of the bundled lzma_sdk.
+
+Adapted from Debian:
+https://salsa.debian.org/chromium-team/chromium/-/blob/master/debian/patches/system/zlib.patch
+
+diff --git a/courgette/BUILD.gn b/courgette/BUILD.gn
+--- a/courgette/BUILD.gn
++++ b/courgette/BUILD.gn
+@@ -58,7 +58,6 @@ static_library("courgette_lib") {
+
+ deps = [
+ "//base",
+- "//third_party/lzma_sdk",
+ ]
+
+ public_deps = [
+@@ -79,7 +78,6 @@ source_set("courgette_common") {
+ ]
+ deps = [
+ "//base",
+- "//third_party/lzma_sdk",
+ ]
+ }
+
+diff --git a/courgette/crc.cc b/courgette/crc.cc
+--- a/courgette/crc.cc
++++ b/courgette/crc.cc
+@@ -7,6 +7,8 @@
+ #include <stdint.h>
+ #include <stddef.h>
+
++#define COURGETTE_USE_CRC_LIB
++
+ #ifdef COURGETTE_USE_CRC_LIB
+ # include "zlib.h"
+ #else
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -304,7 +304,6 @@ if (enable_perfetto_zlib) {
+ public_configs = [ "//buildtools:zlib_config" ]
+ public_deps = [ "//buildtools:zlib" ]
+ } else {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
+ public_deps = [ "//third_party/zlib" ]
+ }
+ }
diff --git a/gnu/packages/patches/xmoto-remove-glext.patch b/gnu/packages/patches/xmoto-remove-glext.patch
deleted file mode 100644
index ad0c848d1d..0000000000
--- a/gnu/packages/patches/xmoto-remove-glext.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: Allow building without upstream-supplied glext.h
-Author: Stephen Kitt <steve@sk2.org>
-Bug: http://todo.xmoto.tuxfamily.org/index.php?do=details&task_id=803
-
---- xmoto-0.5.9+dfsg.orig/src/include/xm_OpenGL.h
-+++ xmoto-0.5.9+dfsg/src/include/xm_OpenGL.h
-@@ -1,7 +1,6 @@
- #ifdef ENABLE_OPENGL
- /* Pull in OpenGL headers */
- /* following scissored from SDL_opengl.h */
--#define __glext_h_ /* Don't let gl.h include glext.h */
- #ifdef HAVE_APPLE_OPENGL_FRAMEWORK
- #include <OpenGL/gl.h> /* Header File For The OpenGL Library */
- #include <OpenGL/glu.h> /* Header File For The GLU Library */
-@@ -12,8 +11,5 @@
- #include <GL/gl.h> /* Header File For The OpenGL Library */
- #include <GL/glu.h> /* Header File For The GLU Library */
- #endif
--#undef __glext_h_
--
--#include "../glext.h"
-
- #endif
diff --git a/gnu/packages/patches/xmoto-reproducible.patch b/gnu/packages/patches/xmoto-reproducible.patch
deleted file mode 100644
index 606f4ec714..0000000000
--- a/gnu/packages/patches/xmoto-reproducible.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Description: Avoid __DATE__ and __TIME__ to build reproducibly
-Author: Stephen Kitt <skitt@debian.org>
-
---- a/src/GameInit.cpp
-+++ b/src/GameInit.cpp
-@@ -248,7 +248,6 @@
- Logger::setActiv(XMSession::instance()->noLog() == false); /* apply log activ mode */
-
- LogInfo(std::string("X-Moto " + XMBuild::getVersionString(true)).c_str());
-- LogInfo("compiled at "__DATE__" "__TIME__);
- if(SwapEndian::bigendien) {
- LogInfo("Systeme is bigendien");
- } else {
---- a/src/states/StateOptions.cpp
-+++ b/src/states/StateOptions.cpp
-@@ -1233,8 +1233,6 @@
- int p=25;
- makeWindowOptions_infos_line(v_window, "Version", "X-Moto " + XMBuild::getVersionString(true), p);
- p+=20;
-- makeWindowOptions_infos_line(v_window, "Compilation date", __DATE__ " " __TIME__, p);
-- p+=20;
- makeWindowOptions_infos_line(v_window, "User data directory", XMFS::getUserDir(FDT_DATA), p);
- p+=20;
- makeWindowOptions_infos_line(v_window, "User config directory", XMFS::getUserDir(FDT_CONFIG), p);
diff --git a/gnu/packages/patches/xmoto-utf8.patch b/gnu/packages/patches/xmoto-utf8.patch
deleted file mode 100644
index e5d0dfb2a4..0000000000
--- a/gnu/packages/patches/xmoto-utf8.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Build with g++'s new utf8.h
-Author: Stephen Kitt <skitt@debian.org>
-
---- a/src/helpers/utf8.h
-+++ b/src/helpers/utf8.h
-@@ -18,8 +18,8 @@
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- =============================================================================*/
-
--#ifndef __UTF8_H__
--#define __UTF8_H__
-+#ifndef __XMOTO_UTF8_H__
-+#define __XMOTO_UTF8_H__
-
- #include <vector>
- #include <string>
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index ccd9279f3a..0aaae65573 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -15,6 +15,7 @@
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1065,6 +1066,34 @@ usually called epsilon. This module provides such a function for use with
@code{Test::More}.")
(license asl2.0)))
+(define-public perl-test-object
+ (package
+ (name "perl-test-object")
+ (version "0.08")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+ "Test-Object-" version ".tar.gz"))
+ (sha256
+ (base32 "1fyhn558kvla37fb60fzdr6kd2kfcxcmpr8884zk2dvq2ij8j9v5"))))
+ (build-system perl-build-system)
+ (home-page "https://metacpan.org/release/Test-Object")
+ (synopsis "Thoroughly testing objects via registered handlers")
+ (description
+ "In situations where you have deep trees of classes,
+there is a common situation in which you test a module 4 or 5 subclasses down,
+which should follow the correct behaviour of not just the subclass, but of all
+the parent classes.
+
+This should be done to ensure that the implementation of a subclass has not
+somehow ``broken'' the object's behaviour in a more general sense.
+
+Test::Object is a testing package designed to allow you to easily test what
+you believe is a valid object against the expected behaviour of all of the
+classes in its inheritance tree in one single call.")
+ (license perl-license)))
+
(define-public perl-test-output
(package
(name "perl-test-output")
@@ -1287,6 +1316,33 @@ makes fork(2) safe to use in test cases.")
(home-page "https://metacpan.org/release/Test-Simple")
(license perl-license)))
+(define-public perl-test-subcalls
+ (package
+ (name "perl-test-subcalls")
+ (version "1.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+ "Test-SubCalls-" version ".tar.gz"))
+ (sha256
+ (base32 "1hmnv9nkdzyrr6yis0dnkf4lk0hwld3zapiyq7mizrq5barykhfb"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-hook-lexwrap" ,perl-hook-lexwrap)))
+ (home-page "https://metacpan.org/release/Test-SubCalls")
+ (synopsis "Track the number of times subs are called")
+ (description
+ "There are a number of different situations (like testing caching
+code) where you want to want to do a number of tests, and then verify
+that some underlying subroutine deep within the code was called
+a specific number of times.
+
+Test::SubCalls module provides a number of functions for doing testing
+in this way in association with your normal Test::More (or similar)
+test scripts.")
+ (license perl-license)))
+
(define-public perl-test-taint
(package
(name "perl-test-taint")
diff --git a/gnu/packages/perl-compression.scm b/gnu/packages/perl-compression.scm
index bb47a90f8f..2996e56452 100644
--- a/gnu/packages/perl-compression.scm
+++ b/gnu/packages/perl-compression.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,39 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check))
+(define-public perl-compress-bzip2
+ (package
+ (name "perl-compress-bzip2")
+ (version "2.26")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/R/RU/RURBAN/"
+ "Compress-Bzip2-" version ".tar.gz"))
+ (sha256
+ (base32 "032gbhpjch4yc7r32b0glhi5qn6f1sm35lrnxrvlv9bpyg2z0cji"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-system-bzip2
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bzip2 (assoc-ref inputs "bzip2")))
+ (setenv "BUILD_BZLIB" "0")
+ (setenv "BZLIB_BIN" (string-append bzip2 "/bin"))
+ (setenv "BZLIB_INCLUDE" (string-append bzip2 "/include"))
+ (setenv "BZLIB_LIB" (string-append bzip2 "/lib"))
+ #t))))))
+ (inputs
+ `(("bzip2" ,bzip2)))
+ (home-page "https://metacpan.org/release/Compress-Bzip2")
+ (synopsis "Interface to Bzip2 compression library")
+ (description
+ "The Compress::Bzip2 module provides a Perl interface to the Bzip2
+compression library. A relevant subset of the functionality provided by Bzip2
+is available in this module.")
+ (license license:perl-license)))
+
(define-public perl-compress-raw-bzip2
(package
(name "perl-compress-raw-bzip2")
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index e7d4ce8392..41c6da67d4 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -26,6 +26,7 @@
;;; Copyright © 2019 Stephen J. Scheck <sscheck@cpan.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
+;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,7 +45,7 @@
(define-module (gnu packages perl)
#:use-module (srfi srfi-1)
- #:use-module (guix licenses)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
@@ -56,9 +57,13 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gd)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages hurd)
+ #:use-module (gnu packages image)
#:use-module (gnu packages less)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl-check)
@@ -66,7 +71,9 @@
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages textutils)
+ #:use-module (gnu packages video)
#:use-module (gnu packages web))
;;;
@@ -255,7 +262,7 @@ text manipulation and now used for a wide range of tasks including system
administration, web development, network programming, GUI development, and
more.")
(home-page "https://www.perl.org/")
- (license gpl1+))) ; or "Artistic"
+ (license license:gpl1+))) ; or "Artistic"
(define-public perl-algorithm-c3
(package
@@ -320,6 +327,63 @@ explicitly alias the class to another name or, if you prefer, you can do so
implicitly.")
(license (package-license perl))))
+(define-public perl-alien-sdl
+ (package
+ (name "perl-alien-sdl")
+ (version "1.446")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FR/FROGGS/"
+ "Alien-SDL-" version ".tar.gz"))
+ (sha256
+ (base32 "0ajipk43syhlmw0zinbj1i6r46vdlkr06wkx7ivqjgf6qffjran9"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:module-build-flags
+ ;; XXX: For some reason, `sdl-config' reports stand-alone SDL
+ ;; directory, not SDL-union provided as an input to the
+ ;; package. We force the latter with "--prefix=" option.
+ (list (let ((sdl (assoc-ref %build-inputs "sdl")))
+ (string-append "--with-sdl-config=" sdl "/bin/sdl-config"
+ " --prefix=" sdl)))
+ #:phases
+ (modify-phases %standard-phases
+ ;; Fix "unrecognized option: --with-sdl-config" during build.
+ ;; Reported upstream as
+ ;; <https://github.com/PerlGameDev/SDL/issues/261>. See also
+ ;; <https://github.com/PerlGameDev/SDL/issues/272>.
+ (add-after 'unpack 'fix-build.pl
+ (lambda _
+ (substitute* "Build.PL"
+ (("use Getopt::Long;") "")
+ (("GetOptions\\( \"travis\" => \\\\\\$travis \\);") ""))
+ #t)))))
+ (native-inputs
+ `(("perl-archive-extract" ,perl-archive-extract)
+ ("perl-archive-zip" ,perl-archive-zip)
+ ("perl-capture-tiny" ,perl-capture-tiny)
+ ("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-file-which" ,perl-file-which)
+ ("perl-module-build" ,perl-module-build)
+ ("perl-text-patch" ,perl-text-patch)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("fontconfig" ,fontconfig)
+ ("pango" ,pango)
+ ("sdl" ,(sdl-union
+ (list sdl sdl-gfx sdl-image sdl-mixer sdl-net sdl-ttf
+ sdl-pango)))
+ ("zlib" ,zlib)))
+ (home-page "https://metacpan.org/release/Alien-SDL")
+ (synopsis "Get, build and use SDL libraries")
+ (description
+ "Alien::SDL can be used to detect and get configuration settings from an
+installed SDL and related libraries. Based on your platform it offers the
+possibility to download and install prebuilt binaries or to build SDL & co.@:
+from source codes.")
+ (license license:perl-license)))
+
(define-public perl-any-moose
(package
(name "perl-any-moose")
@@ -478,7 +542,7 @@ SYS$HASH_PASSWORD password hashing function from VMS (also known as
LGI$HPWD) and some associated VMS username and password handling
functions. The password hashing function is implemented in XS with a
pure Perl backup version for systems that cannot handle XS.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public perl-authen-passphrase
(package
@@ -521,7 +585,7 @@ many schemes in use to achieve this effect and the intent of this
class is to provide a consistent interface to them all. In addition
to the base class, this module also contains implementations of
several specific passphrase schemes.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-autovivification
(package
@@ -663,7 +727,7 @@ keywords: @code{@@Scalars, @@Arrays, @@Hashes, @@Filehandles, @@Symbols,
@@Functions, @@Barewords, @@TieIOMethods, @@UNIVERSALMethods and
@@ExporterSymbols}.")
;; GPLv2 only
- (license gpl2)))
+ (license license:gpl2)))
(define-public perl-benchmark-timer
(package
@@ -689,7 +753,7 @@ trials. It is perfect for when you need more precise information about the
running time of portions of your code than the Benchmark module will give you,
but don't want to go all out and profile your code.")
(home-page "https://metacpan.org/release/Benchmark-Timer")
- (license gpl2)))
+ (license license:gpl2)))
(define-public perl-bit-vector
(package
@@ -714,7 +778,7 @@ matrices, all of arbitrary sizes. The package also includes an
object-oriented Perl module for accessing the C library from Perl, and
optionally features overloaded operators for maximum ease of use. The C
library can nevertheless be used stand-alone, without Perl.")
- (license (list (package-license perl) lgpl2.0+))))
+ (license (list (package-license perl) license:lgpl2.0+))))
(define-public perl-boolean
(package
@@ -774,7 +838,7 @@ Agency.")
(synopsis "Work with International Standard Book Numbers")
(description "This modules provides tools to deal with International
Standard Book Numbers, including ISBN-10 and ISBN-13.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-business-issn
(package
@@ -883,7 +947,7 @@ algorithm to keep the most used entries in the cache.")
sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS
code or from an external program. Optionally, output can be teed so that it
is captured while being passed through to the original file handles.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-canary-stability
(package
@@ -989,7 +1053,7 @@ library assert.h.")
(synopsis "Convenience wrappers around Carp::Assert")
(description "Carp::Assert::More is a set of handy assertion functions for
Perl.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-carp-clan
(package
@@ -1030,7 +1094,7 @@ the Carp.pm module doesn't help.")
(synopsis "Read the CDDB entry for an audio CD in your drive")
(description "This module can retrieve information from the CDDB.")
;; Either GPLv2 or the "Artistic" license.
- (license (list gpl2 artistic2.0))))
+ (license (list license:gpl2 license:artistic2.0))))
(define-public circos
(package
@@ -1125,7 +1189,7 @@ the Carp.pm module doesn't help.")
(description
"Circos is a program for the generation of publication-quality, circularly
composited renditions of genomic data and related annotations.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public perl-class-accessor
(package
@@ -1420,7 +1484,7 @@ names, not Class::Name. For that, this module provides \"load_class
(synopsis "XS implementation of parts of Class::Load")
(description "This module provides an XS implementation for portions of
Class::Load.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-class-methodmaker
(package
@@ -1492,7 +1556,7 @@ with a hook to easily call that original method.")
module dynamically generates anonymous classes with specified
inheritance. This is useful where an incomplete class requires use of
a mixin in order to become instantiable.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-class-singleton
(package
@@ -1531,7 +1595,7 @@ little other than manage the instantiation of a single object.")
(synopsis "Minimalist class construction")
(description "This module offers a minimalist class construction kit. It
uses no non-core modules for any recent Perl.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-class-unload
(package
@@ -1622,7 +1686,7 @@ objects.")
(description "This @code{Clone::Choose} module checks several different
modules which provide a @code{clone()} function and selects an appropriate
one.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-clone-pp
(package
@@ -1691,7 +1755,7 @@ library. It support scalar, array, and hash data structures just like its C/C++
counterpart. It reduces the effort required to implement a configuration file
parser in your Perl programme and allows sharing configuration files between
languages.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public perl-config-grammar
(package
@@ -1826,7 +1890,7 @@ options.")
(description
"This module handles parsing, modifying and creating configuration files
of the style used by the Git version control system.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-config-ini
(package
@@ -1900,7 +1964,7 @@ the caller.")
mail, as short-lined, 7-bit, semi-compressed data streams. Ths module
provides a means of converting those data streams back into into binary
data.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-cpan-changes
(package
@@ -1921,7 +1985,7 @@ data.")
(description
"@code{CPAN::Changes} helps users programmatically read and write
@file{Changes} files that conform to a common specification.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-cpan-distnameinfo
(package
@@ -1943,7 +2007,7 @@ data.")
(description
"@code{CPAN::DistnameInfo} uses heuristics to extract the distribution
name and version from filenames.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-cpan-meta-check
(package
@@ -2009,7 +2073,7 @@ the cryptographic Cipher Block Chaining (CBC) mode. In combination
with a block cipher such as @code{Crypt::Rijndael} you can encrypt and
decrypt messages of arbitrarily long length. The encrypted messages
are compatible with the encryption format used by SSLeay.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-crypt-des
(package
@@ -2033,7 +2097,7 @@ are compatible with the encryption format used by SSLeay.")
the DES cryptography algorithm. The module implements the
@code{Crypt::CBC} interface which has blocksize, keysize, encrypt and
decrypt functions.")
- (license bsd-3)))
+ (license license:bsd-3)))
(define-public perl-crypt-eksblowfish
(package
@@ -2067,7 +2131,7 @@ Cost and salt parameters together define a cipher family. Within each
family, the key determines the encryption function. This distribution
also includes an implementation of @code{bcrypt}, the Unix crypt()
password hashing algorithm based on Eksblowfish.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-crypt-mysql
(package
@@ -2094,7 +2158,7 @@ password hashing algorithm based on Eksblowfish.")
function. The module does not depend on an interface to the MySQL
database server. This enables the comparison of encrypted passwords
without the need for a real MySQL environment.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-crypt-passwdmd5
(package
@@ -2118,7 +2182,7 @@ without the need for a real MySQL environment.")
crypt()-compatible interfaces to the MD5-based crypt() function found
in various *nixes. It is based on the implementation found on FreeBSD
2.2.[56]-RELEASE.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-crypt-randpasswd
(package
@@ -2172,7 +2236,7 @@ supported encryption modes are:
@item @code{MODE_ECB}---Electronic cookbook mode
@item @code{MODE_OFB}---Output feedback
@end itemize")
- (license gpl3)))
+ (license license:gpl3)))
(define-public perl-crypt-rc4
(package
@@ -2215,7 +2279,7 @@ Unix @code{crypt} function. For those who need to construct
non-standard variants of @code{crypt}, the various building blocks
used in @code{crypt} are also supplied separately.")
;; Files in the 'fcrypt' directory are covered by a BSD licence.
- (license (list perl-license bsd-3))))
+ (license (list license:perl-license license:bsd-3))))
(define-public perl-cwd-guard
(package
@@ -2276,7 +2340,7 @@ It returns to the previous working directory when the object is destroyed.")
(description "Chaolin Zhang's Perl Library (czplib) contains assorted
functions and data structures for processing and analysing genomic and
bioinformatics data.")
- (license gpl3+)))
+ (license license:gpl3+)))
(define-public perl-data
(package
@@ -2367,7 +2431,7 @@ on the Internet, and cryptographic fake entropy. The
Data::Entropy::Algorithms module contains a collection of fundamental
algorithms that use entropy. There are random number generators and
functions to shuffle arrays.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-data-integer
(package
@@ -2394,7 +2458,7 @@ data type. A native integer is one of the types of datum that can
appear in the numeric part of a Perl scalar. This module supplies
constants describing the native integer type. Both signed and
unsigned representations are handled.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-data-uniqid
(package
@@ -2455,7 +2519,7 @@ code that, when \"eval\"ed, produces a deep copy of the original arguments.")
@code{Data::Dumper} writes out their contents in Perl syntax. The references
can also be objects. The content of each variable is output in a single Perl
statement. It handles self-referential structures correctly.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-data-dumper-concise
(package
@@ -2502,7 +2566,7 @@ types of datum that can appear in the numeric part of a Perl scalar.
This module supplies constants describing the native floating point
type, classification functions and functions to manipulate floating
point values at a low level.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-data-optlist
(package
@@ -2593,7 +2657,7 @@ The maths behind this is unfortunately fiddly, hence this module.")
@item @code{Data::Perl::Bool}
@item @code{Data::Perl::Code}
@end itemize")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-data-printer
(package
@@ -2672,6 +2736,27 @@ like split on newlines unless newlines are embedded in quotes.")
of data out of your DATA section.")
(license (package-license perl))))
+(define-public perl-data-section-simple
+ (package
+ (name "perl-data-section-simple")
+ (version "0.07")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
+ "Data-Section-Simple-" version ".tar.gz"))
+ (sha256
+ (base32 "1jx9g5sxcw0i2zkm2z895k422i49kpx0idnnvvvs36lhvgzkac0b"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-requires" ,perl-test-requires)))
+ (home-page "https://metacpan.org/release/Data-Section-Simple")
+ (synopsis "Read data from __DATA__")
+ (description
+ "Data::Section::Simple is a simple module to extract data from __DATA__
+section of the file.")
+ (license license:perl-license)))
+
(define-public perl-data-stag
(package
(name "perl-data-stag")
@@ -2823,19 +2908,19 @@ applicable).")
(synopsis "XS wrapper for Date::Calc")
(description "Date::Calc::XS is an XS wrapper and C library plug-in for
Date::Calc.")
- (license (list (package-license perl) lgpl2.0+))))
+ (license (list (package-license perl) license:lgpl2.0+))))
(define-public perl-date-manip
(package
(name "perl-date-manip")
- (version "6.78")
+ (version "6.82")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/S/SB/SBECK/"
"Date-Manip-" version ".tar.gz"))
(sha256
- (base32 "1faxj6gafrqir9hvy9r8q57s93n57b412s04qycrks7r0520hdnb"))))
+ (base32 "0ak72kpydwhq2z03mhdfwm3ganddzb8gawzh6crpsjvb9kwvr5ps"))))
(build-system perl-build-system)
(arguments
;; Tests would require tzdata for timezone information, but tzdata is in
@@ -2869,7 +2954,7 @@ module may be used to create simple date objects. It handles validation,
interval arithmetic, and day-of-week calculation. It does not deal with
hours, minutes, seconds, and time zones.")
;; Can be used with either license.
- (license (list (package-license perl) gpl2+))))
+ (license (list (package-license perl) license:gpl2+))))
(define-public perl-datetime
(package
@@ -2899,7 +2984,7 @@ hours, minutes, seconds, and time zones.")
(description "DateTime is a class for the representation of date/time
combinations. It represents the Gregorian calendar, extended backwards in
time before its creation (in 1582).")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-datetime-calendar-julian
(package
@@ -3021,7 +3106,7 @@ or \"every day\". You can also create more complicated recurrences, such as
string formats of dates and times are simple and just require a basic regular
expression to extract the relevant information. Builder provides a simple way
to do this without writing reams of structural code.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-datetime-format-flexible
(package
@@ -3105,7 +3190,7 @@ order to create the appropriate objects.")
(synopsis "Parse ISO8601 date and time formats")
(description "@code{DateTime::Format::ISO8601} is a DateTime
extension that parses almost all ISO8601 date and time formats.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-datetime-format-natural
(package
@@ -3165,7 +3250,7 @@ parsing logic.")
function that is the reverse of `strftime(3)`, for `DateTime`. While
`strftime` takes a `DateTime` and a pattern and returns a string, `strptime`
takes a string and a pattern and returns the `DateTime` object associated.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-datetime-locale
(package
@@ -3351,7 +3436,7 @@ annotation to a Perl subroutine, resulting in resolvable calls to that
subroutine being mutated at compile time by arbitrary C code. This
module makes @code{cv_set_call_checker} and several supporting
functions available.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-devel-caller
(package
@@ -3415,7 +3500,7 @@ particular command is available.")
C library and its headers are available. You can also check for the presence of
particular functions in a library, or even that those functions return
particular results.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-devel-checkcompiler
(package
@@ -3460,7 +3545,7 @@ you can tell it to compile a C source file with optional linker flags.")
"@code{Devel::Cycle} This is a tool for finding circular references in
objects and other types of references. Because of Perl's reference-count
based memory management, circular references will cause memory leaks.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-devel-globaldestruction
(package
@@ -3523,7 +3608,7 @@ files/modules are installed or not).")
(description
"This module provides a basic way to discover if a piece of perl code is
allocating perl data and not releasing them again.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-devel-lexalias
(package
@@ -3617,7 +3702,7 @@ arbitrary parameters.")
Devel::StackTrace and Devel::StackTrace::Frame. These objects encapsulate the
information that can be retrieved via Perl's caller() function, as well as
providing a simple interface to this data.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-devel-stacktrace-ashtml
(package
@@ -3680,7 +3765,7 @@ each stack frame.")
(description "The @code{Digest::CRC} module calculates CRC sums of
all sorts. It contains wrapper functions with the correct parameters
for CRC-CCITT, CRC-16 and CRC-32.")
- (license public-domain)))
+ (license license:public-domain)))
(define-public perl-digest-hmac
(package
@@ -3722,7 +3807,7 @@ RSA Data Security Inc.@: MD4 Message Digest algorithm from within Perl
programs. The algorithm takes as input a message of arbitrary length
and produces as output a 128-bit \"fingerprint\" or \"message digest\"
of the input. MD4 is described in RFC 1320.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-digest-md5
(package
@@ -3818,7 +3903,7 @@ modules separately and deal with them after the module is done installing.")
dynamic loading as used by Perl. Some details of dynamic loading are
very platform-dependent, so correct use of these functions requires
the programmer to be mindfulof the space of platform variations.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-encode-detect
(package
@@ -3839,7 +3924,7 @@ the programmer to be mindfulof the space of platform variations.")
(synopsis "Detect the encoding of data")
(description "This package provides a class @code{Encode::Detect} to detect
the encoding of data.")
- (license mpl1.1)))
+ (license license:mpl1.1)))
(define-public perl-encode-eucjpascii
(package
@@ -3903,7 +3988,7 @@ also known as JIS 2000.")
part of Perl by default, including \"BIG5-1984\", \"BIG5-2003\", \"BIG5PLUS\",
\"BIG5EXT\", \"CCCII\", \"EUC-TW\", \"CNS11643-*\", \"GB18030\", and
\"UNISYS\".")
- (license expat)))
+ (license license:expat)))
(define-public perl-env-path
(package
@@ -4221,7 +4306,7 @@ handle Perl/XS typemap files, and their submodules.")
@command{pkg-config} utility, intended for use in the @file{Makefile.PL}
of perl extensions which bind libraries that @command{pkg-config} knows.
It is really just boilerplate code that you would have written yourself.")
- (license lgpl2.1+)))
+ (license license:lgpl2.1+)))
(define-public perl-extutils-typemaps-default
(package
@@ -4302,7 +4387,7 @@ interface XS for C++; it is a thin layer over plain XS.")
(synopsis "Watch for changes to files")
(description "This module provides a class to monitor a directory for
changes made to any file.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-file-configdir
(package
@@ -4490,7 +4575,7 @@ working directory. When the object is destroyed, the destructor calls
@code{chdir} to revert to the original working directory. By storing the
object in a lexical variable with a limited scope, this happens automatically
at the end of the scope.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-file-list
(package
@@ -4544,7 +4629,7 @@ It is intended for processing log and other similar text files which typically
have their newest entries appended to them. By default files are assumed to
be plain text and have a line ending appropriate to the OS. But you can set
the input record separator string on a per file basis.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-file-remove
(package
@@ -4781,20 +4866,19 @@ notifications of changes to a given file system path. It uses inotify2 on
Linux, fsevents on OS X, @code{kqueue} on FreeBSD, and
@code{FindFirstChangeNotification} on Windows if they're installed, and falls
back to a full directory scan if none of these are available.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-getopt-long
(package
(name "perl-getopt-long")
- (version "2.49.1")
+ (version "2.51")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/J/JV/JV/"
- "Getopt-Long-v" (substring version 1) ".tar.gz"))
+ "Getopt-Long-" version ".tar.gz"))
(sha256
- (base32
- "0bw8gbhj8s5gmkqvs3m7pk9arqhgqssrby4yimh29ah9alix9ylq"))))
+ (base32 "0r659i6rkz8zkfgdccbn29zmd4bk9lcdc4y20ng6w2glqaa3pd10"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Getopt-Long")
(synopsis "Module to handle parsing command line options")
@@ -4809,7 +4893,7 @@ single letters, and are introduced with a double dash \"--\". Support for
bundling of command line options, as was the case with the more traditional
single-letter approach, is provided but not enabled by default.")
;; Can be used with either license.
- (license (list (package-license perl) gpl2+))))
+ (license (list (package-license perl) license:gpl2+))))
(define-public perl-getopt-long-descriptive
(package
@@ -4980,6 +5064,29 @@ merged.")
that may contain multiple values per key, inspired by MultiDict of WebOb.")
(license (package-license perl))))
+(define-public perl-hook-lexwrap
+ (package
+ (name "perl-hook-lexwrap")
+ (version "0.26")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
+ "Hook-LexWrap-" version ".tar.gz"))
+ (sha256
+ (base32 "0bgc6w8zs45n6ksgk0zisn9a2vcr3lmzipkan2a94kzrk1gxq2xn"))))
+ (build-system perl-build-system)
+ (home-page
+ "https://metacpan.org/release/Hook-LexWrap")
+ (synopsis "Lexically scoped subroutine wrappers")
+ (description
+ "Hook::LexWrap allows you to install a pre- or post-wrapper (or
+both) around an existing subroutine. Unlike other modules that
+provide this capacity (e.g., Hook::PreAndPost and Hook::WrapSub),
+Hook::LexWrap implements wrappers in such a way that the standard
+caller function works correctly within the wrapped subroutine.")
+ (license license:perl-license)))
+
(define-public perl-importer
(package
(name "perl-importer")
@@ -5046,7 +5153,7 @@ compilation. Import::Into provides global methods to make this painless.")
(description "The inc::latest module helps bootstrap configure-time
dependencies for CPAN distributions. These dependencies get bundled into the
inc directory within a distribution and are used by Makefile.PL or Build.PL.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-indirect
(package
@@ -5147,7 +5254,7 @@ It also goes a bit into Perl C internals.")
a single nifty object oriented interface to greatly simplify your everyday
Perl IO idioms. It exports a single function called io, which returns a new
@code{IO::All} object. And that object can do it all!")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-io-captureoutput
(package
@@ -5355,7 +5462,7 @@ Perlish API and none of the bloat and rarely used features of IPC::Run.")
(home-page "https://metacpan.org/release/IPC-Run3")
;; "You may use this module under the terms of the BSD, Artistic, or GPL
;; licenses, any version."
- (license (list bsd-3 gpl3+))))
+ (license (list license:bsd-3 license:gpl3+))))
(define-public perl-ipc-sharelite
(package
@@ -5522,6 +5629,32 @@ versa.")
"Lexical::SealRequireHints prevents leakage of lexical hints")
(license (package-license perl))))
+(define-public perl-locale-maketext-lexicon
+ (package
+ (name "perl-locale-maketext-lexicon")
+ (version "1.00")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DR/DRTECH/"
+ "Locale-Maketext-Lexicon-" version ".tar.gz"))
+ (sha256
+ (base32 "0z6w3m6f3r29ljicdigsyvpa9w9j2m65l4gjxcw0wgwdll26ngxp"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-html-parser" ,perl-html-parser)
+ ("perl-lingua-en-sentence" ,perl-lingua-en-sentence)
+ ("perl-ppi" ,perl-ppi)
+ ("perl-template-toolkit" ,perl-template-toolkit)
+ ("perl-text-haml" ,perl-text-haml)
+ ("perl-yaml" ,perl-yaml)))
+ (home-page "https://metacpan.org/release/Locale-Maketext-Lexicon")
+ (synopsis "Use other catalog formats in Maketext")
+ (description
+ "This module provides lexicon-handling modules to read from other
+localization formats, such as Gettext, Msgcat, and so on.")
+ (license license:x11)))
+
(define-public perl-log-any
(package
(name "perl-log-any")
@@ -5676,7 +5809,29 @@ one: logging, exceptions, and translations.")
(description "This package is an internationalization library for Perl
that aims to be compatible with the Uniforum message translations system as
implemented for example in GNU gettext.")
- (license gpl3+)))
+ (license license:gpl3+)))
+
+(define-public perl-lingua-en-sentence
+ (package
+ (name "perl-lingua-en-sentence")
+ (version "0.31")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/K/KI/KIMRYAN/"
+ "Lingua-EN-Sentence-" version ".tar.gz"))
+ (sha256
+ (base32 "11hlg92khd2azbxndnffsj9lggbxb3lqfdbwc6asr1c9lxlqddms"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)))
+ (home-page "https://metacpan.org/release/Lingua-EN-Sentence")
+ (synopsis "Split text into sentences")
+ (description
+ "The Lingua::EN::Sentence module contains the function get_sentences,
+which splits text into its constituent sentences, based on a regular
+expression and a list of abbreviations (built in and given).")
+ (license license:perl-license)))
(define-public perl-lingua-translit
(package
@@ -5803,7 +5958,7 @@ functionality on lists which is not going to go into List::Util.")
(description "@code{List::MoreUtils::XS} provides some trivial but
commonly needed functionality on lists which is not going to go into
@code{List::Util}.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-list-someutils
(package
@@ -5880,7 +6035,7 @@ Build a Mail::Internet object, and then send it out using Mail::Mailer.
@item Mail::Util
\"Smart functions\" you should not depend on.
@end table")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-mail-sendmail
(package
@@ -5903,7 +6058,7 @@ Build a Mail::Internet object, and then send it out using Mail::Mailer.
(description "Mail::Sendmail is a pure perl module that provides a
simple means to send email from a perl script. The module only
requires Perl5 and a network connection.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-math-bezier
(package
@@ -5923,7 +6078,7 @@ requires Perl5 and a network connection.")
(description "This module implements the algorithm for the solution of Bezier
curves as presented by Robert D Miller in Graphics Gems V, \"Quick and Simple
Bezier Curve Drawing\".")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-math-round
(package
@@ -5942,7 +6097,7 @@ Bezier Curve Drawing\".")
(synopsis "Perl extension for rounding numbers")
(description "@code{Math::Round} provides functions to round numbers,
both positive and negative, in various ways.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-math-vecstat
(package
@@ -5981,7 +6136,7 @@ operated on.")
(synopsis "Make functions faster by trading space for time")
(description "This package transparently speeds up functions by caching
return values, trading space for time.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-memoize-expirelru
(package
@@ -6050,7 +6205,7 @@ MIME messages on Internet.")
"MIME-tools is a collection of Perl5 MIME:: modules for parsing,
decoding, and generating single- or multipart (even nested multipart) MIME
messages.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-mime-types
(package
@@ -6274,7 +6429,7 @@ several underlying implementations for a module. This can be used to provide
XS and pure Perl implementations of a module, or it could be used to load an
implementation for a given OS or any other case of needing to provide multiple
implementations.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-module-install
(package
@@ -6342,7 +6497,7 @@ use in @code{Module::Inspector}.
It can load a @file{MANIFEST} file that comes in a Perl distribution tarball,
examine the contents, and perform some simple tasks. It can also load the
@file{MANIFEST.SKIP} file and check that.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-module-pluggable
(package
@@ -6677,7 +6832,7 @@ namespace::autoclean to operate without blowing away your overloads. After
using MooseX::MarkAsMethods your overloads will be recognized by Class::MOP as
being methods, and class extension as well as composition from roles with
overloads will \"just work\".")
- (license lgpl2.1)))
+ (license license:lgpl2.1)))
(define-public perl-moosex-methodattributes
(package
@@ -6861,7 +7016,7 @@ where plain Moose::Roles would lose the overloading.")
changes the default naming policy for the loading class so that accessors are
separated into get and set methods. The get methods have the same name as the
accessor, while set methods are prefixed with \"_set_\".")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-moosex-strictconstructor
(package
@@ -6887,7 +7042,7 @@ accessor, while set methods are prefixed with \"_set_\".")
(description "Simply loading this module makes your constructors
\"strict\". If your constructor is called with an attribute init argument
that your class does not declare, then it calls Moose->throw_error().")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-moosex-traits-pluggable
(package
@@ -7061,7 +7216,7 @@ constraint with coercion to load the class.")
(synopsis
"Using Moo and MooX:: packages the most lazy way")
(description "Contains the MooX and MooX::Role packages.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-moox-cmd
(package
@@ -7186,7 +7341,7 @@ installing configuration files or for finding any piece of settings.")
"@code{MooX::HandlesVia} is an extension of Moo's @code{handles}
attribute functionality. It provides a means of proxying functionality from
an external class to the given attribute.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-moox-late
(package
@@ -7223,7 +7378,7 @@ an external class to the given attribute.")
Currently Hash, Array and Code are supported. This feature requires
MooX::HandlesVia.
@end enumerate")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-moox-options
(package
@@ -7303,7 +7458,7 @@ generate a command line tool.")
"Loading @code{MooX::StrictConstructor} makes your constructors \"strict\".
If your constructor is called with an attribute init argument that your class
does not declare, then it dies.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-moox-types-mooselike
(package
@@ -7405,7 +7560,7 @@ of data.")
(description "@code{Mozilla::CA} provides a copy of Mozilla's bundle of
Certificate Authority certificates in a form that can be consumed by modules
and libraries based on OpenSSL.")
- (license mpl2.0)))
+ (license license:mpl2.0)))
(define-public perl-multidimensional
(package
@@ -7531,7 +7686,7 @@ power and flexibility of perl. The module does not implement the
functionality of a RIB (Routing Information Base) nor does it modify the
kernel routing table of the host system. However, such operations could be
implemented using the API provided by the module.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-net-dns-native
(package
@@ -7554,7 +7709,7 @@ designed to be used with event loops. Names are resolved by your system's
native @code{getaddrinfo(3)} implementation, called in a separate thread to
avoid blocking the entire application. Threading overhead is limited by using
system threads instead of Perl threads.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-net-idn-encode
(package
@@ -7581,7 +7736,7 @@ names today (letter-digit-hyphen, /[A-Z0-9-]/i).
Use this module if you just want to convert domain names (or email addresses),
using whatever IDNA standard is the best choice at the moment.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-net-statsd
(package
@@ -7646,7 +7801,7 @@ output formats may include thousands separators - characters inserted between
each group of three characters counting right to left from the decimal point.
The characters used for the decimal point and the thousands separator come from
the locale information or can be specified by the user.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-number-range
(package
@@ -7761,7 +7916,7 @@ instance, not by name.")
(synopsis "Manage deprecation warnings for your distribution")
(description "This module allows you to manage a set of deprecations for
one or more modules.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-package-stash
(package
@@ -7891,7 +8046,7 @@ for arguments of the types handled by the classification functions.
Enforcement of more complex types may be built using the
classification functions, or it may be more convenient to use a module
designed for the more complex job, such as @code{Params::Validate}")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-params-util
(package
@@ -7937,7 +8092,7 @@ checking parameters easier.")
(synopsis "Validate method/function parameters")
(description "The Params::Validate module allows you to validate method or
function call parameters to an arbitrary level of specificity.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-params-validationcompiler
(package
@@ -7968,7 +8123,7 @@ parameter checking subroutine. It can handle named or positional
parameters, and can return the parameters as key/value pairs or a list
of values. In addition to type checks, it also supports parameter
defaults, optional parameters, and extra \"slurpy\" parameters.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-par-dist
(package
@@ -8041,7 +8196,7 @@ directory specifications in a cross-platform manner.")
(synopsis "Tools for working with directory and file names")
(description "This package provides functions to work with directory and
file names.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-path-tiny
(package
@@ -8066,7 +8221,7 @@ file names.")
(synopsis "File path utility")
(description "This module provides a small, fast utility for working
with file paths.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-pdf-api2
(package
@@ -8090,7 +8245,7 @@ with file paths.")
(synopsis "Facilitates the creation and modification of PDF files")
(description "This Perl module facilitates the creation and modification
of PDF files.")
- (license lgpl2.1)))
+ (license license:lgpl2.1)))
(define-public perl-perlio-utf8_strict
(package
@@ -8205,6 +8360,37 @@ feature is useful when you want to write loggers, servers, and portable
applications.")
(license (package-license perl))))
+(define-public perl-ppi
+ (package
+ (name "perl-ppi")
+ (version "1.270")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MITHALDU/"
+ "PPI-" version ".tar.gz"))
+ (sha256
+ (base32 "0mzlz9rxqx93rqgy16jcfxwkplvhzr0f1gvvvwmmvf0vg266jak2"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ;FIXME: some tests fail
+ (native-inputs
+ `(("perl-class-inspector" ,perl-class-inspector)
+ ("perl-test-deep" ,perl-test-deep)
+ ("perl-test-nowarnings" ,perl-test-nowarnings)
+ ("perl-test-object" ,perl-test-object)
+ ("perl-test-subcalls" ,perl-test-subcalls)))
+ (propagated-inputs
+ `(("perl-clone" ,perl-clone)
+ ("perl-io-string" ,perl-io-string)
+ ("perl-params-util" ,perl-params-util)
+ ("perl-task-weaken" ,perl-task-weaken)))
+ (home-page "https://metacpan.org/release/PPI")
+ (synopsis "Parse, analyze and manipulate Perl (without Perl)")
+ (description "The PPI module parses, analyzes and manipulates Perl
+code.")
+ (license license:perl-license)))
+
(define-public perl-probe-perl
(package
(name "perl-probe-perl")
@@ -8292,7 +8478,7 @@ variables that should not be changed.")
@code{Ref::Util}, which provides several functions to help identify references
in a more convenient way than the usual approach of examining the return value
of @code{ref}.")
- (license x11)))
+ (license license:x11)))
(define-public perl-regexp-common
(package
@@ -8316,7 +8502,7 @@ offensive language, lists of any pattern, IPv4 addresses, URIs, and Zip
codes.")
(home-page "https://metacpan.org/release/Regexp-Common")
;; Quad-licensed: Perl Artistic, Perl Artistic 2.0, X11, and BSD.
- (license (list (package-license perl) x11 bsd-3))))
+ (license (list (package-license perl) license:x11 license:bsd-3))))
(define-public perl-regexp-util
(package
@@ -8423,7 +8609,7 @@ strings it is necessary to understand these implementation details.
This module provides functions to classify a string by encoding and to
encode a string in a desired way. The module is implemented in XS,
with a pure Perl backup version for systems that cannot handle XS.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-scope-guard
(package
@@ -8484,7 +8670,7 @@ collector.")
(synopsis "Manage sets of integers")
(description "@code{Set::IntSpan} manages sets of integers. It is
optimized for sets that have long runs of consecutive integers.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-set-object
(package
@@ -8505,7 +8691,7 @@ optimized for sets that have long runs of consecutive integers.")
(synopsis "Unordered collections of Perl Objects")
(description "Set::Object provides efficient sets, unordered collections
of Perl objects without duplicates for scalars and references.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-set-scalar
(package
@@ -8598,7 +8784,7 @@ magically make the Perl interpreter start checking a value's type on assignment
to a variable. In fact, there's no built-in way to apply a type to a variable at
all. Instead, you can explicitly check a value against a type, and optionally
coerce values to that type.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-spiffy
(package
@@ -8642,7 +8828,7 @@ other OO languages like Python, Ruby, Java and Perl 6.")
(synopsis "Collection of very basic statistics modules")
(description "This package provides basic statistics functions like
@code{median()}, @code{mean()}, @code{variance()} and @code{stddev()}.")
- (license lgpl2.0)))
+ (license license:lgpl2.0)))
(define-public perl-stream-buffered
(package
@@ -8771,7 +8957,7 @@ removing double-quotes, and truncating to fit within a desired length.")
"@code{String::Formatter} is a tool for building sprintf-like formatting
routines. It supports named or positional formatting, custom conversions,
fixed string interpolation, and simple width-matching.")
- (license gpl2)))
+ (license license:gpl2)))
(define-public perl-string-rewriteprefix
(package
@@ -9037,7 +9223,7 @@ the superclass---at least conditionally and temporarily. This module provides
nicer equivalents to the native Perl syntax for calling superclasses, along with
a universal @code{super} method to determine a class' own superclass, and better
support for run-time mix-ins and roles.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-svg
(package
@@ -9169,7 +9355,7 @@ of a system.")
"Sys::Syscall allows one to use epoll and sendfile system calls from
Perl. Support is mostly Linux-only for now, but other syscalls/OSes are
planned for the future.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-task-weaken
(package
@@ -9247,7 +9433,7 @@ documents: HTML, XML, POD, PostScript, LaTeX, and so on.")
(synopsis "Profiling for Template Toolkit")
(description "Template::Timer provides inline profiling of the template
processing in Perl code.")
- (license (list gpl3 artistic2.0))))
+ (license (list license:gpl3 license:artistic2.0))))
(define-public perl-template-tiny
(package
@@ -9273,7 +9459,7 @@ functionality from Template Toolkit in as few lines of code as possible.
It is intended for use in light-usage, low-memory, or low-cpu templating
situations, where you may need to upgrade to the full feature set in the
future, or if you want the retain the familiarity of TT-style templates.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-term-encoding
(package
@@ -9509,7 +9695,7 @@ into tables.")
(synopsis "Align text")
(description "Text::Aligner exports a single function, align(), which is
used to justify strings to various alignment styles.")
- (license x11)))
+ (license license:x11)))
(define-public perl-text-balanced
(package
@@ -9552,14 +9738,14 @@ can combine fields into a CSV string and parse a CSV string into fields.")
(define-public perl-text-csv-xs
(package
(name "perl-text-csv-xs")
- (version "1.39")
+ (version "1.43")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/H/HM/HMBRAND/"
"Text-CSV_XS-" version ".tgz"))
(sha256
- (base32 "1gcy1bxym6f7qsxivkl3c5p94r1bjhf9csy1x38a1gk8mx744kma"))))
+ (base32 "1frh8awr5ipry21x4403wdkbglpl707n69smksg8sf79ia75756d"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Text-CSV_XS")
(synopsis "Routines for manipulating CSV files")
@@ -9617,7 +9803,7 @@ generally slower on larger files.")
(description "This package provides functions to format text in various
ways like centering, paragraphing, and converting tabs to spaces and spaces
to tabs.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-text-glob
(package
@@ -9640,6 +9826,30 @@ used to match against text, rather than fetching names from a file system. If
you want to do full file globbing use the File::Glob module instead.")
(license (package-license perl))))
+(define-public perl-text-haml
+ (package
+ (name "perl-text-haml")
+ (version "0.990118")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/V/VT/VTI/"
+ "Text-Haml-" version ".tar.gz"))
+ (sha256
+ (base32 "1siq8hgj7s8gwpf3n3h1is5v50rwi6av8lfb19khiyyqz0rp7a57"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build-tiny" ,perl-module-build-tiny)))
+ (propagated-inputs
+ `(("perl-data-section-simple" ,perl-data-section-simple)
+ ("perl-uri" ,perl-uri)))
+ (home-page "https://metacpan.org/release/Text-Haml")
+ (synopsis "Haml Perl implementation")
+ (description
+ "Text::Haml implements Haml
+@url{http://haml.info/docs/yardoc/file.REFERENCE.html} specification.")
+ (license license:artistic2.0)))
+
(define-public perl-text-neattemplate
(package
(name "perl-text-neattemplate")
@@ -9665,6 +9875,27 @@ template engine, for when you need speed rather than complex features,
yet need more features than simple variable substitution.")
(license (package-license perl))))
+(define-public perl-text-patch
+ (package
+ (name "perl-text-patch")
+ (version "1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/C/CA/CADE/"
+ "Text-Patch-" version ".tar.gz"))
+ (sha256
+ (base32 "1k1xbhxwn9fymqqwnam9pm7hr2p5ikq6dk578qw18gkap9hqxwga"))))
+ (build-system perl-build-system)
+ (propagated-inputs
+ `(("perl-text-diff" ,perl-text-diff)))
+ (home-page "https://metacpan.org/release/Text-Patch")
+ (synopsis "Patches text with given patch")
+ (description "Text::Patch combines source text with given
+diff (difference) data. Diff data is produced by Text::Diff module or
+by the standard @code{diff} utility.")
+ (license license:gpl2+)))
+
(define-public perl-text-roman
(package
(name "perl-text-roman")
@@ -9701,7 +9932,7 @@ algorism to indicate multiplication by 1000.")
(home-page "https://metacpan.org/release/Text-SimpleTable")
(synopsis "Simple ASCII tables")
(description "Text::SimpleTable draws simple ASCII tables.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-text-table
(package
@@ -9723,7 +9954,7 @@ algorism to indicate multiplication by 1000.")
(home-page "https://metacpan.org/release/Text-Table")
(synopsis "Organize Data in Tables")
(description "Text::Table renders plaintext tables.")
- (license x11)))
+ (license license:x11)))
(define-public perl-text-template
(package
@@ -9752,7 +9983,7 @@ algorism to indicate multiplication by 1000.")
filling in templates generally. A template is a piece of text that has little
Perl programs embedded in it here and there. When you fill in a template, you
evaluate the little programs and replace them with their values.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-text-unidecode
(package
@@ -9791,7 +10022,7 @@ system.")
(home-page "https://metacpan.org/release/threads")
(synopsis "Perl interpreter-based threads")
(description "This module exposes interpreter threads to the Perl level.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-throwable
(package
@@ -9836,7 +10067,7 @@ as exceptions to standard program flow.")
reformats Perl scripts to make them easier to read. The formatting can be
controlled with command line parameters. The default parameter settings
approximately follow the suggestions in the Perl Style Guide.")
- (license gpl2+)))
+ (license license:gpl2+)))
(define-public perl-tie-cycle
(package
@@ -9900,7 +10131,32 @@ operations can also be performed on the IxHash.")
(description
"This modules provides a file handle that hides the beginning of a file,
by modifying the @code{seek()} and @code{tell()} calls.")
- (license asl2.0)))
+ (license license:asl2.0)))
+
+(define-public perl-tie-simple
+ (package
+ (name "perl-tie-simple")
+ (version "1.04")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/H/HA/HANENKAMP/"
+ "Tie-Simple-" version ".tar.gz"))
+ (sha256
+ (base32 "04lbh07nlxhpp03gl20f9w8hxjb2vzlb7w85y9w6q12i749y5s99"))))
+ (build-system perl-build-system)
+ (home-page "https://metacpan.org/release/Tie-Simple")
+ (synopsis "Variable ties made much easier")
+ (description
+ "This module adds the ability to quickly create new types of tie objects
+without creating a complete class. It does so in such a way as to try and
+make the programmers life easier when it comes to single-use ties that I find
+myself wanting to use from time-to-time.
+
+The Tie::Simple package is actually a front-end to other classes which really
+do all the work once tied, but this package does the dwimming to automatically
+figure out what you're trying to do.")
+ (license license:perl-license)))
(define-public perl-tie-toobject
(package
@@ -9986,7 +10242,7 @@ duration strings like \"2 minutes\" and \"3 seconds\" to seconds.")
(description "This package implements @code{usleep}, @code{ualarm}, and
@code{gettimeofday} for Perl, as well as wrappers to implement @code{time},
@code{sleep}, and @code{alarm} that know about non-integral seconds.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-time-local
(package
@@ -10029,7 +10285,7 @@ the system epoch.")
functions with implementations that return objects. It does so in a
backwards-compatible manner, so that using these functions as documented will
still work as expected.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-timedate
(package
@@ -10136,7 +10392,7 @@ Tree::Simple::Visitor::* objects.")
(description "This module provides bare bones try/catch/finally statements
that are designed to minimize common mistakes with eval blocks, and nothing
else.")
- (license x11)))
+ (license license:x11)))
(define-public perl-type-tie
(package
@@ -10216,7 +10472,7 @@ be used with Moose, Mouse and Moo (or none of the above).")
provide faster, C-based implementations of some type constraints. This
package has only core dependencies, and does not depend on @code{Type::Tiny},
so other data validation frameworks might also consider using it.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-types-path-tiny
(package
@@ -10241,7 +10497,7 @@ so other data validation frameworks might also consider using it.")
etc. It handles two important types of coercion: coercing objects with
overloaded stringification, and coercing to absolute paths. It also can check
to ensure that files or directories exist.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-types-serialiser
(package
@@ -10321,7 +10577,7 @@ common serialisation formats such as JSON or CBOR.")
Unicode data.")
;; The file Unicode/Collate/allkeys.txt is released under the Expat
;; license.
- (license (list (package-license perl) expat))))
+ (license (list (package-license perl) license:expat))))
(define-public perl-unicode-linebreak
(package
@@ -10480,7 +10736,7 @@ that there is exactly one document element, and that there are not duplicate
attribute names.")
;; Redistribution and use in source and compiled forms, with or without
;; modification, are permitted under any circumstances. No warranty.
- (license public-domain)))
+ (license license:public-domain)))
(define-public perl-xs-object-magic
(package
@@ -10510,14 +10766,14 @@ neither visible nor modifiable from Perl space).")
(define-public perl-yaml
(package
(name "perl-yaml")
- (version "1.29")
+ (version "1.30")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/T/TI/TINITA/"
"YAML-" version ".tar.gz"))
(sha256
- (base32 "0gl5ssvrdajlbc85cy6z873n9cwlssk5q8z97a31vyiikhw5fp4w"))))
+ (base32 "1kbrfksjg4k4vmx1i337m5n69m00m0m5bgsh61c15bzzrgbacc2h"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-yaml" ,perl-test-yaml)))
@@ -10545,7 +10801,7 @@ on the YAML 1.0 specification.")
(description
"@code{YAML::XS} is a Perl XS binding to libyaml which offers Perl the
best YAML support to date.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-yaml-tiny
(package
@@ -10595,7 +10851,7 @@ and memory overhead.")
(description
"@code{Parse::RecDescent} can incrementally generate top-down
recursive-descent text parsers from simple yacc-like grammar specifications.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-parse-yapp
(package
@@ -10762,6 +11018,46 @@ really be high enough to warrant the use of a keyword, and the size so small
such that being individual extensions would be wasteful.")
(license (package-license perl))))
+(define-public perl-sdl
+ (package
+ (name "perl-sdl")
+ (version "2.548")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/F/FR/FROGGS/"
+ "SDL-" version ".tar.gz"))
+ (sha256
+ (base32 "1dagpmcpjnwvd4g6mmnc312rqpd4qcwx21rpi2j7084wz8mijai5"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-alien-sdl" ,perl-alien-sdl)
+ ("perl-capture-tiny" ,perl-capture-tiny)
+ ("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-module-build" ,perl-module-build)
+ ("perl-test-most" ,perl-test-most)
+ ("perl-tie-simple" ,perl-tie-simple)))
+ (inputs
+ `(("freeglut" ,freeglut)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libpng" ,libpng)
+ ("libsmpeg" ,libsmpeg)
+ ("libtiff" ,libtiff)
+ ("mesa" ,mesa)
+ ("sdl" ,(sdl-union
+ (list sdl sdl-gfx sdl-image sdl-mixer sdl-pango sdl-ttf)))))
+ (propagated-inputs
+ `(("perl-file-sharedir" ,perl-file-sharedir)
+ ("perl-tie-simple" ,perl-tie-simple)))
+ (home-page "https://metacpan.org/release/SDL")
+ (synopsis "SDL bindings to Perl")
+ (description
+ "SDL Perl is a package of Perl modules that provide both functional and
+object oriented interfaces to the Simple DirectMedia Layer for Perl5. This
+package takes some liberties with the SDL API, and attempts to adhere to the
+spirit of both the SDL and Perl.")
+ (license license:lgpl2.1)))
+
(define-public perl-shell-command
(package
(name "perl-shell-command")
@@ -10811,7 +11107,7 @@ such that being individual extensions would be wasteful.")
"Object-oriented File::Find replacement in Perl")
(description "File::Find::Object is an object-oriented
File::Find replacement in Perl.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-file-find-object-rule
(package
@@ -10872,7 +11168,7 @@ object's options and steps, and then adds the new step, returning the new
object. In this manner, an object can be grown, step by step, by chaining
method calls. Furthermore, a partial sequence can be created and held, and
used as the head of many different sequences.")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-font-ttf
(package
@@ -10896,7 +11192,7 @@ font hacking. It supports reading, processing and writing of the following
tables: GDEF, GPOS, GSUB, LTSH, OS/2, PCLT, bsln, cmap, cvt, fdsc, feat,
fpgm, glyf, hdmx, head, hhea, hmtx, kern, loca, maxp, mort, name, post, prep,
prop, vhea, vmtx and the reading and writing of all other table types.")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-libtime-parsedate
(package
@@ -10937,7 +11233,7 @@ prop, vhea, vmtx and the reading and writing of all other table types.")
;; "License hereby granted for anyone to use, modify or redistribute this
;; module at their own risk. Please feed useful changes back to
;; cpan@dave.sharnoff.org."
- (license (non-copyleft "http://metadata.ftp-master.debian.org/\
+ (license (license:non-copyleft "http://metadata.ftp-master.debian.org/\
changelogs/main/libt/libtime-parsedate-perl/\
libtime-parsedate-perl_2015.103-2_copyright"))))
@@ -10966,7 +11262,7 @@ time periods allows you to test for conditions like \"Monday to Friday, 9am
till 5pm\" and \"on the second Tuesday of the month\" and \"between 4pm and
4:15pm\" and \"in the first half of each minute\" and \"in January of
1998\".")
- (license perl-license)))
+ (license license:perl-license)))
(define-public perl-path-iterator-rule
(package
@@ -11015,7 +11311,7 @@ A summary of features for comparison to other file finding modules:
As a convenience, the PIR module is an empty subclass of this one that is less
arduous to type for one-liners.")
- (license asl2.0)))
+ (license license:asl2.0)))
(define-public perl-pod-constants
(package
@@ -11041,7 +11337,7 @@ Pod::Constants uses Pod::Parser to do the parsing of the source file. It has
to open the source file it is called from, and does so directly either by
lookup in %INC or by assuming it is $0 if the caller is @code{main}
(or it can't find %INC{caller()}).")
- (license artistic2.0)))
+ (license license:artistic2.0)))
(define-public perl-regexp-pattern
(package
@@ -11087,4 +11383,4 @@ regexp patterns in modules.")
(synopsis "Parse Lisp S-Expressions into Perl data structures")
(description "Data::SExpression parses Lisp S-Expressions into Perl data
structures.")
- (license perl-license)))
+ (license license:perl-license)))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 4904fa1db1..75bbc45380 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
@@ -39,9 +41,11 @@
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages file)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages geo)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@@ -52,9 +56,11 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages iso-codes)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libusb)
#:use-module (gnu packages llvm)
+ #:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages maths)
#:use-module (gnu packages perl)
@@ -457,7 +463,7 @@ photographic equipment.")
(define-public darktable
(package
(name "darktable")
- (version "2.6.3")
+ (version "3.0.2")
(source
(origin
(method url-fetch)
@@ -465,13 +471,16 @@ photographic equipment.")
"https://github.com/darktable-org/darktable/releases/"
"download/release-" version "/darktable-" version ".tar.xz"))
(sha256
- (base32 "1w3q3dhcxa0bs590zbsj61ap8z84wmn04xs5q3gjwisqhjf9j655"))))
+ (base32 "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests
#:configure-flags '("-DBINARY_PACKAGE_BUILD=On")
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'prepare-build-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CC" "clang") (setenv "CXX" "clang++")))
(add-before 'configure 'set-LDFLAGS-and-CPATH
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "LDFLAGS"
@@ -483,35 +492,60 @@ photographic equipment.")
(setenv "CPATH"
(string-append (assoc-ref inputs "ilmbase")
"/include/OpenEXR:" (or (getenv "CPATH") "")))
- #t)))))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/darktable")
+ ;; For GtkFileChooserDialog.
+ `("GSETTINGS_SCHEMA_DIR" =
+ (,(string-append (assoc-ref inputs "gtk+")
+ "/share/glib-2.0/schemas"))))
+ #t)))))
(native-inputs
- `(("intltool" ,intltool)
+ `(("clang" ,clang-9)
+ ("desktop-file-utils" ,desktop-file-utils)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("intltool" ,intltool)
+ ("llvm" ,llvm)
("perl" ,perl)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("po4a" ,po4a)))
(inputs
- `(("libxslt" ,libxslt)
- ("libxml2" ,libxml2)
- ("pugixml" ,pugixml)
+ `(("cairo" ,cairo)
+ ("colord-gtk" ,colord-gtk)
+ ("cups" ,cups)
+ ("curl" ,curl)
+ ("dbus-glib" ,dbus-glib)
+ ("exiv2" ,exiv2)
+ ("freeimage" ,freeimage)
+ ("graphicsmagick" ,graphicsmagick)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)
- ("sqlite" ,sqlite)
+ ("ilmbase" ,ilmbase)
+ ("iso-codes" ,iso-codes)
+ ("json-glib" ,json-glib)
+ ("lcms" ,lcms)
+ ("lensfun" ,lensfun)
+ ("libgphoto2" ,libgphoto2)
("libjpeg" ,libjpeg-turbo)
+ ("libomp" ,libomp)
("libpng" ,libpng)
- ("cairo" ,cairo)
- ("lcms" ,lcms)
- ("exiv2" ,exiv2)
+ ("librsvg" ,librsvg)
+ ("libsecret" ,libsecret)
+ ("libsoup" ,libsoup)
("libtiff" ,libtiff)
- ("curl" ,curl)
- ("libgphoto2" ,libgphoto2)
- ("dbus-glib" ,dbus-glib)
+ ("libwebp" ,libwebp)
+ ("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)
+ ("lua" ,lua)
("openexr" ,openexr)
- ("ilmbase" ,ilmbase)
- ("libsoup" ,libsoup)
+ ("openjpeg" ,openjpeg)
+ ("osm-gps-map" ,osm-gps-map)
+ ("pugixml" ,pugixml)
("python-jsonschema" ,python-jsonschema)
- ("libwebp" ,libwebp)
- ("lensfun" ,lensfun)
- ("librsvg" ,librsvg)
- ("json-glib" ,json-glib)
- ("freeimage" ,freeimage)))
+ ("sqlite" ,sqlite)))
(home-page "https://www.darktable.org")
(synopsis "Virtual lighttable and darkroom for photographers")
(description "Darktable is a photography workflow application and RAW
@@ -520,6 +554,51 @@ them through a zoomable lighttable and enables you to develop raw images
and enhance them.")
;; See src/is_supported_platform.h for supported platforms.
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
+ (license (list license:gpl3+ ;; Darktable itself.
+ license:lgpl2.1+)))) ;; Rawspeed library.
+
+(define-public photoflare
+ (package
+ (name "photoflare")
+ (version "1.6.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/photoflare/photoflare")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0a394324h7ds567z3i3pw6kkii78n4qwdn129kgkkm996yh03q89"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ;no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((magickpp (assoc-ref inputs "graphicsmagick"))
+ (out (assoc-ref outputs "out")))
+ (invoke "qmake"
+ (string-append "INCLUDEPATH += " magickpp
+ "/include/GraphicsMagick")
+ (string-append "PREFIX=" out)
+ "Photoflare.pro")))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("graphicsmagick" ,graphicsmagick)
+ ("libomp" ,libomp)
+ ("qtbase" ,qtbase)))
+ (home-page "https://photoflare.io")
+ (synopsis "Quick, simple but powerful image editor")
+ (description "Photoflare is a cross-platform image editor with an aim
+to balance between powerful features and a very friendly graphical user
+interface. It suits a wide variety of different tasks and users who value a
+more nimble workflow. Features include basic image editing capabilities,
+paint brushes, image filters, colour adjustments and more advanced features
+such as Batch image processing.")
(license license:gpl3+)))
(define-public hugin
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 1071abdbad..7d8647cb44 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -360,6 +360,53 @@ framework.")
for the @code{pytest} framework.")
(license license:expat)))
+(define-public python-pytest-benchmark
+ (package
+ (name "python-pytest-benchmark")
+ (version "3.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-benchmark" version))
+ (sha256
+ (base32
+ "0a4mpb4j73dsyk47hd1prrjpfk4r458s102cn80rf253jg818hxd"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-py-cpuinfo" ,python-py-cpuinfo)))
+ (native-inputs
+ `(("python-pathlib2" ,python-pathlib2)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/ionelmc/pytest-benchmark")
+ (synopsis "Pytest fixture for benchmarking code")
+ (description
+ "This package provides a pytest fixture that will group the tests into
+rounds that are calibrated to the chosen timer.")
+ (license license:bsd-2)))
+
+(define-public python-pytest-flask
+ (package
+ (name "python-pytest-flask")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pytest-flask" version))
+ (sha256
+ (base32
+ "1hln7mwgdzfi5ma0kqfsi768l7p24jhkw8l0imhifwy08nh7hmjd"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-flask" ,python-flask)
+ ("python-pytest" ,python-pytest)
+ ("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-werkzeug" ,python-werkzeug)))
+ (home-page "https://github.com/pytest-dev/pytest-flask")
+ (synopsis "Pytest fixtures to test Flask applications")
+ (description
+ "This pytest plugin provides fixtures to simplify Flask app testing.")
+ (license license:expat)))
+
(define-public python-codacy-coverage
(package
(name "python-codacy-coverage")
diff --git a/gnu/packages/python-compression.scm b/gnu/packages/python-compression.scm
index 42855f0298..f853bdc1ec 100644
--- a/gnu/packages/python-compression.scm
+++ b/gnu/packages/python-compression.scm
@@ -259,6 +259,7 @@ wrapper. It provides a backport of the @code{Path} object.")
(hidden-package
(package/inherit
python2-zipp
+ (name "python2-zipp-bootstrap")
(arguments
`(#:tests? #f
,@(package-arguments python2-zipp)))
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 2f7516b9f6..3d6d4e909e 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,7 +38,9 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages time)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
@@ -198,13 +201,13 @@ Cython.")
(define-public python-scikit-image
(package
(name "python-scikit-image")
- (version "0.14.2")
+ (version "0.17.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "scikit-image" version))
(sha256
- (base32 "07qchljkyxvg5nrm12fvszi7pmjk4m01qp0w0z8syxzxxs20pz8s"))))
+ (base32 "1cyqqbcbrg3prc36wis0sm3q5rjhd7h9bp33jwfyixzhi02lr5dx"))))
(build-system python-build-system)
(arguments
;; TODO: Some tests require running X11 server. Disable them?
@@ -231,13 +234,13 @@ Cython.")
(define-public python-pandas
(package
(name "python-pandas")
- (version "0.25.2")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(sha256
- (base32 "1gp2pvzdiakvgjmykdzdlzrsfbg4vjm49jjdl9s0ha0a3yfs34fa"))))
+ (base32 "1a2gv3g6jr6vb5ca43fkwjl5xf86wpfz8y3zcy787adjl0hdkib9"))))
(build-system python-build-system)
(arguments
`(#:modules ((guix build utils)
@@ -249,8 +252,15 @@ Cython.")
(lambda* (#:key inputs #:allow-other-keys)
(let ((which (assoc-ref inputs "which")))
(substitute* "pandas/io/clipboard/__init__.py"
- (("^CHECK_CMD = .*")
- (string-append "CHECK_CMD = \"" which "\"\n"))))
+ (("^WHICH_CMD = .*")
+ (string-append "WHICH_CMD = \"" which "\"\n"))))
+ #t))
+ (add-before 'check 'prepare-x
+ (lambda _
+ (system "Xvfb &")
+ (setenv "DISPLAY" ":0")
+ ;; xsel needs to write a log file.
+ (setenv "HOME" "/tmp")
#t))
(replace 'check
(lambda _
@@ -265,25 +275,19 @@ Cython.")
(substitute* "setup.cfg"
(("addopts = --strict-data-files") "addopts = "))
(with-directory-excursion build-directory
- ;; Delete tests that require "moto" which is not yet
- ;; in Guix.
- (for-each delete-file
- '("pandas/tests/io/conftest.py"
- "pandas/tests/io/json/test_compression.py"
- "pandas/tests/io/parser/test_network.py"
- "pandas/tests/io/test_parquet.py"))
(invoke "pytest" "-vv" "pandas" "--skip-slow"
- "--skip-network" "-k"
- ;; XXX: Due to the deleted tests above.
- "not test_read_s3_jsonl"))))))))
+ "--skip-network"))))))))
(propagated-inputs
- `(("python-numpy" ,python-numpy)
+ `(("python-jinja2" ,python-jinja2)
+ ("python-numpy" ,python-numpy)
("python-openpyxl" ,python-openpyxl)
("python-pytz" ,python-pytz)
("python-dateutil" ,python-dateutil)
("python-xlrd" ,python-xlrd)))
(inputs
- `(("which" ,which)))
+ `(("which" ,which)
+ ("xclip" ,xclip)
+ ("xsel" ,xsel)))
(native-inputs
`(("python-cython" ,python-cython)
("python-beautifulsoup4" ,python-beautifulsoup4)
@@ -291,7 +295,9 @@ Cython.")
("python-html5lib" ,python-html5lib)
("python-nose" ,python-nose)
("python-pytest" ,python-pytest)
- ("python-pytest-mock" ,python-pytest-mock)))
+ ("python-pytest-mock" ,python-pytest-mock)
+ ;; Needed to test clipboard support.
+ ("xorg-server" ,xorg-server-for-tests)))
(home-page "https://pandas.pydata.org")
(synopsis "Data structures for data analysis, time series, and statistics")
(description
@@ -303,10 +309,33 @@ doing practical, real world data analysis in Python.")
(properties `((python2-variant . ,(delay python2-pandas))))
(license license:bsd-3)))
+(define-public python-pandas-0.25
+ (package
+ (inherit python-pandas)
+ (version "0.25.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "pandas" version))
+ (sha256
+ (base32
+ "191048m6kdc6yfvqs9w412lq60cfvigrsb57y0x116lwibgp9njj"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-pandas)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'patch-which
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((which (assoc-ref inputs "which")))
+ (substitute* "pandas/io/clipboard/__init__.py"
+ (("^CHECK_CMD = .*")
+ (string-append "CHECK_CMD = \"" which "\"\n"))))
+ #t))
+ (delete 'prepare-x)))))))
+
;; Pandas 0.24.x are the last versions that support Python 2.
(define-public python2-pandas
(let ((pandas (package-with-python2
- (strip-python2-variant python-pandas))))
+ (strip-python2-variant python-pandas-0.25))))
(package
(inherit pandas)
(version "0.24.2")
@@ -325,3 +354,63 @@ doing practical, real world data analysis in Python.")
(("if 'NULL byte' in msg:")
"if 'NULL byte' in msg or 'line contains NUL' in msg:"))
#t)))))))
+
+(define-public python-xarray
+ (package
+ (name "python-xarray")
+ (version "0.15.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "xarray" version))
+ (sha256
+ (base32
+ "1yx8j66b7rn10m2l6gmn8yr9cn38pi5cj0x0wwpy4hdnhy6i7qv4"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools-scm" ,python-setuptools-scm)
+ ("python-pytest" ,python-pytest)))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-pandas" ,python-pandas)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest"))))))
+ (home-page "https://github.com/pydata/xarray")
+ (synopsis "N-D labeled arrays and datasets")
+ (description "Xarray (formerly xray) makes working with labelled
+multi-dimensional arrays simple, efficient, and fun!
+
+Xarray introduces labels in the form of dimensions, coordinates and attributes
+on top of raw NumPy-like arrays, which allows for a more intuitive, more
+concise, and less error-prone developer experience. The package includes a
+large and growing library of domain-agnostic functions for advanced analytics
+and visualization with these data structures.")
+ (license license:asl2.0)))
+
+(define-public python-msgpack-numpy
+ (package
+ (name "python-msgpack-numpy")
+ (version "0.4.6.post0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "msgpack-numpy" version))
+ (sha256
+ (base32
+ "0syzy645mwcy7lfjwz6pc8f9p2vv1qk4limc8iina3l5nnf0rjyz"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-msgpack" ,python-msgpack)
+ ("python-numpy" ,python-numpy)))
+ (home-page "https://github.com/lebedov/msgpack-numpy")
+ (synopsis
+ "Numpy data serialization using msgpack")
+ (description
+ "This package provides encoding and decoding routines that enable the
+serialization and deserialization of numerical and array data types provided
+by numpy using the highly efficient @code{msgpack} format. Serialization of
+Python's native complex data types is also supported.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index af414b7b62..030abef9c2 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -4029,3 +4029,51 @@ request/response web apps to larger, grown applications.")
than 326,000 known user-agents. Users can pick a random one, or select one
based on filters.")
(license license:expat)))
+
+(define-public python-flask-restx
+ (package
+ (name "python-flask-restx")
+ (version "0.2.0")
+ (source
+ ;; We fetch from the Git repo because there are no tests in the PyPI
+ ;; archive.
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/python-restx/flask-restx")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-aniso8601" ,python-aniso8601)
+ ("python-flask" ,python-flask)
+ ("python-jsonschema" ,python-jsonschema)
+ ("python-pytz" ,python-pytz)))
+ (native-inputs
+ `(("python-blinker" ,python-blinker)
+ ("python-faker" ,python-faker)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-benchmark"
+ ,python-pytest-benchmark)
+ ("python-pytest-flask" ,python-pytest-flask)
+ ("python-pytest-mock" ,python-pytest-mock)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "--benchmark-skip" "-k"
+ ;; Those tests need internet access
+ "not test_check and not test_valid_value_check"))))))
+ (home-page "https://github.com/python-restx/flask-restx")
+ (synopsis
+ "Framework for fast, easy and documented API development with Flask")
+ (description
+ "Flask-RESTX is an extension for Flask that adds support for quickly building
+REST APIs. Flask-RESTX encourages best practices with minimal setup. If you are familiar
+ with Flask, Flask-RESTX should be easy to pick up. It provides a coherent collection of
+decorators and tools to describe your API and expose its documentation properly using
+Swagger.")
+ (license license:bsd-3)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index bf2e7de238..be27f2b60b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -61,7 +61,7 @@
;;; Copyright © 2019 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
-;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
;;; Copyright © 2019, 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
@@ -81,6 +81,7 @@
;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -106,6 +107,7 @@
#:use-module (gnu packages backup)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
@@ -4991,46 +4993,51 @@ as the original project seems to have been abandoned circa 2007.")
(package-with-python2 python-socksipy-branch))
(define-public python-socksipychain
- (let ((commit "eb5ee8741ce006ac0c5c3e2e83204062c348c155")
- (revision "1")
- (version "2.1.1"))
- (package
- (name "python-socksipychain")
- (version (git-version version revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pagekite/PySocksipyChain.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0fpphn6xnpm7qk8a914s4abycsbq9w6qkci07my632v0fylnm5n7"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; Tests try to access the network.
- (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/")
- (synopsis "Python SOCKS module with chained proxies support")
- (description
- "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which
+ (package
+ (name "python-socksipychain")
+ (version "2.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pagekite/PySocksipyChain.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "02pp994qmiivkdx4y6az5q80l6rzy8g6d2ipvp7kns7lsxvmc2y7"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests try to access the network.
+ (home-page "http://pagekite.net/wiki/Floss/PySocksipyChain/")
+ (synopsis "Python SOCKS module with chained proxies support")
+ (description
+ "SocksiPyChain is a modified version of the SocksiPy SOCKS module, which
adds support for arbitrary chaining of proxy servers and various modes of
TLS/SSL encryption. It was developed for use in PageKite, and also includes
a simple netcat replacement with chaining support.")
- (license license:bsd-3))))
+ (license license:bsd-3)))
(define-public python-pycodestyle
(package
(name "python-pycodestyle")
- (version "2.5.0")
+ (version "2.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pycodestyle" version))
(sha256
(base32
- "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4"))))
+ "0bhr6ia0hmgx3nhgibc9pmkzhlh1zcqk707i5fbxgs702ll7v2n5"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (invoke "pytest" "-vv"))))))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(home-page "https://pycodestyle.readthedocs.io/")
(synopsis "Python style guide checker")
(description "@code{pycodestyle} (formerly pep8) is a tool to check
@@ -5121,17 +5128,18 @@ multivalue dictionary that retains the order of insertions and deletions.")
(define-public python-autopep8
(package
(name "python-autopep8")
- (version "1.3.5")
+ (version "1.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "autopep8" version))
(sha256
(base32
- "192bvhzi4d0claqxgzymvv7k3qnj627742bc8sgxpzjj42pd9112"))))
+ "1w6vh627vrmgfbvrdcxrc3k4gxcldrb2lpgxv9irkdds851qrzb0"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-pycodestyle" ,python-pycodestyle)))
+ `(("python-pycodestyle" ,python-pycodestyle)
+ ("python-toml" ,python-toml)))
(home-page "https://github.com/hhatto/autopep8")
(synopsis "Format Python code according to the PEP 8 style guide")
(description
@@ -5315,6 +5323,115 @@ a general image processing tool.")
(define-public python2-pillow
(package-with-python2 python-pillow))
+(define-public python-roifile
+ (package
+ (name "python-roifile")
+ (version "2020.5.28")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "roifile" version))
+ (sha256
+ (base32
+ "1vwbwfsw745gyqymff6dllc5zqjsgqmxaw245sw4an6yw9rcbzc0"))))
+ (build-system python-build-system)
+ (arguments `(#:tests? #f)) ; there are none
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)))
+ (home-page "https://www.lfd.uci.edu/~gohlke/")
+ (synopsis "Read and write ImageJ ROI format")
+ (description "Roifile is a Python library to read, write, create, and plot
+ImageJ ROIs, an undocumented and ImageJ application specific format to store
+regions of interest, geometric shapes, paths, text, etc for image overlays.")
+ (license license:bsd-3)))
+
+(define-public python-tifffile
+ (package
+ (name "python-tifffile")
+ (version "2020.6.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "tifffile" version))
+ (sha256
+ (base32
+ "0xv3ynkbrsibqvx7250075idb7wm3canjd6lx2nzf3cbp6l07577"))))
+ (build-system python-build-system)
+ ;; Tests require lfdfiles, which depends on tifffile
+ (arguments `(#:tests? #f))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ;;("python-lfdfiles" ,python-lfdfiles)
+ ("python-roifile" ,python-roifile)))
+ (home-page "https://www.lfd.uci.edu/~gohlke/")
+ (synopsis "Read and write TIFF(r) files")
+ (description "This package lets you read image and metadata from many
+bio-scientific formats such as plain TIFF, BigTIFF, OME-TIFF, STK, LSM, SGI,
+NIH, ImageJ, MicroManager, MD GEL, and FluoView files. It also lets you write
+numpy arrays to TIFF, BigTIFF, and ImageJ hyperstack compatible files.")
+ (license license:bsd-3)))
+
+(define-public python-lfdfiles
+ (package
+ (name "python-lfdfiles")
+ (version "2020.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "lfdfiles" version))
+ (sha256
+ (base32
+ "1n9bkfn4vxl0lbhzd0m35lq86ayx5fwcj3ghpfl2vbjbsnfp3h47"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-click" ,python-click)
+ ("python-numpy" ,python-numpy)
+ ("python-tifffile" ,python-tifffile)))
+ (home-page "https://www.lfd.uci.edu/~gohlke/")
+ (synopsis "Work with LFD data files")
+ (description
+ "Lfdfiles is a Python library and console script for reading, writing,
+converting, and viewing many of the proprietary file formats used to store
+experimental data and metadata at the Laboratory for Fluorescence Dynamics.")
+ (license license:bsd-3)))
+
+(define-public python-imageio
+ (package
+ (name "python-imageio")
+ (version "2.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "imageio" version))
+ (sha256
+ (base32
+ "1ksjl523fm0fikrd85llxfba35rc1qsgwadgr6mbn9kis79xcpzv"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; many tests require online data
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key outputs inputs tests? #:allow-other-keys)
+ (if tests?
+ (begin
+ ;; Make installed package available for running the tests.
+ (add-installed-pythonpath inputs outputs)
+ (invoke "pytest" "-vv"))
+ #t))))))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-pillow" ,python-pillow)
+ ("python-psutil" ,python-psutil)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/imageio/imageio")
+ (synopsis "Read and write image, video, scientific, and volumetric data formats")
+ (description
+ "This package provides a Python library for reading and writing a wide
+range of image, video, scientific, and volumetric data formats.")
+ (license license:bsd-2)))
+
(define-public python-pycparser
(package
(name "python-pycparser")
@@ -5364,14 +5481,14 @@ a front-end for C compilers or analysis tools.")
(define-public python-pywavelets
(package
(name "python-pywavelets")
- (version "1.0.1")
+ (version "1.1.1")
(home-page "https://github.com/PyWavelets/pywt")
(source (origin
(method url-fetch)
(uri (pypi-uri "PyWavelets" version))
(sha256
(base32
- "1p3qv2v66ghnqrb1f98wyyhp9dz71jwcd6kfpsax65sfdpiyqp1w"))))
+ "1j88c0r4j1d4mb3f8qhz6nalyx21qrzmsm70rjngnkybd87v8r0s"))))
(build-system python-build-system)
(arguments
'(#:modules ((ice-9 ftw)
@@ -5379,17 +5496,18 @@ a front-end for C compilers or analysis tools.")
(srfi srfi-26)
(guix build utils)
(guix build python-build-system))
- #:phases (modify-phases %standard-phases
- (replace 'check
- (lambda _
- (let ((cwd (getcwd))
- (libdir (find (cut string-prefix? "lib." <>)
- (scandir "build"))))
- (with-directory-excursion (string-append cwd "/build/" libdir)
- (invoke "nosetests" "-v" "."))))))))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (let ((cwd (getcwd))
+ (libdir (find (cut string-prefix? "lib." <>)
+ (scandir "build"))))
+ (with-directory-excursion (string-append cwd "/build/" libdir)
+ (invoke "pytest" "-vv"))))))))
(native-inputs
`(("python-matplotlib" ,python-matplotlib) ;for tests
- ("python-nose" ,python-nose)))
+ ("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-numpy" ,python-numpy)))
(synopsis "Wavelet transforms in Python")
@@ -5647,7 +5765,7 @@ memoizing PEG/Packrat parser in Python.")
(define-public python-gridmap
(package
(name "python-gridmap")
- (version "0.13.0")
+ (version "0.14.0")
(source
(origin
(method git-fetch)
@@ -5656,7 +5774,7 @@ memoizing PEG/Packrat parser in Python.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1478lbwsr1w24cii2x01m2910fvh8r43ghnb78nc972a96hqiknm"))))
+ (base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l"))))
(build-system python-build-system)
(arguments
'(#:tests? #f)) ; FIXME: Requires python-cherrypy.
@@ -6453,7 +6571,7 @@ callback signature using a prototype function.")
(propagated-inputs
`(("python-backcall" ,python-backcall)
("python-pyzmq" ,python-pyzmq)
- ("python-prompt-toolkit" ,python-prompt-toolkit)
+ ("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-terminado" ,python-terminado)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
@@ -7484,14 +7602,14 @@ PEP 8.")
(define-public python-pyflakes
(package
(name "python-pyflakes")
- (version "2.1.1")
+ (version "2.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyflakes" version))
(sha256
(base32
- "18pq95a1xj2dgdd0m85gyfsn40jajj4xc3lp8wfv7igqhrc86xnr"))))
+ "1j3zqbiwkyicvww499bblq33x0bjpzdrxajhaysr7sk7x5gdgcim"))))
(build-system python-build-system)
(home-page
"https://github.com/pyflakes/pyflakes")
@@ -7585,13 +7703,13 @@ complexity of Python source code.")
(define-public python-flake8
(package
(name "python-flake8")
- (version "3.7.9")
+ (version "3.8.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "flake8" version))
(sha256
(base32
- "1yscj6avirm6m12bjh4fn2lfgxaamqsjh9pirdqfi0fcgq8ils25"))))
+ "02527892hh0qjivxaiphzalj7q32qkna1cqaikjs7c03mk5ryjzh"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -9007,8 +9125,7 @@ interactive computing.")
"1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-ipykernel"
- ,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel))
+ `(("python-ipykernel" ,python-ipykernel)
("python-notebook" ,python-notebook)))
(native-inputs
`(("python-certifi" ,python-certifi)
@@ -9035,8 +9152,7 @@ notebooks.")
"15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
- python-ipython))
+ `(("python-ipython" ,python-ipython)
("python-traitlets" ,python-traitlets)
("python-widgetsnbextension" ,python-widgetsnbextension)))
(native-inputs
@@ -9066,8 +9182,7 @@ in the data.")
"06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-ipykernel" ,(prompt-toolkit-2-instead-of-prompt-toolkit
- python-ipykernel))
+ `(("python-ipykernel" ,python-ipykernel)
("python-jupyter-client" ,python-jupyter-client)
("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-pygments" ,python-pygments)))
@@ -9881,6 +9996,38 @@ concurrent.futures package from Python 3.2")
("python2-pytest" ,python2-pytest)
,@(package-native-inputs promise))))))
+(define-public python-progressbar2
+ (package
+ (name "python-progressbar2")
+ (version "3.51.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "progressbar2" version))
+ (sha256
+ (base32
+ "0b2v3mim90rmfvixkaniz2qrs650sk230rzgd5zhcjfldmlqgxpc"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)
+ ("python-utils" ,python-utils)))
+ (native-inputs
+ `(("python-flake8" ,python-flake8)
+ ("python-freezegun" ,python-freezegun)
+ ("python-pycodestyle" ,python-pycodestyle)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cache" ,python-pytest-cache)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-flakes" ,python-pytest-flakes)
+ ("python-pytest-pep8" ,python-pytest-pep8)
+ ("python-sphinx" ,python-sphinx)))
+ (home-page "https://github.com/WoLpH/python-progressbar")
+ (synopsis "Text progress bar library for Python")
+ (description
+ "This package provides a Python progressbar library to provide
+visual (yet text based) progress to long running operations.")
+ (license license:bsd-3)))
+
(define-public python-progressbar33
(package
(name "python-progressbar33")
@@ -10052,6 +10199,29 @@ document.")
(define-public python2-jmespath
(package-with-python2 python-jmespath))
+(define-public python-symengine
+ (package
+ (name "python-symengine")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "symengine" version))
+ (sha256
+ (base32 "1kn1w4dp9mrsq6kzmhf4pjmx3wicxc3dw1mwa924q8g48g77lr4c"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("cmake" ,cmake)
+ ("python-cython" ,python-cython)))
+ (inputs
+ `(("symengine" ,symengine)))
+ (home-page "https://github.com/symengine/symengine.py")
+ (synopsis "Python library providing wrappers to SymEngine")
+ (description
+ "This library provides a Python wrapper to SymEngine, a fast C++ symbolic
+manipulation library.")
+ (license license:expat)))
+
(define-public python-botocore
(package
(name "python-botocore")
@@ -10087,6 +10257,24 @@ interface to the Amazon Web Services (AWS) API.")
(define-public python2-botocore
(package-with-python2 python-botocore))
+(define-public python-pyfiglet
+ (package
+ (name "python-pyfiglet")
+ (version "0.8.post1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyfiglet" version))
+ (sha256
+ (base32
+ "0f9n2076ga2ccsg174k2d7n0z4d44ml96yzc72s6g4nhalbk5hn6"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/pwaller/pyfiglet")
+ (synopsis "Draw ASCII art big letters in Python")
+ (description "This module lets you draw large letter from ordinary characters
+in pure Python.")
+ (license license:expat)))
+
(define-public python-xdo
(package
(name "python-xdo")
@@ -11749,17 +11937,26 @@ implementation has been adapted, improved, and fixed from Molten.")
(define-public python-shellingham
(package
(name "python-shellingham")
- (version "1.3.1")
+ (version "1.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "shellingham" version))
(sha256
- (base32
- "1q7kws7w4x2hji3g7y0ni9ddk4sd676ylrb3db54gbpys6xj6nwq"))))
+ (base32 "07kmia2hvd2q7wik89m82hig9mqr2faynvy38vxq5fm0ps11jv2p"))))
(build-system python-build-system)
- (home-page
- "https://github.com/sarugaku/shellingham")
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'restore-setup.py
+ ;; setup.py will return in the next release.
+ ;; <https://github.com/sarugaku/shellingham/issues/33>
+ (lambda _
+ (with-output-to-file "setup.py"
+ (lambda _
+ (display "from setuptools import setup\nsetup()\n")))
+ #t)))))
+ (home-page "https://github.com/sarugaku/shellingham")
(synopsis "Tool to detect surrounding shell")
(description
"Shellingham detects what shell the current Python executable is
@@ -11776,7 +11973,8 @@ running in.")
(uri (pypi-uri "python-memcached" version))
(sha256
(base32
- "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))))
+ "0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))
+ (patches (search-patches "python-memcached-syntax-warnings.patch"))))
(build-system python-build-system)
(propagated-inputs `(("python-six" ,python-six)))
(home-page
@@ -11880,7 +12078,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(define-public poetry
(package
(name "poetry")
- (version "1.0.5")
+ (version "1.0.9")
;; Poetry can only be built from source with Poetry.
(source
(origin
@@ -11888,7 +12086,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(uri (pypi-uri "poetry" version))
(sha256
(base32
- "02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf"))))
+ "1avp0db1a4hf6lz3wrzhpdvj4rpmzr4in3myrd3lp5j66nc5ck0a"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;; Pypi does not have tests.
@@ -11899,8 +12097,7 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
(substitute* "setup.py"
;; poetry won't update version as 21.0.0 relies on python > 3.6
(("keyring>=20.0.1,<21.0.0") "keyring>=21.0.0,<22.0.0")
- (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.16.0")
- (("importlib-metadata>=1.1.3,<1.2.0") "importlib-metadata>=1.1.3,<1.5.0"))
+ (("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.17.0"))
#t)))))
(propagated-inputs
`(("python-cachecontrol" ,python-cachecontrol)
@@ -11908,9 +12105,9 @@ database, file, dict stores. Cachy supports python versions 2.7+ and 3.2+.")
("python-cleo" ,python-cleo)
("python-clikit" ,python-clikit)
("python-html5lib" ,python-html5lib)
- ("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8
("python-jsonschema" ,python-jsonschema)
("python-keyring" ,python-keyring)
+ ("python-msgpack-transitional" ,python-msgpack-transitional)
("python-pexpect" ,python-pexpect)
("python-pkginfo" ,python-pkginfo)
("python-pyparsing" ,python-pyparsing)
@@ -12186,10 +12383,6 @@ characters, mouse support, and auto suggestions.")
("python-six" ,python-six)
("python-pygments" ,python-pygments)))))
-(define-public prompt-toolkit-2-instead-of-prompt-toolkit
- (package-input-rewriting/spec
- `(("python-prompt-toolkit" . ,(const python-prompt-toolkit-2)))))
-
(define-public python2-prompt-toolkit
(package-with-python2 python-prompt-toolkit-2))
@@ -14170,14 +14363,22 @@ exception message with a traceback that points to the culprit.")
(define-public python-utils
(package
(name "python-utils")
- (version "2.1.0")
+ (version "2.4.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "python-utils" version))
(sha256
(base32
- "1mcsy6q5am4ya72rgkpb6kax6vv7c93cfkkas89xnpa4sj9zf28p"))))
+ "12c0glzkm81ljgf6pwh0d4rmdm1r7vvgg3ifzp8yp9cfyngw07zj"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (delete-file "pytest.ini")
+ (invoke "pytest" "-vv"))))))
(native-inputs
`(("pytest-runner" ,python-pytest-runner)
("pytest" ,python-pytest)
@@ -17702,6 +17903,39 @@ on regular expressions.")
`(("python2-enum34" ,python2-enum34)
,@(package-propagated-inputs reparser))))))
+(define-public python-retrying
+ (package
+ (name "python-retrying")
+ (version "1.3.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rholder/retrying.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1kqipkbdaw5s1xg0gi29awm03vp1x8dz24pjidgxagvkvrjpzhi7"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (home-page "https://github.com/rholder/retrying")
+ (synopsis "Library for adding retry behavior")
+ (description "Retrying is a general-purpose retrying library to simplify
+the task of adding retry behavior to just about anything.
+
+Features:
+
+@itemize
+@item Generic Decorator API.
+@item Specify stop condition (i.e. limit by number of attempts).
+@item Specify wait condition (i.e. exponential backoff sleeping between attempts).
+@item Customize retrying on Exceptions.
+@item Customize retrying on expected returned result.
+@end itemize")
+ (license license:asl2.0)))
+
(define-public python-precis-i18n
(package
(name "python-precis-i18n")
@@ -19462,6 +19696,25 @@ using “=” characters. However this conveys no benefit so many protocols
choose to use Base64 without the “=” padding.")
(license license:asl2.0)))
+(define-public python-py-cpuinfo
+ (package
+ (name "python-py-cpuinfo")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "py-cpuinfo" version))
+ (sha256
+ (base32
+ "0045y6832gqjg63jmw0qj2jwyypgjwr7sfdq3lfv49b6fxpl5xic"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/workhorsy/py-cpuinfo")
+ (synopsis "Get CPU info with Python")
+ (description
+ "This Python module returns the CPU info by using the best sources of
+information for your operating system.")
+ (license license:expat)))
+
(define-public python-canonicaljson
(package
(name "python-canonicaljson")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index d18af8f75c..3f9987d0ae 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -801,7 +801,7 @@ users.")
(package
(inherit hamlib)
(name "wsjtx-hamlib")
- (version "2.1.2")
+ (version "2.2.1")
(source
(origin
(method git-fetch)
@@ -810,18 +810,32 @@ users.")
(commit (string-append "wsjtx-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1ksv3cmr1dl45p0pp1panyc9dngd158gvv9ysv25lq4nqv1wn87i"))))
+ (base32 "01h5ps0yq5vi1x9rkw742gx6a5fj02zhbpi89i412qdfbnyk35cv"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("texinfo" ,texinfo)
- ,@(package-native-inputs hamlib)))))
+ ,@(package-native-inputs hamlib)))
+ (arguments
+ `(#:configure-flags '("--disable-static"
+ "--with-lua-binding"
+ "--with-python-binding"
+ "--with-tcl-binding"
+ "--with-xml-support")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "tests/testloc.c"
+ (("dmmm2dec\\(deg, mmm, nesw\\);")
+ "dmmm2dec(deg, mmm, 0, nesw);"))
+ #t)))))))
(define-public wsjtx
(package
(name "wsjtx")
- (version "2.1.2")
+ (version "2.2.1")
(source
(origin
(method git-fetch)
@@ -830,7 +844,7 @@ users.")
(commit (string-append "wsjtx-" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1fnqzjd3dmxp3yjwjvwz2djk9gzb1y2cqfa188f3x8lynxhdhnfs"))
+ (base32 "12i8ch2yhxlbd7lbpl4s4y37ks4i00wasah4j44g104rxrzdny57"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -907,7 +921,7 @@ weak-signal conditions.")
`(("boost" ,boost)
("fftw" ,fftw)
("fftwf" ,fftwf)
- ("hamlib" ,wsjtx-hamlib)
+ ("hamlib" ,hamlib)
("libusb" ,libusb)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
@@ -1070,3 +1084,41 @@ their position, altitude, speed, etc.")
from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
(home-page "https://github.com/merbanan/rtl_433")
(license license:gpl2+)))
+
+(define-public multimon-ng
+ (package
+ (name "multimon-ng")
+ (version "1.1.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EliasOenal/multimon-ng.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1973xfyvzl1viz19zr83cgqlx5laxbjrca35rqabn6dlb6xb5xk8"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("libx11" ,libx11)
+ ("pulseaudio" ,pulseaudio)))
+ (arguments
+ '(#:tests? #f)) ; No test suite
+ (home-page "https://github.com/EliasOenal/multimon-ng")
+ (synopsis "Decoder for digital radio transmission modes")
+ (description "Multimon-ng can decode several digital radio transmission
+modes:
+@itemize
+@item POCSAG512, POCSAG1200, POCSAG2400
+@item FLEX
+@item EAS
+@item UFSK1200, CLIPFSK, AFSK1200, AFSK2400, AFSK2400_2, AFSK2400_3
+@item HAPN4800
+@item FSK9600
+@item DTMF
+@item ZVEI1, ZVEI2, ZVEI3, DZVEI, PZVEI
+@item EEA, EIA, CCIR
+@item MORSE CW
+@item X10
+@end itemize")
+ (license license:gpl2+)))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 08c55e4e3c..d63600571e 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -20,6 +20,7 @@
;;; Copyright © 2019 Collin J. Doering <collin@rekahsoft.ca>
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;; Copyright © 2019 Brett Gilio <brettg@posteo.de>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,6 +42,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
@@ -4304,6 +4306,54 @@ across multiple CPU cores.")
(home-page "https://github.com/whitequark/parser")
(license license:expat)))
+(define-public ruby-sexp-processor
+ (package
+ (name "ruby-sexp-processor")
+ (version "4.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sexp_processor" version))
+ (sha256
+ (base32
+ "0d1vks77xnd0m3s94a58f9bkdwlaml5qdkmprx279m2s0pc2gv55"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ ;; TODO: Add ruby-minitest-proveit once available.
+ `(("hoe" ,ruby-hoe)))
+ (synopsis "ParseTree fork which includes generic S-exp processing tools")
+ (description "The sexp_processor package is derived from ParseTree, but
+contrary to ParseTree, it includes all the generic S-exp processing tools.
+Amongst the included tools are @code{Sexp}, @code{SexpProcessor} and
+@code{Environment}")
+ (home-page "https://github.com/seattlerb/sexp_processor")
+ (license license:expat)))
+
+(define-public ruby-ruby-parser
+ (package
+ (name "ruby-ruby-parser")
+ (version "3.14.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby_parser" version))
+ (sha256
+ (base32
+ "09qcdyjjw3p7g6cjm5m9swkms1xnv35ndiy7yw24cas16qrhha6c"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("hoe" ,ruby-hoe)
+ ("racc" ,ruby-racc)
+ ("unifdef" ,unifdef)))
+ (propagated-inputs
+ `(("ruby-sexp-processor" ,ruby-sexp-processor)))
+ (home-page "https://github.com/seattlerb/ruby_parser/")
+ (synopsis "Ruby parser written in pure Ruby")
+ (description "The ruby_parser (RP) package provides a Ruby parser written
+in pure Ruby. It outputs S-expressions which can be manipulated and converted
+back to Ruby via the @code{ruby2ruby} library.")
+ (license license:expat)))
+
(define-public ruby-prawn-manual-builder
(package
(name "ruby-prawn-manual-builder")
@@ -5952,6 +6002,25 @@ Ruby classes.")
(home-page "https://ms-ati.github.io/docile/")
(license license:expat)))
+(define-public ruby-middleware
+ (package
+ (name "ruby-middleware")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "middleware" version))
+ (sha256
+ (base32
+ "0703nkf2v371wqr41c04x5qid7ww45cxqv3hnlg07if3b3xrm9xl"))))
+ (build-system ruby-build-system)
+ (arguments '(#:tests? #f)) ;no test suite
+ (synopsis "Implementation of a middleware abstraction for Ruby")
+ (description "Middleware is a generalized implementation of a middleware
+abstraction for Ruby.")
+ (home-page "https://github.com/mitchellh/middleware")
+ (license license:expat)))
+
(define-public ruby-gherkin
(package
(name "ruby-gherkin")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 132a17810c..1cf22f4a79 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -60,7 +60,7 @@
("rust-locale" ,rust-locale-0.2)
("rust-log" ,rust-log-0.4)
("rust-natord" ,rust-natord-1.0)
- ("rust-num-cpus" ,rust-num-cpus-1.11)
+ ("rust-num-cpus" ,rust-num-cpus-1)
("rust-number-prefix" ,rust-number-prefix-0.3)
("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
("rust-term-grid" ,rust-term-grid-0.1)
@@ -134,7 +134,7 @@ also knows about symlinks, extended attributes, and Git.")
(define-public fd
(package
(name "fd")
- (version "7.4.0")
+ (version "8.1.1")
(source
(origin
(method url-fetch)
@@ -143,24 +143,27 @@ also knows about symlinks, extended attributes, and Git.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "147m872zff0srwq9vaxkkbab06g3fkklbk1g2lx90vdhgs37f5xj"))))
+ "124a5r8hpk2phs1288jybh34d48yxy44wr7gv5ggchs272gs2jam"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-ansi-term" ,rust-ansi-term-0.12)
+ ("rust-anyhow" ,rust-anyhow-1.0)
("rust-atty" ,rust-atty-0.2)
("rust-clap" ,rust-clap-2)
("rust-ctrlc" ,rust-ctrlc-3.1)
+ ("rust-dirs" ,rust-dirs-2.0)
("rust-globset" ,rust-globset-0.4)
- ("rust-humantime" ,rust-humantime-1.3)
+ ("rust-humantime" ,rust-humantime-2)
("rust-ignore" ,rust-ignore-0.4)
("rust-jemallocator" ,rust-jemallocator-0.3)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
- ("rust-lscolors" ,rust-lscolors-0.6)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-lscolors" ,rust-lscolors-0.7)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-regex" ,rust-regex-1)
("rust-regex-syntax" ,rust-regex-syntax-0.6)
+ ("rust-users" ,rust-users-0.10)
("rust-version-check" ,rust-version-check-0.9))
#:cargo-development-inputs
(("rust-diff" ,rust-diff-0.1)
@@ -204,7 +207,7 @@ provides defaults for 80% of the use cases.")
(define-public ripgrep
(package
(name "ripgrep")
- (version "11.0.2")
+ (version "12.1.1")
(source
(origin
(method url-fetch)
@@ -213,7 +216,7 @@ provides defaults for 80% of the use cases.")
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0vqjr96s2rs45715hzf0g0wjahig4zjyiqfijmzzg4jyh9ni80yr"))))
+ "1grfi0j9zczzipipc21lkdbqmd2lvy2wlqy65fy4sckqvix5amdr"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
@@ -224,10 +227,10 @@ provides defaults for 80% of the use cases.")
("rust-jemallocator" ,rust-jemallocator-0.3)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-log" ,rust-log-0.4)
- ("rust-num-cpus" ,rust-num-cpus-1.10)
- ("rust-regex" ,rust-regex-1.1)
+ ("rust-num-cpus" ,rust-num-cpus-1)
+ ("rust-regex" ,rust-regex-1)
("rust-serde-json" ,rust-serde-json-1.0)
- ("rust-termcolor" ,rust-termcolor-1.0))
+ ("rust-termcolor" ,rust-termcolor-1))
#:cargo-development-inputs
(("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0))
@@ -281,7 +284,7 @@ gitignore rules.")
("serde" ,rust-serde-1.0)
("serde-json" ,rust-serde-json-1.0)
("syn" ,rust-syn-1.0)
- ("tempfile" ,rust-tempfile-3.1)
+ ("tempfile" ,rust-tempfile-3)
("toml" ,rust-toml-0.5))))
(home-page "https://github.com/eqrion/cbindgen/")
(synopsis "Tool for generating C bindings to Rust code")
@@ -329,7 +332,7 @@ gitignore rules.")
("rust-hex" ,rust-hex-0.4)
("rust-ignore" ,rust-ignore-0.4)
("rust-log" ,rust-log-0.4)
- ("rust-rayon" ,rust-rayon-1.3)
+ ("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1.0)
("rust-serde-cbor" ,rust-serde-cbor-0.10)
("rust-serde-derive" ,rust-serde-derive-1.0)
@@ -342,9 +345,9 @@ gitignore rules.")
("rust-handlebars" ,rust-handlebars-2.0)
("rust-ignore" ,rust-ignore-0.4)
("rust-lazy-static" ,rust-lazy-static-1)
- ("rust-regex" ,rust-regex-1.3)
+ ("rust-regex" ,rust-regex-1)
("rust-serde-json" ,rust-serde-json-1.0)
- ("rust-tempfile" ,rust-tempfile-3.0))
+ ("rust-tempfile" ,rust-tempfile-3))
#:phases
(modify-phases %standard-phases
(add-after 'configure 'unvendor-libraries-from-crates
@@ -389,7 +392,7 @@ blanks grouped by language.")
("rust-cargo-metadata" ,rust-cargo-metadata-0.9)
("rust-serde" ,rust-serde-1.0)
("rust-serde-derive" ,rust-serde-derive-1.0)
- ("rust-regex" ,rust-regex-1.3))))
+ ("rust-regex" ,rust-regex-1))))
(home-page "https://github.com/lu-zero/cargo-c")
(synopsis "Build and install C-compatible libraries")
(description
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 6d91727809..e4e452fec5 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -620,26 +620,17 @@ sound and device input (keyboards, joysticks, mice, etc.).")
(define-public guile-sdl2
(package
(name "guile-sdl2")
- (version "0.4.0")
+ (version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/guile-sdl2/"
"guile-sdl2-" version ".tar.gz"))
(sha256
(base32
- "0zcxwgyadwpbhq6h5mv2569c3kalgra26zc186y9fqiyyzmh1v9s"))))
+ "118x0cg7fzbsyrfhy5f9ab7dqp9czgia0ycgzp6sn3nlsdrcnr4m"))))
(build-system gnu-build-system)
(arguments
- '(#:make-flags '("GUILE_AUTO_COMPILE=0")
- #:configure-flags
- (list (string-append "--with-libsdl2-prefix="
- (assoc-ref %build-inputs "sdl2"))
- (string-append "--with-libsdl2-image-prefix="
- (assoc-ref %build-inputs "sdl2-image"))
- (string-append "--with-libsdl2-ttf-prefix="
- (assoc-ref %build-inputs "sdl2-ttf"))
- (string-append "--with-libsdl2-mixer-prefix="
- (assoc-ref %build-inputs "sdl2-mixer")))))
+ '(#:make-flags '("GUILE_AUTO_COMPILE=0")))
(native-inputs
`(("guile" ,guile-2.2)
("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index a87e1e74b6..be6a626b37 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -3,7 +3,7 @@
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Adam Massmann <massmannak@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -49,14 +49,14 @@
(define-public xapian
(package
(name "xapian")
- (version "1.4.15")
+ (version "1.4.16")
;; Note: When updating Xapian, remember to update xapian-bindings below.
(source (origin
(method url-fetch)
(uri (string-append "https://oligarchy.co.uk/xapian/" version
"/xapian-core-" version ".tar.xz"))
(sha256
- (base32 "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i"))))
+ (base32 "0w5znrf9l5ahbxwg04358nzv0xsqnk42isah46j3jzpjkzsg4ds9"))))
(build-system gnu-build-system)
(inputs `(("zlib" ,zlib)
("util-linux" ,util-linux "lib")))
@@ -94,7 +94,7 @@ rich set of boolean query operators.")
"/xapian-bindings-" version ".tar.xz"))
(sha256
(base32
- "0364nalvh13c7wzx52mz4gaf8wg1rm17lw75cs8a813rv091ci38"))))
+ "06v2prlzwgbcsgjpmd7x2qczcp6dn7836h21bq3gmlnd2mnyr4c7"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-python3")
diff --git a/gnu/packages/sequoia.scm b/gnu/packages/sequoia.scm
index 91c1dcd98d..554b1d65ea 100644
--- a/gnu/packages/sequoia.scm
+++ b/gnu/packages/sequoia.scm
@@ -39,7 +39,7 @@
(define-public sequoia
(package
(name "sequoia")
- (version "0.16.0")
+ (version "0.17.0")
(source
(origin
(method git-fetch)
@@ -47,7 +47,7 @@
(url "https://gitlab.com/sequoia-pgp/sequoia.git")
(commit (string-append "v" version))))
(sha256
- (base32 "0iwzi2ylrwz56s77cd4vcf89ig6ipy4w6kp2pfwqvd2d00x54dhk"))
+ (base32 "1rf9q67qmjfkgy6r3mz1h9ibfmc04r4j8nzacqv2l75x4mwvf6xb"))
(file-name (git-file-name name version))))
(build-system cargo-build-system)
(outputs '("out" "python"))
@@ -69,48 +69,48 @@
#:cargo-inputs
(("rust-assert-cli" ,rust-assert-cli-0.6)
("rust-anyhow" ,rust-anyhow-1.0)
- ("rust-base64", rust-base64-0.11)
+ ("rust-base64" ,rust-base64-0.11)
;;("rust-buffered-reader" included
- ("rust-bzip2", rust-bzip2-0.3)
+ ("rust-bzip2" ,rust-bzip2-0.3)
("rust-capnp" ,rust-capnp-0.10)
("rust-capnp-rpc" ,rust-capnp-rpc-0.10)
("rust-capnpc" ,rust-capnpc-0.10)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-2)
- ("rust-clap" ,rust-clap-2)
("rust-colored" ,rust-colored-1.9.1)
("rust-crossterm" ,rust-crossterm-0.13)
- ("rust-ctor", rust-ctor-0.1)
+ ("rust-ctor" ,rust-ctor-0.1)
("rust-dirs" ,rust-dirs-2.0)
;;("rust-failure" included
("rust-filetime" ,rust-filetime-0.2)
- ("rust-flate2", rust-flate2-1.0)
+ ("rust-flate2" ,rust-flate2-1.0)
("rust-fs2" ,rust-fs2-0.4)
("rust-futures" ,rust-futures-0.1)
("rust-http" ,rust-http-0.1)
("rust-hyper" ,rust-hyper-0.12)
("rust-hyper-tls" ,rust-hyper-tls-0.3)
- ("rust-idna", rust-idna-0.2)
+ ("rust-idna" ,rust-idna-0.2)
("rust-itertools" ,rust-itertools-0.8)
- ("rust-lalrpop-util", rust-lalrpop-util-0.17)
- ("rust-lazy-static", rust-lazy-static-1.3)
+ ("rust-lalrpop-util" ,rust-lalrpop-util-0.17)
+ ("rust-lazy-static" ,rust-lazy-static-1)
("rust-libc" ,rust-libc-0.2)
- ("rust-memsec", rust-memsec-0.5)
+ ("rust-memsec" ,rust-memsec-0.5)
("rust-native-tls" ,rust-native-tls-0.2)
- ("rust-nettle", rust-nettle-7)
+ ("rust-nettle" ,rust-nettle-7)
("rust-parity-tokio-ipc" ,rust-parity-tokio-ipc-0.4)
("rust-percent-encoding" ,rust-percent-encoding-2.1)
("rust-prettytable-rs" ,rust-prettytable-rs-0.8)
("rust-proc-macro2" ,rust-proc-macro2-1.0)
- ("rust-quickcheck", rust-quickcheck-0.9)
- ("rust-rand", rust-rand-0.7)
- ("rust-regex", rust-regex-1.3)
+ ("rust-quickcheck" ,rust-quickcheck-0.9)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-regex" ,rust-regex-1)
("rust-rusqlite" ,rust-rusqlite-0.19)
- ("rust-tempfile" ,rust-tempfile-3.1)
+ ("rust-structopt" ,rust-structopt-0.3)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-thiserror" ,rust-thiserror-1.0)
("rust-tokio" ,rust-tokio-0.1)
("rust-tokio-core" ,rust-tokio-core-0.1)
- ("rust-unicode-normalization", rust-unicode-normalization-0.1)
+ ("rust-unicode-normalization" ,rust-unicode-normalization-0.1)
("rust-url" ,rust-url-2.1)
("rust-zbase32" ,rust-zbase32-0.1))
#:cargo-development-inputs
@@ -162,6 +162,14 @@
;; FIXME: why do we need to set this here?
(setenv "LIBCLANG_PATH"
(string-append (assoc-ref inputs "clang") "/lib"))
+ #t))
+ (add-after 'unpack 'unpin-deps
+ (lambda _
+ ;; As the comment in that file explains, upstream encourages
+ ;; unpinning, as the pinned version is only to make sure the crate
+ ;; compiles on older versions of rustc
+ (substitute* '("openpgp/Cargo.toml" "tool/Cargo.toml")
+ (("= \"=") "= \""))
#t)))))
(home-page "https://sequoia-pgp.org")
(synopsis "New OpenPGP implementation")
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 562748da4a..109baacc30 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -441,8 +441,16 @@ history mechanism, job control and a C-like syntax.")
(base32
"09yyaadq738zlrnlh1hd3ycj1mv3q5hh4xl1ank70mjnqm6bbi6w"))))
(build-system gnu-build-system)
- (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre"
- "--enable-maildir-support")
+ (arguments `(#:configure-flags
+ `("--with-tcsetpgrp"
+ "--enable-pcre"
+ "--enable-maildir-support"
+ ;; share/zsh/site-functions isn't populated
+ "--disable-site-fndir"
+ ,(string-append
+ "--enable-additional-fpath="
+ "/usr/local/share/zsh/site-functions," ; for foreign OS
+ "/run/current-system/profile/share/zsh/site-functions"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-sh
@@ -795,14 +803,14 @@ Shell (pdksh).")
(package
(name "oil")
;; https://www.oilshell.org/blog/2020/04/release-0.8.pre4.html#comment-on-version-numbering
- (version "0.8.pre5")
+ (version "0.8.pre6")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
- (base32 "02llxx10izxpv1y32qn8k6r0y7al01rzxjirc8h6x8nd9kiaqknl"))))
+ (base32 "11nfwn5b1w74hv78065jg2zm45mqzi59381b0f649j7n3g7yp3iq"))))
(build-system gnu-build-system)
(arguments
`(#:strip-binaries? #f ; strip breaks the binary
@@ -819,7 +827,7 @@ Shell (pdksh).")
(replace 'check
;; The tests are not distributed in the tarballs but upstream
;; recommends running this smoke test.
- ;; https://github.com/oilshell/oil/blob/release/0.8.pre5/INSTALL.txt#L38-L48
+ ;; https://github.com/oilshell/oil/blob/release/0.8.pre6/INSTALL.txt#L38-L48
(lambda _
(let* ((oil "_bin/oil.ovm"))
(invoke/quiet oil "osh" "-c" "echo hi")
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 0c381582e8..cef5eb90ee 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -263,7 +263,7 @@ environment.")))
(define-public s6-portable-utils
(package
(name "s6-portable-utils")
- (version "2.2.2.3")
+ (version "2.2.2.4")
(source
(origin
(method url-fetch)
@@ -271,7 +271,7 @@ environment.")))
"https://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
version ".tar.gz"))
(sha256
- (base32 "0dniniw8y9das12ic7bd34ra817qzfrql18rczs49sfnkf67c98n"))))
+ (base32 "0494saavpqfa4v5kib69p186858yjy87hm5qm804a4xvq51wqbwm"))))
(build-system gnu-build-system)
(inputs `(("skalibs" ,skalibs)))
(arguments
diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm
index 8be3fbfd89..c004e8c21c 100644
--- a/gnu/packages/sssd.scm
+++ b/gnu/packages/sssd.scm
@@ -89,7 +89,8 @@ fundamental object types for C.")
"sssd-" version ".tar.gz"))
(sha256
(base32
- "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if"))))
+ "1h6hwibaf3xa2w6qpzjiiywmfj6zkgbz4r2isf3gd0xm6vq7n6if"))
+ (patches (search-patches "sssd-fix-samba.patch"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 1e7e235136..dfd26abd5a 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -184,7 +184,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
(define r-with-tests
(package
(name "r-with-tests")
- (version "4.0.1")
+ (version "4.0.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cran/src/base/R-"
@@ -192,7 +192,7 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
version ".tar.gz"))
(sha256
(base32
- "0ckgpihkih4b44rx48hpg9p6bv0w67j5z3qc8s4giy6qv2j29zlm"))))
+ "0xdy3dy2bzdiba8z94hjykyra8si8a5q15s0bri7c26scjrymg6k"))))
(build-system gnu-build-system)
(arguments
`(#:disallowed-references (,tzdata-for-tests)
@@ -702,14 +702,14 @@ analysis.")
(define-public r-survival
(package
(name "r-survival")
- (version "3.1-12")
+ (version "3.2-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "survival" version))
(sha256
(base32
- "07zj3gpwncw89hbiwjb6ih9axv5zwdqnbgz9yw9xzws6nrpdcbmn"))))
+ "07h76r2y23w889257krlijcw4n4d7ssx92x7i5qb1xyv5gyvl3rx"))))
(build-system r-build-system)
(propagated-inputs
`(("r-matrix" ,r-matrix)))
@@ -1097,13 +1097,13 @@ using just two functions: melt and dcast (or acast).")
(define-public r-ggplot2
(package
(name "r-ggplot2")
- (version "3.3.1")
+ (version "3.3.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "ggplot2" version))
(sha256
- (base32 "04wvswadlry2n9gnfqlpdqsav1wllnlzb5c9w9ydynllv4vkwfm0"))))
+ (base32 "0wsib5qpzn4d0w1ss3x158xmrawkms8vvsfvr3mh40pvd8g2ibad"))))
(build-system r-build-system)
(propagated-inputs
`(("r-digest" ,r-digest)
@@ -1410,13 +1410,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr
(package
(name "r-knitr")
- (version "1.28")
+ (version "1.29")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
- "0ai382fmpz25qrhdgchs3vph2cdvyd73xyryg4jby5fp67d03vh5"))))
+ "00rcwiq8znmk5h4qgrwd0639xyb38iwbjykqjk3disz3kvrcvbn1"))))
(build-system r-build-system)
(propagated-inputs
`(("r-evaluate" ,r-evaluate)
@@ -2094,14 +2094,14 @@ limited to R.")
(define-public r-backports
(package
(name "r-backports")
- (version "1.1.7")
+ (version "1.1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "backports" version))
(sha256
(base32
- "02vfkqm1kw54y1qax8cmiyg2nk6bmh8j87fc3j22k7852s3y4xxj"))))
+ "1irc9c23hwliwkky1b3hi0dkzwalhb7zgjj08562ff1k8dqv4qf6"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/backports")
(synopsis "Reimplementations of functions introduced since R 3.0.0")
@@ -2683,13 +2683,13 @@ certain criterion, e.g., it contains a certain regular file.")
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
- (version "2.2")
+ (version "2.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
- (base32 "196r3hq1gcr6iamxllq4k40cb109b16ng24ky0q68bwrll80q1mh"))))
+ (base32 "0vdjq4kcyxkr2m27588kk6yi5g53symjshj4jz4n0j18wz53shji"))))
(properties `((upstream-name . "rmarkdown")))
(build-system r-build-system)
(propagated-inputs
@@ -2994,14 +2994,14 @@ statements.")
(define-public r-segmented
(package
(name "r-segmented")
- (version "1.1-0")
+ (version "1.2-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "segmented" version))
(sha256
(base32
- "06cxdrqgnpk5fvbam5i7qa4n71wry0yvlj0jpwbxf267mvpx10fh"))))
+ "0r83p36l6m5sy4lxfjbfajn4gcqb0wv9zh7arny02s6c7fb4756y"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/segmented")
(synopsis "Regression models with breakpoints estimation")
@@ -3154,13 +3154,13 @@ using the multicore functionality of the parallel package.")
(define-public r-dt
(package
(name "r-dt")
- (version "0.13")
+ (version "0.14")
(source (origin
(method url-fetch)
(uri (cran-uri "DT" version))
(sha256
(base32
- "1db35mi4m4q3kha4vhvh693bv04y7h9pdawhsx8f234qjvz7783r"))))
+ "0xhinw7wasrai5wfswp3r48qfv7ppdfd9jc7py2rp63dn0bnvbab"))))
(properties
`((upstream-name . "DT")))
(build-system r-build-system)
@@ -3233,13 +3233,13 @@ analysis of large sparse or dense matrices.")
(define-public r-glmnet
(package
(name "r-glmnet")
- (version "4.0")
+ (version "4.0-2")
(source
(origin
(method url-fetch)
(uri (cran-uri "glmnet" version))
(sha256
- (base32 "1vy8v6filhw9sflk8wwnbgz2mryg70ml4iq4y1c34dlwxczcbzv8"))))
+ (base32 "0qdswxvdwjcnw0by15p9yfzw8laq4f2j0ivpma6q8c5zywldpxxc"))))
(build-system r-build-system)
(native-inputs
`(("gfortran" ,gfortran)
@@ -3247,7 +3247,8 @@ analysis of large sparse or dense matrices.")
(propagated-inputs
`(("r-foreach" ,r-foreach)
("r-matrix" ,r-matrix)
- ("r-shape" ,r-shape)))
+ ("r-shape" ,r-shape)
+ ("r-survival" ,r-survival)))
(home-page "https://www.jstatsoft.org/article/view/v033i01")
(synopsis "Lasso and elastic-net regularized generalized linear models")
(description
@@ -4280,26 +4281,6 @@ plot can be quickly adjusted using a flexible parameter dispatching
mechanism.")
(license license:gpl2+)))
-(define-public r-zoo
- (package
- (name "r-zoo")
- (version "1.8-8")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "zoo" version))
- (sha256
- (base32
- "1rrw431jwaxd9xljp73f15rhcxvwc0xlyrmr0ghi5fj7a03c932f"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-lattice" ,r-lattice)))
- (home-page "http://zoo.R-Forge.R-project.org/")
- (synopsis "S3 infrastructure for regular and irregular time series")
- (description "This package contains an S3 class with methods for totally
-ordered indexed observations. It is particularly aimed at irregular time
-series of numeric vectors/matrices and factors.")
- (license license:gpl2+)))
-
(define-public r-ztable
(package
(name "r-ztable")
@@ -4860,14 +4841,14 @@ estimation and robust multivariate analysis with high breakdown point.")
(define-public r-fit-models
(package
(name "r-fit-models")
- (version "0.5-14")
+ (version "0.63")
(source
(origin
(method url-fetch)
(uri (cran-uri "fit.models" version))
(sha256
(base32
- "0vjbzmx0ambm6yzidb4vbgmhclwzwv2iz2cwl54ccdkvx4cx3fck"))))
+ "0wrrfsgngsfrqnm247f0h6g01807i7lbf5chpyx7hkfdfmm4xbxn"))))
(properties `((upstream-name . "fit.models")))
(build-system r-build-system)
(propagated-inputs
@@ -4937,14 +4918,14 @@ of the points.")
(define-public r-fpc
(package
(name "r-fpc")
- (version "2.2-5")
+ (version "2.2-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "fpc" version))
(sha256
(base32
- "10504hzivbn89ip0cd5bcxd36ivbgin1lw1xhyh3xfckcm25v1a5"))))
+ "0lpn951gy58039gk2wh8nsw6qss8m3flkawv55yq3l6373ly79if"))))
(build-system r-build-system)
(propagated-inputs
`(("r-class" ,r-class)
@@ -5637,30 +5618,6 @@ tools.")
parameters.")
(license license:gpl3))))
-(define-public r-directlabels
- (package
- (name "r-directlabels")
- (version "2020.1.31")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "directlabels" version))
- (sha256
- (base32
- "08s1gnwp4bn8xahwjaq0f1qzhwh2dvybzhq3z7xyzn8cnyzmis6c"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-quadprog" ,r-quadprog)))
- (home-page "http://directlabels.r-forge.r-project.org/")
- (synopsis "Direct labels for multicolor plots")
- (description
- "This package provides an extensible framework for automatically placing
-direct labels onto multicolor plots. Label positions are described using
-positioning methods that can be re-used across several different plots. There
-are heuristics for examining @code{trellis} and @code{ggplot} objects and
-inferring an appropriate positioning method.")
- (license license:gpl3)))
-
(define-public r-catterplots
(let ((commit "ae17cd5e49ddda4ecfe0eba8a4c21df8c88e72c4")
(revision "3"))
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index abaf0f7cbc..c4bc5dd82f 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 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 © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org>
@@ -360,14 +360,14 @@ over the Internet in an HTTP and CDN friendly way;
(define-public rclone
(package
(name "rclone")
- (version "1.52.0")
+ (version "1.52.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/rclone/rclone/releases/download/"
"v" version "/rclone-v" version ".tar.gz"))
(sha256
- (base32 "06zkxnz0ggv8k4ayv3a8jx6ch0hclgs613wagskklqm15zv0dkdq"))))
+ (base32 "0lvmm3qpdix4mnip1dfyawsdvzbcdxw0b0zz7xbgmicbfv1vlpx9"))))
;; FIXME: Rclone bundles some libraries Guix already provides. Need to
;; un-bundle them.
(build-system go-build-system)
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index 99bdd7704b..dfc222057e 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -531,7 +531,11 @@ higher-level API for doing so.")
"1hfxffnpaw49pr3wrkbzq3pnv3nyzsvk5dxndv0yz70xlrbg8a04"))))
(build-system go-build-system)
(arguments
- `(#:import-path "github.com/rcrowley/go-metrics"))
+ ;; Arbitrary precision tests are known to be broken on aarch64, ppc64le
+ ;; and s390x. See: https://github.com/rcrowley/go-metrics/issues/249
+ `(#:tests? ,(not (string-prefix? "aarch64" (or (%current-target-system)
+ (%current-system))))
+ #:import-path "github.com/rcrowley/go-metrics"))
(propagated-inputs
`(("go-github-com-stathat-go" ,go-github-com-stathat-go)))
(synopsis "Go port of Coda Hale's Metrics library")
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index da3f852c05..3d858240b7 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -99,15 +99,15 @@ file system, and many more features.")
(define-public liferea
(package
(name "liferea")
- (version "1.12.6")
+ (version "1.12.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/lwindolf/liferea/"
"releases/download/v" version "/liferea-"
- version "b.tar.bz2"))
+ version ".tar.bz2"))
(sha256
- (base32 "03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d"))))
+ (base32 "1xm5if831llkjcmbq4w9ssgqjgy3zlb5n9y7kh54xpy6afafbsh7"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index b587cbd90e..81ce223385 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1207,7 +1207,7 @@ made by suckless.")
("rust-embed-resource" ,rust-embed-resource-1.3)
("rust-http-req" ,rust-http-req-0.5)
("rust-zip" ,rust-zip-0.5)
- ("rust-tempfile" ,rust-tempfile-3.1)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-named-pipe" ,rust-named-pipe-0.4)
("rust-winapi" ,rust-winapi-0.3))
#:phases
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 2edc9820a8..924dc68c03 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -256,7 +256,7 @@ bindings and many of the powerful features of GNU Emacs.")
("ctags" ,universal-ctags)
("gtkmm" ,gtkmm)
("gtksourceviewmm" ,gtksourceviewmm)
- ("libclang" ,clang)
+ ("libclang" ,clang-10) ;XXX: must be the same version as Mesas LLVM
("libgit2" ,libgit2)))
(synopsis "Lightweight C++ IDE")
(description
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index ec401416ce..37f62c95bf 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -182,9 +182,9 @@ living in the same process.")
"0jvca1qahn9lrwv6f5kfs95icirc15b2a8x9fzczyj996ipg3b5z"))))
(build-system gnu-build-system)
(arguments
- `(,@(if (hurd-target?) '(#:tests? #f) '())
- ; Ensure we don't keep a reference to this buggy software.
- #:disallowed-references (,net-tools)
+ `(#:tests? ,(not (hurd-target?))
+ ;; Ensure we don't keep a reference to net-tools.
+ #:disallowed-references ,(if (hurd-target?) '() (list net-tools))
#:configure-flags
(list
;; GnuTLS doesn't consult any environment variables to specify
diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 160dcb3001..c028a885d2 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,11 +31,14 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
+ #:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages libevent)
- #:use-module (gnu packages ncurses))
-
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages sphinx))
(define-public tmux
(package
@@ -138,6 +142,88 @@ command and helper commands provided by tmuxifier to manage Tmux sessions and
windows.")
(license license:expat)))
+(define-public python-libtmux
+ (package
+ (name "python-libtmux")
+ (version "0.8.2")
+ (source
+ (origin
+ (method git-fetch)
+ ;; PyPI source tarball does not include tests.
+ (uri (git-reference
+ (url "https://github.com/tmux-python/libtmux.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1akjv6aqpc690c4l2cjh0fxbpxxg63sfjggapfjjjaqmcl38g1dz"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("procps" ,procps))) ;tests need top
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("tmux" ,tmux)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; Extend PYTHONPATH so the built package will be found.
+ (setenv "PYTHONPATH"
+ (string-append (getcwd) "/build/lib:"
+ (getenv "PYTHONPATH")))
+ ;; Skip tests that I suspect fail because of a change
+ ;; in behavior in tmux 3 from tmux 2
+ ;; https://github.com/tmux-python/libtmux/issues/281
+ (invoke "pytest" "-vv" "-k"
+ (string-append "not test_show_option_unknown "
+ "and not test_show_window_option_unknown"))
+ #t)))))
+ (home-page "https://github.com/tmux-python/libtmux")
+ (synopsis "Python API for tmux")
+ (description "Libtmux is the tool behind @command{tmuxp}, a tmux workspace
+manager in Python. It creates object mappings to traverse, inspect and interact
+with live tmux sessions.")
+ (license license:expat)))
+
+(define-public python-daemux
+ (package
+ (name "python-daemux")
+ (version "0.1.0")
+ (source
+ ;; We fetch from the Git repo because there are no tests in the PyPI
+ ;; archive.
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/edouardklein/daemux.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cb8v552f2hkwz6d3hwsmrz3gd28jikga3lcc3r1zlw8ra7804ph"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (mkdir-p "tmptmux")
+ (setenv "TMUX_TMPDIR" (string-append (getcwd) "/tmptmux"))
+ (invoke "tmux" "new-session" "-d")
+ (invoke "make" "test"))))))
+ (propagated-inputs
+ `(("python-libtmux" ,python-libtmux)))
+ (native-inputs
+ `(("python-coverage" ,python-coverage)
+ ("python-sphinx" ,python-sphinx)
+ ("tmux" ,tmux)))
+ (home-page "https://github.com/edouardklein/daemux")
+ (synopsis "Start, stop, restart and check daemons via tmux")
+ (description
+ "Daemux lets you run daemons in a @command{tmux} pane. Users can launch
+long-running background tasks, and check these tasks' health by hand, relaunch
+them, etc., by attaching to the corresponding pane in tmux.")
+ (license license:agpl3+)))
+
(define-public tmux-xpanes
(package
(name "tmux-xpanes")
diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm
index 2f2623b0e6..19ab5cf374 100644
--- a/gnu/packages/tor.scm
+++ b/gnu/packages/tor.scm
@@ -8,6 +8,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -141,8 +142,28 @@ rejects UDP traffic from the application you're using.")
;; $out/etc/privoxy.
#:configure-flags (list (string-append "--sysconfdir="
(assoc-ref %outputs "out")
- "/etc/privoxy"))
- #:tests? #f))
+ "/etc/privoxy")
+ "--localstatedir=/var")
+ #:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-default-logging
+ (lambda _
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ ;; Do not create /var/run nor /var/log/privoxy/logfile.
+ (substitute* "GNUmakefile.in"
+ (("(logfile \\|\\| exit )1" _ match)
+ (string-append match "0"))
+ (("(\\$\\(DESTDIR\\)\\$\\(SHARE_DEST\\)) \\\\" _ match)
+ match)
+ ((".*\\$\\(LOG_DEST\\) \\$\\(DESTDIR\\)\\$\\(PID_DEST\\).*")
+ ""))
+ ;; Disable logging in the default configuration to allow for
+ ;; non-root users using it as is.
+ (substitute* "config"
+ (("^logdir") "#logdir")
+ (("^logfile") "#logfile")))
+ #t)))))
(inputs
`(("w3m" ,w3m)
("pcre" ,pcre)
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 7f22646d8c..f643e06974 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
-;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
@@ -167,7 +167,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
(define-public xsnow
(package
(name "xsnow")
- (version "2.0.15")
+ (version "2.0.22")
(source
(origin
(method url-fetch)
@@ -175,7 +175,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
"https://www.ratrabbit.nl/ratrabbit/system/files/xsnow/xsnow-"
version ".tar.gz"))
(sha256
- (base32 "086s42frbz9bk550414v908yrax4iwwlvlxv4zwp39cyp7wgws03"))))
+ (base32 "1880643fal6l7bskqbm4zfbr2s719698mkx4pchrxkjpb240sj0z"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 16136b7662..406a2ad5a1 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -42,6 +42,7 @@
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -121,11 +122,13 @@
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libreoffice)
+ #:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
+ #:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
@@ -935,16 +938,14 @@ operate properly.")
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "4.2.3")
+ (version "4.3")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
- ;; See <https://issues.guix.gnu.org/issue/39719>
- (patches (search-patches "ffmpeg-prefer-dav1d.patch"))
(sha256
(base32
- "0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx"))))
+ "0pbrsv5v96yd8qzb9bk4kw7qk4xqpi03rsd5xfbwnjzlhijd02hx"))))
(build-system gnu-build-system)
(inputs
`(("dav1d" ,dav1d)
@@ -971,6 +972,12 @@ operate properly.")
("mesa" ,mesa)
("openal" ,openal)
("pulseaudio" ,pulseaudio)
+ ;; XXX: rav1e depends on rust, which currently only works on x86_64.
+ ;; See also the related configure flag when changing this.
+ ,@(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ `(("rav1e" ,rav1e))
+ '())
("sdl" ,sdl2)
("soxr" ,soxr)
("speex" ,speex)
@@ -1052,6 +1059,10 @@ operate properly.")
"--enable-libmp3lame"
"--enable-libopus"
"--enable-libpulse"
+ ,@(if (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system)))
+ '("--enable-librav1e")
+ '())
"--enable-libsoxr"
"--enable-libspeex"
"--enable-libtheora"
@@ -1116,6 +1127,24 @@ convert and stream audio and video. It includes the libavcodec
audio/video codec library.")
(license license:gpl2+)))
+;; ungoogled-chromium crashes with ffmpeg 4.3, so stick with this version for
+;; now. See <https://issues.guix.gnu.org/41987>.
+(define-public ffmpeg-4.2
+ (package
+ (inherit ffmpeg)
+ (version "4.2.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ffmpeg)
+ ((#:configure-flags flags)
+ `(delete "--enable-librav1e" ,flags))))))
+
(define-public ffmpeg-3.4
(package
(inherit ffmpeg)
@@ -1130,10 +1159,10 @@ audio/video codec library.")
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags flags)
- `(delete "--enable-libdav1d" (delete "--enable-libaom"
- ,flags)))))
- (inputs (alist-delete "dav1d" (alist-delete "libaom"
- (package-inputs ffmpeg))))))
+ `(delete "--enable-libdav1d" (delete "--enable-libaom" (delete "--enable-librav1e"
+ ,flags))))))
+ (inputs (alist-delete "dav1d" (alist-delete "libaom" (alist-delete "rav1e"
+ (package-inputs ffmpeg)))))))
(define-public ffmpeg-for-stepmania
(hidden-package
@@ -1197,7 +1226,7 @@ videoformats depend on the configuration flags of ffmpeg.")
(define-public vlc
(package
(name "vlc")
- (version "3.0.10")
+ (version "3.0.11")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1206,7 +1235,7 @@ videoformats depend on the configuration flags of ffmpeg.")
"/vlc-" version ".tar.xz"))
(sha256
(base32
- "0cackl1084hcmg4myf3kvjvd6sjxmzn0c0qkmanz6brvgzyanrm9"))))
+ "06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
@@ -1218,10 +1247,6 @@ videoformats depend on the configuration flags of ffmpeg.")
(inputs
`(("alsa-lib" ,alsa-lib)
("avahi" ,avahi)
- ;; XXX Try removing dav1d here and testing AV1 playback when FFmpeg 4.3
- ;; is released.
- ;; <https://issues.guix.gnu.org/issue/39719>
- ("dav1d" ,dav1d)
("dbus" ,dbus)
("eudev" ,eudev)
("flac" ,flac)
@@ -1509,6 +1534,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(("\"youtube-dl\",")
(string-append "\"" ytdl "/bin/youtube-dl\",")))
#t)))
+ (add-before 'configure 'build-reproducibly
+ (lambda _
+ ;; Somewhere in the build system library dependencies are enumerated
+ ;; and passed as linker flags, but the order in which they are added
+ ;; varies. See <https://github.com/mpv-player/mpv/issues/7855>.
+ ;; Set PYTHONHASHSEED as a workaround for deterministic results.
+ (setenv "PYTHONHASHSEED" "1")
+ #t))
(add-before
'configure 'setup-waf
(lambda* (#:key inputs #:allow-other-keys)
@@ -1616,7 +1649,7 @@ To load this plugin, specify the following option when starting mpv:
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2020.06.06")
+ (version "2020.06.16")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -1624,7 +1657,7 @@ To load this plugin, specify the following option when starting mpv:
version ".tar.gz"))
(sha256
(base32
- "1qrrr14glv0jv377n61paq55b6k58jpnwbz2sp5xfl4wnxy5hqny"))))
+ "1fgqi8pvw13p79gl38lnpl7ifa7cwxhzk53c6lmjsk1yhz5455m9"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -2335,7 +2368,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(define-public mlt
(package
(name "mlt")
- (version "6.18.0")
+ (version "6.20.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2344,7 +2377,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(file-name (git-file-name name version))
(sha256
(base32
- "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx"))))
+ "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
@@ -2365,7 +2398,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
- ("ffmpeg" ,ffmpeg-3.4)
+ ("ffmpeg" ,ffmpeg)
("fftw" ,fftw)
("frei0r-plugins" ,frei0r-plugins)
("gdk-pixbuf" ,gdk-pixbuf)
@@ -2771,7 +2804,7 @@ supported players in addition to this package.")
(define-public handbrake
(package
(name "handbrake")
- (version "1.3.2")
+ (version "1.3.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/HandBrake/HandBrake/"
@@ -2779,7 +2812,7 @@ supported players in addition to this package.")
"HandBrake-" version "-source.tar.bz2"))
(sha256
(base32
- "0w7jxjrccvxp7g15dv0spildg5apmqp4gwbcqmg58va2gylynvzc"))
+ "11bzhyp052bmng5119x74xvdj5632smx6qsk537ygda8bzckg2i1"))
(modules '((guix build utils)))
(snippet
;; Remove "contrib" and source not necessary for
@@ -3426,7 +3459,7 @@ It counts more than 100 plugins.")
("pkg-config" ,pkg-config)))
(inputs
`(("libjpeg" ,libjpeg-turbo)
- ("ffmpeg" ,ffmpeg-3.4)
+ ("ffmpeg" ,ffmpeg)
("libmicrohttpd" ,libmicrohttpd)
("sqlite" ,sqlite)))
(arguments
@@ -4003,7 +4036,7 @@ result in several formats:
("rust-console" ,rust-console-0.9)
("rust-serde" ,rust-serde-1.0)
("rust-cc" ,rust-cc-1.0)
- ("rust-rayon" ,rust-rayon-1.3)
+ ("rust-rayon" ,rust-rayon-1)
("rust-byteorder" ,rust-byteorder-1.3)
("rust-clap" ,rust-clap-2)
("rust-vergen" ,rust-vergen-3.1))
@@ -4097,3 +4130,42 @@ can also directly record to WebM or MP4 if you prefer.")
wlroots-based compositors. More specifically, those that support
@code{wlr-screencopy-v1} and @code{xdg-output}.")
(license license:expat)))
+
+(define-public guvcview
+ (package
+ (name "guvcview")
+ (version "2.0.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/guvcview/source/guvcview-"
+ "src-" version ".tar.gz"))
+ (sha256
+ (base32
+ "11byyfpkcik7wvf2qic77zjamfr2rhji97dpj1gy2fg1bvpiqf4m"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; There are no tests and "make check" would fail on an intltool error.
+ '(#:tests? #f))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("intltool" ,intltool)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("eudev" ,eudev)
+ ("libusb" ,libusb)
+ ("v4l-utils" ,v4l-utils) ;libv4l2
+ ("ffmpeg" ,ffmpeg) ;libavcodec, libavutil
+ ("sdl2" ,sdl2)
+ ("gsl" ,gsl)
+ ("portaudio" ,portaudio)
+ ("alsa-lib" ,alsa-lib)))
+ (home-page "http://guvcview.sourceforge.net/")
+ (synopsis "Control your webcam and capture videos and images")
+ (description
+ "GTK+ UVC Viewer (guvcview) is a graphical application to control a
+webcam accessible with Video4Linux (V4L2) and to capture videos and images.
+It provides control over precise settings of the webcam such as exposure,
+brightness, contrast, and frame rate.")
+
+ ;; 'COPYING' is GPLv3 but source headers say GPLv2+.
+ (license license:gpl2+)))
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 2d9447d211..a1abfd1ad5 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -900,3 +900,31 @@ bound by synchronicity. Kick off builds and test suites using one of several
asynchronous adapters (including tmux, screen, and a headless mode), and when
the job completes, errors will be loaded and parsed automatically.")
(license license:vim)))
+
+(define-public vim-eunuch
+ (let ((commit "33e875b31c8b811a0a47908884a5e2339106bbe8")
+ (revision "1"))
+ (package
+ (name "vim-eunuch")
+ (version (git-version "1.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-eunuch")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xadb22kd40swmww0qxmmkcpcq6viy8l167pjck5q32hfngll5d3"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/tpope/vim-eunuch")
+ (synopsis "Vim sugar for the UNIX shell commands")
+ (description "Vim sugar for the UNIX shell commands that need it the most.
+This package includes commands such as @code{SudoWrite} and @code{SudoEdit} and
+help working on Vim buffers and the files they reference with one command.")
+ (license license:vim))))
diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm
new file mode 100644
index 0000000000..d73dd566c5
--- /dev/null
+++ b/gnu/packages/vlang.scm
@@ -0,0 +1,116 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Ryan Prior <rprior@protonmail.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 vlang)
+ #:use-module (gnu packages c)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix git-download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages))
+
+(define-public v
+ (package
+ (name "v")
+ (version "0.1.27")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vlang/v.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1d9qhacllvkqif42jaayixhjyhx7pzslh8p1yr5p19447q763fq1"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; tests are broken in v 0.1.27
+ #:make-flags
+ `("CC=gcc"
+ "GITCLEANPULL=true"
+ "GITFASTCLONE=mkdir -p"
+ "TCCREPO="
+ "TMPTCC=tcc"
+ ,(string-append "TMPVC=" (assoc-ref %build-inputs "vc"))
+ "VCREPO="
+ "VERBOSE=1"
+ "V_ALWAYS_CLEAN_TMP=false")
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'patch-makefile
+ (lambda _
+ (substitute* "Makefile"
+ (("rm -rf") "true")
+ (("v self") "v -cc gcc cmd/v"))
+ #t))
+ ;; A few tests are broken in v 0.1.27. This function should be
+ ;; enabled to run tests in the next release.
+ ;; (replace 'check
+ ;; (lambda _
+ ;; (let* ((tmpbin "tmp/bin")
+ ;; (gcc (which "gcc")))
+ ;; (mkdir-p tmpbin)
+ ;; (symlink gcc (string-append tmpbin "/cc"))
+ ;; (setenv "PATH" (string-append tmpbin ":" (getenv "PATH")))
+ ;; (invoke "./v" "test-fixed"))
+ ;; #t))
+ (replace 'install
+ (lambda _
+ (let* ((bin (string-append (assoc-ref %outputs "out") "/bin"))
+ (tools (string-append bin "/cmd/tools"))
+ (thirdparty (string-append bin "/thirdparty"))
+ (vlib (string-append bin "/vlib"))
+ (vmod (string-append bin "/v.mod")))
+ (mkdir-p bin)
+ (copy-file "./v" (string-append bin "/v"))
+ ;; v requires as of 0.1.27 that these other components are in the
+ ;; same directory. In a future release we may be able to move
+ ;; these into other output folders.
+ (copy-recursively "cmd/tools" tools)
+ (copy-recursively "thirdparty" thirdparty)
+ (copy-recursively "vlib" vlib)
+ (copy-file "v.mod" vmod))
+ #t)))))
+ (inputs
+ `(("glib" ,glib)
+ ("gcc" ,gcc)))
+ (native-inputs
+ `(("vc"
+ ,(let ((vc-version "0884d7092f4c2a4f8ca16da6f1792efa235247be"))
+ ;; v bootstraps from generated c source code from a dedicated
+ ;; repository. It's readable, as generated source goes, and not at all
+ ;; obfuscated, and it's about 15kb. The original source written in
+ ;; golang is lost to the forces of entropy; modifying the generated c
+ ;; source by hand has been a commonly used technique for iterating on
+ ;; the codebase.
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vlang/vc.git")
+ (commit vc-version)))
+ (file-name (git-file-name "vc" vc-version))
+ (sha256
+ (base32 "17bs09iwxfd0si70j48n9nd16gfgcj8imd0azypk3xzzbz4wybnz")))))))
+ (home-page "https://vlang.io/")
+ (synopsis "Compiler for the V programming language")
+ (description
+ "V is a systems programming language. It provides memory safety and thread
+safety guarantees with minimal abstraction.")
+ (license license:expat)))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index a0aff7a32c..e6a2f42ee3 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
+;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -57,6 +58,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
+ #:use-module (gnu packages samba)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml))
@@ -643,9 +645,20 @@ public keys and can roam across IP addresses.")
`(#:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc")
#:phases (modify-phases %standard-phases
- (delete 'configure)) ; no configure script
+ (delete 'configure) ;no configure script
+ (add-before 'build 'setup-environment
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "l2tp.h"
+ (("/usr/sbin/pppd")
+ (string-append (assoc-ref inputs "ppp")
+ "/sbin/pppd")))
+ (setenv "KERNELSRC"
+ (assoc-ref inputs "linux-libre-headers"))
+ #t)))
#:tests? #f)) ; no tests provided
- (inputs `(("libpcap" ,libpcap)))
+ (inputs `(("libpcap" ,libpcap)
+ ("linux-libre-headers" ,linux-libre-headers)
+ ("ppp" ,ppp)))
(home-page "https://www.xelerance.com/software/xl2tpd/")
(synopsis "Layer 2 Tunnelling Protocol Daemon (RFC 2661)")
(description
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 8d1c668b8e..cca722f6e9 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -7370,9 +7370,9 @@ compressed JSON header blocks.
("uglify-js" ,uglify-js)
("pkg-config" ,pkg-config)))
(inputs
- `(("guix" ,guix)))
+ `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))))
(propagated-inputs
- `(("guile" ,guile-3.0)
+ `(("guile" ,@(assoc-ref (package-native-inputs guix) "guile"))
("guile-commonmark" ,guile-commonmark)
("guile-json" ,guile-json-4)))
(home-page "https://github.com/UMCUGenetics/hpcguix-web")
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 615ac788ed..a4259ced90 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -694,14 +694,14 @@ tiled on several screens.")
(define-public xmobar
(package
(name "xmobar")
- (version "0.33")
+ (version "0.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/xmobar/"
"xmobar-" version ".tar.gz"))
(sha256
(base32
- "1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618"))))
+ "0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
@@ -1671,6 +1671,7 @@ productive, customizable lisp based systems.")
(uri (git-reference
(url "https://github.com/stumpwm/stumpwm-contrib.git")
(commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32 "0giac390bq95ag41xkxqp8jjrhfx1wpgglz7jg5rkm0wjhcwmyml"))))
(build-system asdf-build-system/sbcl)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index e5fe3e14cf..9b663aa158 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3012,8 +3012,8 @@ X server.")
(define-public xf86-video-intel
- (let ((commit "f66d39544bb8339130c96d282a80f87ca1606caf")
- (revision "15"))
+ (let ((commit "5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc")
+ (revision "16"))
(package
(name "xf86-video-intel")
(version (git-version "2.99.917" revision commit))
@@ -3026,7 +3026,7 @@ X server.")
(commit commit)))
(sha256
(base32
- "14rwbbn06l8qpx7s5crxghn80vgcx8jmfc7qvivh72d81r0kvywl"))
+ "1y1v6cp3r3isq3bc7mypkvypwjygi205k06slmidx2q3sz4h4mjc"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs `(("mesa" ,mesa)
diff --git a/gnu/services/nix.scm b/gnu/services/nix.scm
index dfe33991d0..3c0065207d 100644
--- a/gnu/services/nix.scm
+++ b/gnu/services/nix.scm
@@ -31,6 +31,7 @@
#:use-module (guix store)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
+ #:use-module (ice-9 format)
#:export (nix-service-type))
;;; Commentary:
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index 77c4d0a8be..e14ceca231 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -266,8 +266,7 @@ stored."
(define (scm->go file)
"Compile FILE, which contains code to be loaded by shepherd's config file,
and return the resulting '.go' file."
- ;; FIXME: %current-target-system may not be bound <https://bugs.gnu.org/29296>
- (let ((target (%current-target-system)))
+ (let-system (system target)
(with-extensions (list shepherd)
(computed-file (string-append (basename (scheme-file-name file) ".scm")
".go")
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 989e439d5d..36b1738921 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,24 +19,46 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services virtualization)
- #:use-module (gnu services)
- #:use-module (gnu services configuration)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu bootloader grub)
+ #:use-module (gnu image)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages ssh)
+ #:use-module (gnu packages virtualization)
#:use-module (gnu services base)
+ #:use-module (gnu services configuration)
#:use-module (gnu services dbus)
#:use-module (gnu services shepherd)
- #:use-module (gnu system shadow)
+ #:use-module (gnu services ssh)
+ #:use-module (gnu services)
#:use-module (gnu system file-systems)
- #:use-module (gnu packages admin)
- #:use-module (gnu packages virtualization)
- #:use-module (guix records)
+ #:use-module (gnu system hurd)
+ #:use-module (gnu system image)
+ #:use-module (gnu system images hurd)
+ #:use-module (gnu system shadow)
+ #:use-module (gnu system)
+ #:use-module (guix derivations)
#:use-module (guix gexp)
+ #:use-module (guix monads)
#:use-module (guix packages)
+ #:use-module (guix records)
+ #:use-module (guix store)
+ #:use-module (guix utils)
+
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
- #:export (libvirt-configuration
+ #:export (%hurd-vm-operating-system
+ hurd-vm-configuration
+ hurd-vm-disk-image
+ hurd-vm-id
+ hurd-vm-net-options
+ hurd-vm-options
+ hurd-vm-service-type
+
+ libvirt-configuration
libvirt-service-type
virtlog-configuration
virtlog-service-type
@@ -773,3 +796,112 @@ given QEMU package."
"This service supports transparent emulation of binaries
compiled for other architectures using QEMU and the @code{binfmt_misc}
functionality of the kernel Linux.")))
+
+
+;;;
+;;; The Hurd in VM service: a Childhurd.
+;;;
+
+(define %hurd-vm-operating-system
+ (operating-system
+ (inherit %hurd-default-operating-system)
+ (host-name "childhurd")
+ (timezone "Europe/Amsterdam")
+ (bootloader (bootloader-configuration
+ (bootloader grub-minimal-bootloader)
+ (target "/dev/vda")
+ (timeout 0)))
+ (services (cons*
+ (service openssh-service-type
+ (openssh-configuration
+ (openssh openssh-sans-x)
+ (use-pam? #f)
+ (port-number 2222)
+ (permit-root-login #t)
+ (allow-empty-passwords? #t)
+ (password-authentication? #t)))
+ %base-services/hurd))))
+
+(define-record-type* <hurd-vm-configuration>
+ hurd-vm-configuration make-hurd-vm-configuration
+ hurd-vm-configuration?
+ (os hurd-vm-configuration-os ;<operating-system>
+ (default %hurd-vm-operating-system))
+ (qemu hurd-vm-configuration-qemu ;<package>
+ (default qemu-minimal))
+ (image hurd-vm-configuration-image ;string
+ (thunked)
+ (default (hurd-vm-disk-image this-record)))
+ (disk-size hurd-vm-configuration-disk-size ;number or 'guess
+ (default 'guess))
+ (memory-size hurd-vm-configuration-memory-size ;number
+ (default 512))
+ (options hurd-vm-configuration-options ;list of string
+ (default `("--snapshot")))
+ (id hurd-vm-configuration-id ;#f or integer [1..]
+ (default #f))
+ (net-options hurd-vm-configuration-net-options ;list of string
+ (thunked)
+ (default (hurd-vm-net-options this-record))))
+
+(define (hurd-vm-disk-image config)
+ "Return a disk-image for the Hurd according to CONFIG."
+ (let ((os (hurd-vm-configuration-os config))
+ (disk-size (hurd-vm-configuration-disk-size config)))
+ (system-image
+ (image
+ (inherit hurd-disk-image)
+ (size disk-size)
+ (operating-system os)))))
+
+(define (hurd-vm-net-options config)
+ (let ((id (or (hurd-vm-configuration-id config) 0)))
+ (define (qemu-vm-port base)
+ (number->string (+ base (* 1000 id))))
+ `("--device" "rtl8139,netdev=net0"
+ "--netdev" ,(string-append
+ "user,id=net0"
+ ",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 10022) "-:2222"
+ ",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 15900) "-:5900"))))
+
+(define (hurd-vm-shepherd-service config)
+ "Return a <shepherd-service> for a Hurd in a Virtual Machine with CONFIG."
+
+ (let ((image (hurd-vm-configuration-image config))
+ (qemu (hurd-vm-configuration-qemu config))
+ (memory-size (hurd-vm-configuration-memory-size config))
+ (options (hurd-vm-configuration-options config))
+ (id (hurd-vm-configuration-id config))
+ (net-options (hurd-vm-configuration-net-options config))
+ (provisions '(hurd-vm childhurd)))
+
+ (define vm-command
+ #~(list
+ (string-append #$qemu "/bin/qemu-system-i386")
+ #$@(if (file-exists? "/dev/kvm") '("--enable-kvm") '())
+ "-m" (number->string #$memory-size)
+ #$@net-options
+ #$@options
+ "--hda" #+image))
+
+ (list
+ (shepherd-service
+ (documentation "Run the Hurd in a Virtual Machine: a Childhurd.")
+ (provision (if id
+ (map
+ (cute symbol-append <>
+ (string->symbol (number->string id)))
+ provisions)
+ provisions))
+ (requirement '(networking))
+ (start #~(make-forkexec-constructor #$vm-command))
+ (stop #~(make-kill-destructor))))))
+
+(define hurd-vm-service-type
+ (service-type
+ (name 'hurd-vm)
+ (extensions (list (service-extension shepherd-root-service-type
+ hurd-vm-shepherd-service)))
+ (default-value (hurd-vm-configuration))
+ (description
+ "Provide a Virtual Machine running the GNU/Hurd.")))
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 9fcfe8a0dc..63d2324b91 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
@@ -57,6 +57,7 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (ice-9 match)
+ #:use-module (ice-9 format)
#:export (<httpd-configuration>
httpd-configuration
httpd-configuration?
diff --git a/gnu/system.scm b/gnu/system.scm
index d51691fe76..44baacee7b 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -941,7 +941,9 @@ use 'plain-file' instead~%")
;; Default set of setuid-root programs.
(let ((shadow (@ (gnu packages admin) shadow)))
(list (file-append shadow "/bin/passwd")
+ (file-append shadow "/bin/sg")
(file-append shadow "/bin/su")
+ (file-append shadow "/bin/newgrp")
(file-append shadow "/bin/newuidmap")
(file-append shadow "/bin/newgidmap")
(file-append inetutils "/bin/ping")
@@ -1191,6 +1193,7 @@ a list of <menu-entry>, to populate the \"old entries\" menu."
"--device-master-port='${device-port}'"
"--exec-server-task='${exec-task}'"
"--store-type=typed"
+ "--x-xattr-translator-records"
"'${root}'" "'$(task-create)'" "'$(task-resume)'"))
(target (%current-target-system))
(libc (if target
diff --git a/gnu/system/hurd.scm b/gnu/system/hurd.scm
index 2205def577..43d98cc8c2 100644
--- a/gnu/system/hurd.scm
+++ b/gnu/system/hurd.scm
@@ -81,7 +81,10 @@
(service guix-service-type
(guix-configuration
(extra-options '("--disable-chroot"
- "--disable-deduplication"))))))
+ "--disable-deduplication"))))
+ (service special-files-service-type
+ `(("/bin/sh" ,(file-append bash "/bin/sh"))
+ ("/usr/bin/env" ,(file-append coreutils "/bin/env"))))))
(define %hurd-default-operating-system
(operating-system
diff --git a/gnu/system/image.scm b/gnu/system/image.scm
index 1bda25fd7f..36f56e237d 100644
--- a/gnu/system/image.scm
+++ b/gnu/system/image.scm
@@ -53,10 +53,12 @@
#:use-module (srfi srfi-35)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
- #:export (esp-partition
+ #:export (root-offset
+ root-label
+
+ esp-partition
root-partition
- hurd-disk-image
efi-disk-image
iso9660-image
@@ -94,27 +96,6 @@
(flags '(boot))
(initializer (gexp initialize-root-partition))))
-(define hurd-initialize-root-partition
- #~(lambda* (#:rest args)
- (apply initialize-root-partition
- (append args
- (list #:make-device-nodes
- make-hurd-device-nodes)))))
-
-(define hurd-disk-image
- (image
- (format 'disk-image)
- (target "i586-pc-gnu")
- (partitions
- (list (partition
- (size 'guess)
- (offset root-offset)
- (label root-label)
- (file-system "ext2")
- (file-system-options '("-o" "hurd" "-O" "ext_attr"))
- (flags '(boot))
- (initializer hurd-initialize-root-partition))))))
-
(define efi-disk-image
(image
(format 'disk-image)
@@ -127,9 +108,7 @@
(list (partition
(size 'guess)
(label "GUIX_IMAGE")
- (flags '(boot)))))
- ;; XXX: Temporarily disable compression to speed-up the tests.
- (compression? #f)))
+ (flags '(boot)))))))
;;
@@ -255,18 +234,23 @@ used in the image."
(graph (match inputs
(((names . _) ...)
names)))
- (root-builder
+ (type (partition-file-system partition))
+ (image-builder
(with-imported-modules*
- (let* ((initializer #$(partition-initializer partition)))
+ (let ((initializer #$(partition-initializer partition))
+ (inputs '#+(list e2fsprogs fakeroot dosfstools mtools))
+ (image-root "tmp-root"))
(sql-schema #$schema)
+ (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+
;; Allow non-ASCII file names--e.g., 'nss-certs'--to be
;; decoded.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
- (initializer #$output
+ (initializer image-root
#:references-graphs '#$graph
#:deduplicate? #f
#:system-directory #$os
@@ -277,19 +261,12 @@ used in the image."
#+(bootloader-installer bootloader)
#:bootcfg #$bootcfg
#:bootcfg-location
- #$(bootloader-configuration-file bootloader)))))
- (image-root
- (computed-file "partition-image-root" root-builder
- #:options `(#:references-graphs ,inputs)))
- (type (partition-file-system partition))
- (image-builder
- (with-imported-modules*
- (let ((inputs '#+(list e2fsprogs dosfstools mtools)))
- (set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+ #$(bootloader-configuration-file bootloader))
(make-partition-image #$(partition->gexp partition)
#$output
- #$image-root)))))
- (computed-file "partition.img" image-builder)))
+ image-root)))))
+ (computed-file "partition.img" image-builder
+ #:options `(#:references-graphs ,inputs))))
(define (partition->config partition)
;; Return the genimage partition configuration for PARTITION.
@@ -324,7 +301,11 @@ image ~a {
}~%" #$genimage-name #$image-type (list #$@partitions-config))))))))
(computed-file "genimage.cfg" builder)))
- (let* ((substitutable? (image-substitutable? image))
+ (let* ((image-name (image-name image))
+ (name (if image-name
+ (symbol->string image-name)
+ name))
+ (substitutable? (image-substitutable? image))
(builder
(with-imported-modules*
(let ((inputs '#+(list genimage coreutils findutils))
@@ -388,33 +369,31 @@ used in the image. "
(graph (match inputs
(((names . _) ...)
names)))
- (root-builder
- (with-imported-modules*
- (sql-schema #$schema)
-
- ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
- (setenv "GUIX_LOCPATH"
- #+(file-append glibc-utf8-locales "/lib/locale"))
- (setlocale LC_ALL "en_US.utf8")
-
- (initialize-root-partition #$output
- #:references-graphs '#$graph
- #:deduplicate? #f
- #:system-directory #$os)))
- (image-root
- (computed-file "image-root" root-builder
- #:options `(#:references-graphs ,inputs)))
(builder
(with-imported-modules*
(let* ((inputs '#$(list parted e2fsprogs dosfstools xorriso
- sed grep coreutils findutils gawk)))
+ sed grep coreutils findutils gawk))
+ (image-root "tmp-root"))
+ (sql-schema #$schema)
+
+ ;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded.
+ (setenv "GUIX_LOCPATH"
+ #+(file-append glibc-utf8-locales "/lib/locale"))
+
+ (setlocale LC_ALL "en_US.utf8")
+
(set-path-environment-variable "PATH" '("bin" "sbin") inputs)
+
+ (initialize-root-partition image-root
+ #:references-graphs '#$graph
+ #:deduplicate? #f
+ #:system-directory #$os)
(make-iso9660-image #$xorriso
'#$grub-mkrescue-environment
#$bootloader
#$bootcfg
#$os
- #$image-root
+ image-root
#$output
#:references-graphs '#$graph
#:register-closures? #$register-closures?
@@ -524,15 +503,15 @@ it can be used for bootloading."
"Return the derivation of IMAGE. It can be a raw disk-image or an ISO9660
image, depending on IMAGE format."
(define substitutable? (image-substitutable? image))
-
- (let* ((os (operating-system-for-image image))
- (image* (image-with-os image os))
- (target (image-target image))
- (register-closures? (has-guix-service-type? os))
- (bootcfg (operating-system-bootcfg os))
- (bootloader (bootloader-configuration-bootloader
- (operating-system-bootloader os))))
- (with-parameters ((%current-target-system target))
+ (define target (image-target image))
+
+ (with-parameters ((%current-target-system target))
+ (let* ((os (operating-system-for-image image))
+ (image* (image-with-os image os))
+ (register-closures? (has-guix-service-type? os))
+ (bootcfg (operating-system-bootcfg os))
+ (bootloader (bootloader-configuration-bootloader
+ (operating-system-bootloader os))))
(case (image-format image)
((disk-image)
(system-disk-image image*
@@ -569,12 +548,9 @@ addition of the <image> record."
(_ (cond
((and target
(hurd-triplet? target))
- hurd-disk-image)
+ (module-ref (resolve-interface '(gnu system images hurd))
+ 'hurd-disk-image))
(else
efi-disk-image)))))
-;;; Local Variables:
-;;; eval: (put 'maybe-with-target 'scheme-indent-function 1)
-;;; End:
-
;;; image.scm ends here
diff --git a/gnu/system/images/hurd.scm b/gnu/system/images/hurd.scm
new file mode 100644
index 0000000000..31942e7386
--- /dev/null
+++ b/gnu/system/images/hurd.scm
@@ -0,0 +1,85 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; 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 system images hurd)
+ #:use-module (guix gexp)
+ #:use-module (gnu bootloader)
+ #:use-module (gnu bootloader grub)
+ #:use-module (gnu image)
+ #:use-module (gnu packages ssh)
+ #:use-module (gnu services)
+ #:use-module (gnu services ssh)
+ #:use-module (gnu system)
+ #:use-module (gnu system file-systems)
+ #:use-module (gnu system hurd)
+ #:use-module (gnu system image)
+ #:export (hurd-barebones-os
+ hurd-disk-image
+ hurd-barebones-disk-image))
+
+(define hurd-barebones-os
+ (operating-system
+ (inherit %hurd-default-operating-system)
+ (bootloader (bootloader-configuration
+ (bootloader grub-minimal-bootloader)
+ (target "/dev/sdX")))
+ (file-systems (cons (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext2"))
+ %base-file-systems))
+ (host-name "guixygnu")
+ (timezone "Europe/Amsterdam")
+ (packages (cons openssh-sans-x %base-packages/hurd))
+ (services (cons (service openssh-service-type
+ (openssh-configuration
+ (openssh openssh-sans-x)
+ (use-pam? #f)
+ (port-number 2222)
+ (permit-root-login #t)
+ (allow-empty-passwords? #t)
+ (password-authentication? #t)))
+ %base-services/hurd))))
+
+(define hurd-initialize-root-partition
+ #~(lambda* (#:rest args)
+ (apply initialize-root-partition
+ (append args
+ (list #:make-device-nodes
+ make-hurd-device-nodes)))))
+
+(define hurd-disk-image
+ (image
+ (format 'disk-image)
+ (target "i586-pc-gnu")
+ (partitions
+ (list (partition
+ (size 'guess)
+ (offset root-offset)
+ (label root-label)
+ (file-system "ext2")
+ (file-system-options '("-o" "hurd" "-O" "ext_attr"))
+ (flags '(boot))
+ (initializer hurd-initialize-root-partition))))))
+
+(define hurd-barebones-disk-image
+ (image
+ (inherit hurd-disk-image)
+ (name 'hurd-barebones-disk-image)
+ (operating-system hurd-barebones-os)))
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 7c58f876a3..c3f98302ad 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017, 2018 Mark H Weaver <mhw@netris.org>
;;;
@@ -40,6 +40,7 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
+ #:use-module (ice-9 format)
#:export (mapped-device
mapped-device?
mapped-device-source
diff --git a/gnu/system/uuid.scm b/gnu/system/uuid.scm
index 225959e2b7..bc3af69610 100644
--- a/gnu/system/uuid.scm
+++ b/gnu/system/uuid.scm
@@ -298,5 +298,5 @@ corresponding bytevector; otherwise return #f."
(bytevector=? (uuid-bytevector a) b))
(((? uuid? a) (? uuid? b))
(bytevector=? (uuid-bytevector a) (uuid-bytevector b)))
- ((a b)
+ (((or (? uuid? a) (? bytevector? a)) (or (? uuid? b) (? bytevector? b)))
(uuid=? b a))))
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index db355b85ca..b2edfa5c22 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -247,6 +247,8 @@ packages defined in installation-os."
(operating-system
(operating-system-with-gc-roots
os (list target guile-final)))
+ ;; Do not compress to speed-up the tests.
+ (compression? #f)
;; Don't provide substitutes; too big.
(substitutable? #f)))))
(define install
@@ -301,7 +303,8 @@ packages defined in installation-os."
;; Run SCRIPT. It typically invokes 'reboot' as a last step and
;; thus normally gets killed with SIGTERM by PID 1.
(let ((status (marionette-eval '(system #$script) marionette)))
- (exit (or (equal? (status:term-sig status) SIGTERM)
+ (exit (or (eof-object? status)
+ (equal? (status:term-sig status) SIGTERM)
(equal? (status:exit-val status) 0)))))
(when #$(->bool gui-test)
diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm
index 29259c5785..f590b6ea42 100644
--- a/guix/build-system/cmake.scm
+++ b/guix/build-system/cmake.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -113,6 +114,7 @@
(phases '(@ (guix build cmake-build-system)
%standard-phases))
(system (%current-system))
+ (substitutable? #t)
(imported-modules %cmake-build-system-modules)
(modules '((guix build cmake-build-system)
(guix build utils))))
@@ -162,6 +164,7 @@ provides a 'CMakeLists.txt' file as its build system."
#:inputs inputs
#:modules imported-modules
#:outputs outputs
+ #:substitutable? substitutable?
#:guile-for-build guile-for-build))
@@ -192,6 +195,7 @@ provides a 'CMakeLists.txt' file as its build system."
"bin" "sbin"))
(phases '(@ (guix build cmake-build-system)
%standard-phases))
+ (substitutable? #t)
(system (%current-system))
(build (nix-system->gnu-triplet system))
(imported-modules %cmake-build-system-modules)
@@ -271,6 +275,7 @@ build system."
#:inputs (append native-drvs target-drvs)
#:outputs outputs
#:modules imported-modules
+ #:substitutable? substitutable?
#:guile-for-build guile-for-build))
(define cmake-build-system
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index f59567febb..6b481ad45c 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -235,25 +235,21 @@ exact build phases are defined by PHASES."
(source s)
(arguments
;; Use the right phases and modules.
- (let* ((args (default-keyword-arguments (package-arguments p)
- `(#:phases #f
- #:modules ,%default-modules
- #:imported-modules ,%gnu-build-system-modules))))
- (substitute-keyword-arguments args
- ((#:modules modules)
- `((guix build gnu-dist)
- ,@modules))
- ((#:imported-modules modules)
- `((guix build gnu-dist)
- ,@modules))
- ((#:phases _)
- phases))))
+ (substitute-keyword-arguments (package-arguments p)
+ ((#:modules modules %default-modules)
+ `((guix build gnu-dist)
+ ,@modules))
+ ((#:imported-modules modules %gnu-build-system-modules)
+ `((guix build gnu-dist)
+ ,@modules))
+ ((#:phases _ #f)
+ phases)))
(native-inputs
;; Add autotools & co. as inputs.
(let ((ref (lambda (module var)
(module-ref (resolve-interface module) var))))
`(,@(package-native-inputs p)
- ("autoconf" ,((ref '(gnu packages autotools) 'autoconf-wrapper)))
+ ("autoconf" ,(ref '(gnu packages autotools) 'autoconf-wrapper))
("automake" ,(ref '(gnu packages autotools) 'automake))
("libtool" ,(ref '(gnu packages autotools) 'libtool))
("gettext" ,(ref '(gnu packages gettext) 'gnu-gettext))
@@ -517,9 +513,11 @@ platform."
(define canonicalize-reference
(match-lambda
((? package? p)
- (derivation->output-path (package-cross-derivation store p system)))
+ (derivation->output-path (package-cross-derivation store p
+ target system)))
(((? package? p) output)
- (derivation->output-path (package-cross-derivation store p system)
+ (derivation->output-path (package-cross-derivation store p
+ target system)
output))
((? string? output)
output)))
diff --git a/guix/build/compile.scm b/guix/build/compile.scm
index ea7e1d2d03..b86ec3b743 100644
--- a/guix/build/compile.scm
+++ b/guix/build/compile.scm
@@ -100,10 +100,9 @@
(cond ((or (string-contains file "gnu/packages/")
(string-contains file "gnu/tests/"))
- ;; Level 0 is good enough but partial evaluation helps preserve the
- ;; "macro writer's bill of rights".
- (override-option #:partial-eval? #t
- (optimizations-for-level 0)))
+ ;; Use '-O1' to have partial evaluation and primitive inlining so we
+ ;; can honor the "macro writer's bill of rights".
+ (optimizations-for-level 1))
((string-contains file "gnu/services/")
;; '-O2 -Ono-letrectify' compiles about ~20% faster than '-O2' for
;; large files like gnu/services/mail.scm.
diff --git a/guix/build/gnu-dist.scm b/guix/build/gnu-dist.scm
index bf1c63cb85..fce1cd0759 100644
--- a/guix/build/gnu-dist.scm
+++ b/guix/build/gnu-dist.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2015, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -30,26 +30,6 @@
;;;
;;; Code:
-(define* (copy-source #:key source #:allow-other-keys)
- (copy-recursively source "."))
-
-(define* (autoreconf #:rest args)
- (letrec-syntax ((try-files (syntax-rules (else)
- ((_ (else fallback ...))
- (begin fallback ...))
- ((_ file files ... (else fallback ...))
- (if (file-exists? file)
- (begin
- (format #t "bootstrapping with `~a'...~%"
- file)
- (invoke (string-append "./" file)))
- (try-files files ...
- (else fallback ...)))))))
- (try-files "bootstrap" "bootstrap.sh" "autogen" "autogen.sh"
- (else
- (format #t "bootstrapping with `autoreconf'...~%")
- (invoke "autoreconf" "-vfi")))))
-
(define* (build #:key build-before-dist? make-flags (dist-target "distcheck")
#:allow-other-keys
#:rest args)
@@ -60,23 +40,10 @@
(apply invoke "make" dist-target make-flags))
(define* (install-dist #:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (meta (string-append out "/nix-support")) ; Hydra meta-data
- (tarballs (find-files "." "\\.tar\\.")))
- (mkdir out)
+ (let ((out (assoc-ref outputs "out")))
(for-each (lambda (tarball)
- (copy-file tarball (string-append out "/" tarball)))
- out)
-
- (mkdir meta)
- (call-with-output-file (string-append out "/hydra-build-products")
- (lambda (port)
- (for-each (lambda (tarball)
- ;; This tells Hydra's what kind of build products we have,
- ;; so it can represent them nicely. See `product-list.tt'
- ;; in Hydra for details.
- (format port "file source-dist ~a/~a~%" out tarball))
- tarballs)))
+ (install-file tarball out))
+ (find-files "." "\\.tar\\."))
#t))
(define %dist-phases
@@ -84,8 +51,7 @@
(modify-phases %standard-phases
(delete 'strip)
(replace 'install install-dist)
- (replace 'build build)
- (add-before 'configure 'autoreconf autoreconf)
- (replace 'unpack copy-source)))
+ (add-after 'build 'build-dist build)
+ (delete 'build)))
;;; gnu-dist.scm ends here
diff --git a/guix/build/lisp-utils.scm b/guix/build/lisp-utils.scm
index c7a589c902..5bb3d81c9e 100644
--- a/guix/build/lisp-utils.scm
+++ b/guix/build/lisp-utils.scm
@@ -186,13 +186,17 @@ asdf:system-depends-on. First load the system's ASD-FILE."
(_ system))))
(define* (generate-system-definition system
- #:key version dependencies)
+ #:key version dependencies component?)
`(asdf:defsystem
,(normalize-string system)
- :class asdf/bundle:prebuilt-system
+ ,@(if component?
+ '(:class asdf/bundle:prebuilt-system)
+ '())
:version ,version
:depends-on ,dependencies
- :components ((:compiled-file ,(compiled-system system)))
+ ,@(if component?
+ `(:components ((:compiled-file ,(compiled-system system))))
+ '())
,@(if (string=? "ecl" (%lisp-type))
`(:lib ,(string-append system ".a"))
'())))
@@ -311,14 +315,20 @@ system to find its dependencies, as described by GENERATE-DEPENDENCY-LINKS."
lisp-input-map)
(map dependency-name dependencies)))
+ ;; Ensure directory exists, which might not be the case for an .asd without components.
+ (mkdir-p (dirname asd-file))
(call-with-output-file asd-file
(lambda (port)
(display
(replace-escaped-macros
(format #f "~y~%~y~%"
- (generate-system-definition system
- #:version version
- #:dependencies dependencies)
+ (generate-system-definition
+ system
+ #:version version
+ #:dependencies dependencies
+ ;; Some .asd don't have components, and thus they don't generate any .fasl.
+ #:component? (pair?
+ (find-files (dirname asd-file) "--system\\.fasl$")))
(generate-dependency-links registry system)))
port))))
diff --git a/guix/build/po.scm b/guix/build/po.scm
index 47ff67541c..eb9690ad1a 100644
--- a/guix/build/po.scm
+++ b/guix/build/po.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,7 +20,6 @@
(define-module (guix build po)
#:use-module (ice-9 match)
#:use-module (ice-9 peg)
- #:use-module (ice-9 regex)
#:use-module (ice-9 textual-ports)
#:export (read-po-file))
@@ -41,12 +41,22 @@
(and (ignore "\"") (* str-chr) (ignore "\"")
(? (and (ignore (* whitespace)) content))))
+(define (interpret-newline-escape str)
+ "Replace '\\n' sequences in STR with a newline character."
+ (let loop ((str str)
+ (result '()))
+ (match (string-contains str "\\n")
+ (#f (string-concatenate-reverse (cons str result)))
+ (index
+ (let ((prefix (string-take str index)))
+ (loop (string-drop str (+ 2 index))
+ (append (list "\n" prefix) result)))))))
+
(define (parse-tree->assoc parse-tree)
"Converts a po PARSE-TREE to an association list."
- (define regex (make-regexp "\\\\n"))
(match parse-tree
- ('() '())
- ((entry parse-tree ...)
+ (() '())
+ ((entry . parse-tree)
(match entry
((? string? entry)
(parse-tree->assoc parse-tree))
@@ -57,8 +67,8 @@
(('entry ('msgid msgid) 'msgstr)
(parse-tree->assoc parse-tree))
(('entry ('msgid msgid) ('msgstr msgstr))
- (acons (regexp-substitute/global #f regex msgid 'pre "\n" 'post)
- (regexp-substitute/global #f regex msgstr 'pre "\n" 'post)
+ (acons (interpret-newline-escape msgid)
+ (interpret-newline-escape msgstr)
(parse-tree->assoc parse-tree)))))))
(define (read-po-file port)
diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm
index 1dc7976879..67ee9b665a 100644
--- a/guix/build/profiles.scm
+++ b/guix/build/profiles.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -167,6 +167,10 @@ SEARCH-PATHS."
;; Store meta-data.
(call-with-output-file manifest-file
(lambda (p)
+ (display "\
+;; This file was automatically generated and is for internal use only.
+;; It cannot be passed to the '--manifest' option.\n\n"
+ p)
(pretty-print manifest p)))
;; Make sure we can write to 'OUTPUT/etc'. 'union-build' above could have
diff --git a/guix/channels.scm b/guix/channels.scm
index 84c47fc0d0..3eec5df883 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -21,6 +21,11 @@
(define-module (guix channels)
#:use-module (git)
#:use-module (guix git)
+ #:use-module (guix git-authenticate)
+ #:use-module ((guix openpgp)
+ #:select (openpgp-public-key-fingerprint
+ openpgp-format-fingerprint))
+ #:use-module (guix base16)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (guix modules)
@@ -28,6 +33,7 @@
#:use-module (guix monads)
#:use-module (guix profiles)
#:use-module (guix packages)
+ #:use-module (guix progress)
#:use-module (guix derivations)
#:use-module (guix combinators)
#:use-module (guix diagnostics)
@@ -48,17 +54,23 @@
#:autoload (guix self) (whole-package make-config.scm)
#:autoload (guix inferior) (gexp->derivation-in-inferior) ;FIXME: circular dep
#:autoload (guix quirks) (%quirks %patches applicable-patch? apply-patch)
+ #:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (ice-9 vlist)
#:use-module ((ice-9 rdelim) #:select (read-string))
+ #:use-module ((rnrs bytevectors) #:select (bytevector=?))
#:export (channel
channel?
channel-name
channel-url
channel-branch
channel-commit
+ channel-introduction
channel-location
+ channel-introduction?
+ ;; <channel-introduction> accessors purposefully omitted for now.
+
%default-channels
guix-channel?
@@ -67,6 +79,7 @@
channel-instance-commit
channel-instance-checkout
+ authenticate-channel
latest-channel-instances
checkout->channel-instance
latest-channel-derivation
@@ -104,20 +117,63 @@
(url channel-url)
(branch channel-branch (default "master"))
(commit channel-commit (default #f))
+ (introduction channel-introduction (default #f))
(location channel-location
(default (current-source-location)) (innate)))
+;; Channel introductions. A "channel introduction" provides a commit/signer
+;; pair that specifies the first commit of the authentication process as well
+;; as its signer's fingerprint. The pair must be signed by the signer of that
+;; commit so that only them may emit this introduction. Introductions are
+;; used to bootstrap trust in a channel.
+(define-record-type <channel-introduction>
+ (make-channel-introduction first-signed-commit first-commit-signer
+ signature)
+ channel-introduction?
+ (first-signed-commit channel-introduction-first-signed-commit) ;hex string
+ (first-commit-signer channel-introduction-first-commit-signer) ;bytevector
+ (signature channel-introduction-signature)) ;string
+
+(define %guix-channel-introduction
+ ;; Introduction of the official 'guix channel. The chosen commit is the
+ ;; first one that introduces '.guix-authorizations' on the 'staging'
+ ;; branch that was eventually merged in 'master'. Any branch starting
+ ;; before that commit cannot be merged or it will be rejected by 'guix pull'
+ ;; & co.
+ (make-channel-introduction
+ "9edb3f66fd807b096b48283debdcddccfea34bad" ;2020-05-26
+ (base16-string->bytevector
+ (string-downcase
+ (string-filter char-set:hex-digit ;mbakke
+ "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))
+ #f)) ;TODO: Add an intro signature so it can be exported.
+
+(define %default-channel-url
+ ;; URL of the default 'guix' channel.
+ "https://git.savannah.gnu.org/git/guix.git")
+
(define %default-channels
;; Default list of channels.
(list (channel
(name 'guix)
(branch "master")
- (url "https://git.savannah.gnu.org/git/guix.git"))))
+ (url %default-channel-url)
+ (introduction %guix-channel-introduction))))
(define (guix-channel? channel)
"Return true if CHANNEL is the 'guix' channel."
(eq? 'guix (channel-name channel)))
+(define (ensure-default-introduction chan)
+ "If CHAN represents the \"official\" 'guix' channel and lacks an
+introduction, add it."
+ (if (and (guix-channel? chan)
+ (not (channel-introduction chan))
+ (string=? (channel-url chan) %default-channel-url))
+ (channel (inherit chan)
+ (introduction %guix-channel-introduction))
+ chan))
+
(define-record-type <channel-instance>
(channel-instance channel commit checkout)
channel-instance?
@@ -126,11 +182,17 @@
(checkout channel-instance-checkout))
(define-record-type <channel-metadata>
- (channel-metadata directory dependencies news-file)
+ (channel-metadata directory dependencies news-file keyring-reference url)
channel-metadata?
(directory channel-metadata-directory) ;string with leading slash
(dependencies channel-metadata-dependencies) ;list of <channel>
- (news-file channel-metadata-news-file)) ;string | #f
+ (news-file channel-metadata-news-file) ;string | #f
+ (keyring-reference channel-metadata-keyring-reference) ;string
+ (url channel-metadata-url)) ;string | #f
+
+(define %default-keyring-reference
+ ;; Default value of the 'keyring-reference' field.
+ "keyring")
(define (channel-reference channel)
"Return the \"reference\" for CHANNEL, an sexp suitable for
@@ -147,7 +209,11 @@ if valid metadata could not be read from PORT."
(('channel ('version 0) properties ...)
(let ((directory (and=> (assoc-ref properties 'directory) first))
(dependencies (or (assoc-ref properties 'dependencies) '()))
- (news-file (and=> (assoc-ref properties 'news-file) first)))
+ (news-file (and=> (assoc-ref properties 'news-file) first))
+ (url (and=> (assoc-ref properties 'url) first))
+ (keyring-reference
+ (or (and=> (assoc-ref properties 'keyring-reference) first)
+ %default-keyring-reference)))
(channel-metadata
(cond ((not directory) "/") ;directory
((string-prefix? "/" directory) directory)
@@ -164,7 +230,9 @@ if valid metadata could not be read from PORT."
(url url)
(commit (get 'commit))))))
dependencies)
- news-file))) ;news-file
+ news-file
+ keyring-reference
+ url)))
((and ('channel ('version version) _ ...) sexp)
(raise (condition
(&message (message "unsupported '.guix-channel' version"))
@@ -188,7 +256,7 @@ doesn't exist."
read-channel-metadata))
(lambda args
(if (= ENOENT (system-error-errno args))
- (channel-metadata "/" '() #f)
+ (channel-metadata "/" '() #f %default-keyring-reference #f)
(apply throw args)))))
(define (channel-instance-metadata instance)
@@ -212,19 +280,137 @@ result is unspecified."
(apply-patch patch checkout))
(loop rest)))))
+(define commit-short-id
+ (compose (cut string-take <> 7) oid->string commit-id))
+
+(define (verify-introductory-commit repository introduction keyring)
+ "Raise an exception if the first commit described in INTRODUCTION doesn't
+have the expected signer."
+ (define commit-id
+ (channel-introduction-first-signed-commit introduction))
+
+ (define actual-signer
+ (openpgp-public-key-fingerprint
+ (commit-signing-key repository (string->oid commit-id)
+ keyring)))
+
+ (define expected-signer
+ (channel-introduction-first-commit-signer introduction))
+
+ (unless (bytevector=? expected-signer actual-signer)
+ (raise (condition
+ (&message
+ (message (format #f (G_ "initial commit ~a is signed by '~a' \
+instead of '~a'")
+ commit-id
+ (openpgp-format-fingerprint actual-signer)
+ (openpgp-format-fingerprint expected-signer))))))))
+
+(define* (authenticate-channel channel checkout commit
+ #:key (keyring-reference-prefix "origin/"))
+ "Authenticate the given COMMIT of CHANNEL, available at CHECKOUT, a
+directory containing a CHANNEL checkout. Raise an error if authentication
+fails."
+ ;; XXX: Too bad we need to re-open CHECKOUT.
+ (with-repository checkout repository
+ (define start-commit
+ (commit-lookup repository
+ (string->oid
+ (channel-introduction-first-signed-commit
+ (channel-introduction channel)))))
+
+ (define end-commit
+ (commit-lookup repository (string->oid commit)))
+
+ (define cache-key
+ (string-append "channels/" (symbol->string (channel-name channel))))
+
+ (define keyring-reference
+ (channel-metadata-keyring-reference
+ (read-channel-metadata-from-source checkout)))
+
+ (define keyring
+ (load-keyring-from-reference repository
+ (string-append keyring-reference-prefix
+ keyring-reference)))
+
+ (define authenticated-commits
+ ;; Previously-authenticated commits that don't need to be checked again.
+ (filter-map (lambda (id)
+ (false-if-exception
+ (commit-lookup repository (string->oid id))))
+ (previously-authenticated-commits cache-key)))
+
+ (define commits
+ ;; Commits to authenticate, excluding the closure of
+ ;; AUTHENTICATED-COMMITS.
+ (commit-difference end-commit start-commit
+ authenticated-commits))
+
+ (define reporter
+ (progress-reporter/bar (length commits)))
+
+ ;; When COMMITS is empty, it's because END-COMMIT is in the closure of
+ ;; START-COMMIT and/or AUTHENTICATED-COMMITS, in which case it's known to
+ ;; be authentic already.
+ (unless (null? commits)
+ (format (current-error-port)
+ (G_ "Authenticating channel '~a', \
+commits ~a to ~a (~h new commits)...~%")
+ (channel-name channel)
+ (commit-short-id start-commit)
+ (commit-short-id end-commit)
+ (length commits))
+
+ ;; If it's our first time, verify CHANNEL's introductory commit.
+ (when (null? authenticated-commits)
+ (verify-introductory-commit repository
+ (channel-introduction channel)
+ keyring))
+
+ (call-with-progress-reporter reporter
+ (lambda (report)
+ (authenticate-commits repository commits
+ #:keyring keyring
+ #:report-progress report)))
+
+ (cache-authenticated-commit cache-key
+ (oid->string
+ (commit-id end-commit))))))
+
(define* (latest-channel-instance store channel
#:key (patches %patches)
- starting-commit)
- "Return two values: the latest channel instance for CHANNEL, and its
-relation to STARTING-COMMIT when provided."
+ starting-commit
+ (authenticate? #f)
+ (validate-pull
+ ensure-forward-channel-update))
+ "Return the latest channel instance for CHANNEL. When STARTING-COMMIT is
+true, call VALIDATE-PULL with CHANNEL, STARTING-COMMIT, the target commit, and
+their relation. When AUTHENTICATE? is false, CHANNEL is not authenticated."
(define (dot-git? file stat)
(and (string=? (basename file) ".git")
(eq? 'directory (stat:type stat))))
- (let-values (((checkout commit relation)
+ (let-values (((channel)
+ (ensure-default-introduction channel))
+ ((checkout commit relation)
(update-cached-checkout (channel-url channel)
#:ref (channel-reference channel)
#:starting-commit starting-commit)))
+ (when relation
+ (validate-pull channel starting-commit commit relation))
+
+ (if authenticate?
+ (if (channel-introduction channel)
+ (authenticate-channel channel checkout commit)
+ ;; TODO: Warn for all the channels once the authentication interface
+ ;; is public.
+ (when (guix-channel? channel)
+ (warning (G_ "channel '~a' lacks an introduction and \
+cannot be authenticated~%")
+ (channel-name channel))))
+ (warning (G_ "channel authentication disabled~%")))
+
(when (guix-channel? channel)
;; Apply the relevant subset of PATCHES directly in CHECKOUT. This is
;; safe to do because 'switch-to-ref' eventually does a hard reset.
@@ -233,12 +419,11 @@ relation to STARTING-COMMIT when provided."
(let* ((name (url+commit->name (channel-url channel) commit))
(checkout (add-to-store store name #t "sha256" checkout
#:select? (negate dot-git?))))
- (values (channel-instance channel commit checkout)
- relation))))
+ (channel-instance channel commit checkout))))
-(define (ensure-forward-channel-update channel start instance relation)
+(define (ensure-forward-channel-update channel start commit relation)
"Raise an error if RELATION is not 'ancestor, meaning that START is not an
-ancestor of the commit in INSTANCE, unless CHANNEL specifies a commit.
+ancestor of COMMIT, unless CHANNEL specifies a commit.
This procedure implements a channel update policy meant to be used as a
#:validate-pull argument."
@@ -252,8 +437,7 @@ This procedure implements a channel update policy meant to be used as a
(format #f (G_ "\
aborting update of channel '~a' to commit ~a, which is not a descendant of ~a")
(channel-name channel)
- (channel-instance-commit instance)
- start))))
+ commit start))))
;; If the user asked for a specific commit, they might want
;; that to happen nevertheless, so tell them about the
@@ -270,14 +454,23 @@ been tampered with and is trying to force a roll-back, preventing you from
getting the latest updates. If you think this is not the case, explicitly
allow non-forward updates."))))))))))
+(define (channel-instance-primary-url instance)
+ "Return the primary URL advertised for INSTANCE, or #f if there is no such
+information."
+ (channel-metadata-url (channel-instance-metadata instance)))
+
(define* (latest-channel-instances store channels
#:key
(current-channels '())
+ (authenticate? #t)
(validate-pull
ensure-forward-channel-update))
"Return a list of channel instances corresponding to the latest checkouts of
CHANNELS and the channels on which they depend.
+When AUTHENTICATE? is true, authenticate the subset of CHANNELS that has a
+\"channel introduction\".
+
CURRENT-CHANNELS is the list of currently used channels. It is compared
against the newly-fetched instances of CHANNELS, and VALIDATE-PULL is called
for each channel update and can choose to emit warnings or raise an error,
@@ -312,14 +505,28 @@ depending on the policy it implements."
(G_ "Updating channel '~a' from Git repository at '~a'...~%")
(channel-name channel)
(channel-url channel))
- (let*-values (((current)
- (current-commit (channel-name channel)))
- ((instance relation)
- (latest-channel-instance store channel
- #:starting-commit
- current)))
- (when relation
- (validate-pull channel current instance relation))
+ (let* ((current (current-commit (channel-name channel)))
+ (instance
+ (latest-channel-instance store channel
+ #:authenticate?
+ authenticate?
+ #:validate-pull
+ validate-pull
+ #:starting-commit
+ current)))
+ (when authenticate?
+ ;; CHANNEL is authenticated so we can trust the
+ ;; primary URL advertised in its metadata and warn
+ ;; about possibly stale mirrors.
+ (let ((primary-url (channel-instance-primary-url
+ instance)))
+ (unless (or (not primary-url)
+ (channel-commit channel)
+ (string=? primary-url (channel-url channel)))
+ (warning (G_ "pulled channel '~a' from a mirror \
+of ~a, which might be stale~%")
+ (channel-name channel)
+ primary-url))))
(let-values (((new-instances new-channels)
(loop (channel-instance-dependencies instance)
diff --git a/guix/ci.scm b/guix/ci.scm
index 8fd05668f2..02eb90e6c3 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,12 +23,19 @@
#:use-module (json)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match)
- #:export (build?
+ #:export (build-product?
+ build-product-id
+ build-product-type
+ build-product-file-size
+ build-product-path
+
+ build?
build-id
build-derivation
build-system
build-status
build-timestamp
+ build-products
checkout?
checkout-commit
@@ -52,13 +60,28 @@
;;;
;;; Code:
+(define-json-mapping <build-product> make-build-product
+ build-product?
+ json->build-product
+ (id build-product-id) ;integer
+ (type build-product-type) ;string
+ (file-size build-product-file-size) ;integer
+ (path build-product-path)) ;string
+
(define-json-mapping <build> make-build build?
json->build
(id build-id "id") ;integer
(derivation build-derivation) ;string | #f
(system build-system) ;string
(status build-status "buildstatus" ) ;integer
- (timestamp build-timestamp)) ;integer
+ (timestamp build-timestamp) ;integer
+ (products build-products "buildproducts" ;<build-product>*
+ (lambda (products)
+ (map json->build-product
+ ;; Before Cuirass 3db603c1, #f is always returned.
+ (if (vector? products)
+ (vector->list products)
+ '())))))
(define-json-mapping <checkout> make-checkout checkout?
json->checkout
@@ -95,7 +118,7 @@
(map json->build (vector->list queue))))
(define* (latest-builds url #:optional (limit %query-limit)
- #:key evaluation system)
+ #:key evaluation system job status)
"Return the latest builds performed by the CI server at URL. If EVALUATION
is an integer, restrict to builds of EVALUATION. If SYSTEM is true (a system
string such as \"x86_64-linux\"), restrict to builds for SYSTEM."
@@ -108,7 +131,10 @@ string such as \"x86_64-linux\"), restrict to builds for SYSTEM."
(number->string limit)
(option "evaluation" evaluation
number->string)
- (option "system" system)))))
+ (option "system" system)
+ (option "job" job)
+ (option "status" status
+ number->string)))))
;; Note: Hydra does not provide a "derivation" field for entries in
;; 'latestbuilds', but Cuirass does.
(map json->build (vector->list latest))))
diff --git a/guix/download.scm b/guix/download.scm
index 7d6edddbdd..e5df678315 100644
--- a/guix/download.scm
+++ b/guix/download.scm
@@ -250,7 +250,6 @@
;; mirrors keeping old versions at the top level
"https://sunsite.icm.edu.pl/packages/ImageMagick/"
;; mirrors moving old versions to "legacy"
- "http://mirrors-usa.go-parts.com/mirrors/ImageMagick/"
"http://mirror.checkdomain.de/imagemagick/"
"http://ftp.surfnet.nl/pub/ImageMagick/"
"http://mirror.searchdaimon.com/ImageMagick"
@@ -308,7 +307,6 @@
"http://mirror.its.dal.ca/kde/"
"http://mirror.csclub.uwaterloo.ca/kde/"
"http://mirror.cc.columbia.edu/pub/software/kde/"
- "http://mirrors-usa.go-parts.com/kde"
"http://kde.mirrors.hoobly.com/"
"http://ftp.ussg.iu.edu/kde/"
"http://mirrors.mit.edu/kde/"
diff --git a/guix/git-authenticate.scm b/guix/git-authenticate.scm
index 0d6f696a0b..082c44ee06 100644
--- a/guix/git-authenticate.scm
+++ b/guix/git-authenticate.scm
@@ -271,13 +271,13 @@ an OpenPGP keyring."
#:key
(default-authorizations '())
(keyring-reference "keyring")
+ (keyring (load-keyring-from-reference
+ repository keyring-reference))
(report-progress (const #t)))
"Authenticate COMMITS, a list of commit objects, calling REPORT-PROGRESS for
each of them. Return an alist showing the number of occurrences of each key.
-The OpenPGP keyring is loaded from KEYRING-REFERENCE in REPOSITORY."
- (define keyring
- (load-keyring-from-reference repository keyring-reference))
-
+If KEYRING is omitted, the OpenPGP keyring is loaded from KEYRING-REFERENCE in
+REPOSITORY."
(fold (lambda (commit stats)
(report-progress)
(let ((signer (authenticate-commit repository commit keyring
@@ -295,33 +295,40 @@ The OpenPGP keyring is loaded from KEYRING-REFERENCE in REPOSITORY."
;;; Caching.
;;;
-(define (authenticated-commit-cache-file)
+(define (authenticated-commit-cache-file key)
"Return the name of the file that contains the cache of
-previously-authenticated commits."
- (string-append (cache-directory) "/authentication/channels/guix"))
+previously-authenticated commits for KEY."
+ (string-append (cache-directory) "/authentication/" key))
-(define (previously-authenticated-commits)
- "Return the previously-authenticated commits as a list of commit IDs (hex
-strings)."
+(define (previously-authenticated-commits key)
+ "Return the previously-authenticated commits under KEY as a list of commit
+IDs (hex strings)."
(catch 'system-error
(lambda ()
- (call-with-input-file (authenticated-commit-cache-file)
- read))
+ (call-with-input-file (authenticated-commit-cache-file key)
+ (lambda (port)
+ ;; If PORT has the wrong permissions, it might have been tampered
+ ;; with by another user so ignore its contents.
+ (if (= #o600 (stat:perms (stat port)))
+ (read port)
+ (begin
+ (chmod port #o600)
+ '())))))
(lambda args
(if (= ENOENT (system-error-errno args))
'()
(apply throw args)))))
-(define (cache-authenticated-commit commit-id)
- "Record in ~/.cache COMMIT-ID and its closure as authenticated (only
-COMMIT-ID is written to cache, though)."
+(define (cache-authenticated-commit key commit-id)
+ "Record in ~/.cache, under KEY, COMMIT-ID and its closure as
+authenticated (only COMMIT-ID is written to cache, though)."
(define %max-cache-length
;; Maximum number of commits in cache.
200)
(let ((lst (delete-duplicates
- (cons commit-id (previously-authenticated-commits))))
- (file (authenticated-commit-cache-file)))
+ (cons commit-id (previously-authenticated-commits key))))
+ (file (authenticated-commit-cache-file key)))
(mkdir-p (dirname file))
(with-atomic-file-output file
(lambda (port)
diff --git a/guix/inferior.scm b/guix/inferior.scm
index c9a5ee5129..d347754bbc 100644
--- a/guix/inferior.scm
+++ b/guix/inferior.scm
@@ -687,13 +687,16 @@ failing when GUIX is too old and lacks the 'guix repl' command."
(define* (cached-channel-instance store
channels
#:key
+ (authenticate? #t)
(cache-directory (%inferior-cache-directory))
(ttl (* 3600 24 30)))
"Return a directory containing a guix filetree defined by CHANNELS, a list of channels.
The directory is a subdirectory of CACHE-DIRECTORY, where entries can be reclaimed after TTL seconds.
-This procedure opens a new connection to the build daemon."
+This procedure opens a new connection to the build daemon. AUTHENTICATE?
+determines whether CHANNELS are authenticated."
(define instances
- (latest-channel-instances store channels))
+ (latest-channel-instances store channels
+ #:authenticate? authenticate?))
(define key
(bytevector->base32-string
@@ -732,6 +735,8 @@ This procedure opens a new connection to the build daemon."
(mbegin %store-monad
(show-what-to-build* (list profile))
(built-derivations (list profile))
+ ;; Note: Caching is fine even when AUTHENTICATE? is false because
+ ;; we always call 'latest-channel-instances?'.
(symlink* (derivation->output-path profile) cached)
(add-indirect-root* cached)
(return cached))))))
diff --git a/guix/lint.scm b/guix/lint.scm
index 82861b8a27..fa507546f5 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -41,6 +41,8 @@
#:use-module (guix upstream)
#:use-module (guix utils)
#:use-module (guix memoization)
+ #:use-module (guix profiles)
+ #:use-module (guix monads)
#:use-module (guix scripts)
#:use-module ((guix ui) #:select (texi->plain-text fill-paragraph))
#:use-module (guix gnu-maintenance)
@@ -84,6 +86,7 @@
check-for-updates
check-formatting
check-archival
+ check-profile-collisions
lint-warning
lint-warning?
@@ -970,6 +973,38 @@ descriptions maintained upstream."
(with-store store
(check-with-store store))))
+(define* (check-profile-collisions package #:key store)
+ "Check for collisions that would occur when installing PACKAGE as a result
+of the propagated inputs it pulls in."
+ (define (do-check store)
+ (guard (c ((profile-collision-error? c)
+ (let ((first (profile-collision-error-entry c))
+ (second (profile-collision-error-conflict c)))
+ (define format
+ (if (string=? (manifest-entry-version first)
+ (manifest-entry-version second))
+ manifest-entry-item
+ (lambda (entry)
+ (string-append (manifest-entry-name entry) "@"
+ (manifest-entry-version entry)))))
+
+ (list (make-warning package
+ (G_ "propagated inputs ~a and ~a collide")
+ (list (format first)
+ (format second)))))))
+ ;; Disable grafts to avoid building PACKAGE and its dependencies.
+ (parameterize ((%graft? #f))
+ (run-with-store store
+ (mbegin %store-monad
+ (check-for-collisions (packages->manifest (list package))
+ (%current-system))
+ (return '()))))))
+
+ (if store
+ (do-check store)
+ (with-store store
+ (do-check store))))
+
(define (check-license package)
"Warn about type errors of the 'license' field of PACKAGE."
(match (package-license package)
@@ -1350,6 +1385,11 @@ or a list thereof")
(check check-derivation)
(requires-store? #t))
(lint-checker
+ (name 'profile-collisions)
+ (description "Report collisions that would occur due to propagated inputs")
+ (check check-profile-collisions)
+ (requires-store? #t))
+ (lint-checker
(name 'patch-file-names)
(description "Validate file names and availability of patches")
(check check-patch-file-names))
diff --git a/guix/nar.scm b/guix/nar.scm
index eff4becbce..6bb2ea5b96 100644
--- a/guix/nar.scm
+++ b/guix/nar.scm
@@ -27,8 +27,9 @@
;; (guix store) since this is "daemon-side" code.
#:use-module (guix store)
#:use-module (guix store database)
+ #:use-module ((guix build store-copy) #:select (store-info))
- #:use-module (guix ui) ; for '_'
+ #:use-module (guix i18n)
#:use-module (gcrypt hash)
#:use-module (guix pki)
#:use-module (gcrypt pk-crypto)
@@ -115,9 +116,8 @@ held."
;; Register TARGET. As a side effect, it resets the timestamps of all
;; its files, recursively, and runs a deduplication pass.
- (register-path target
- #:references references
- #:deriver deriver))
+ (register-items db
+ (list (store-info target deriver references))))
(when lock?
(delete-file (string-append target ".lock"))
diff --git a/guix/openpgp.scm b/guix/openpgp.scm
index b74f8ff5bf..33c851255b 100644
--- a/guix/openpgp.scm
+++ b/guix/openpgp.scm
@@ -1029,23 +1029,10 @@ there is no limit."
(define (crc24 bv)
"Compute a CRC24 as described in RFC4880, Section 6.1."
- (define poly #x1864cfb)
-
- (let loop ((crc #xb704ce)
- (index 0))
- (if (= index (bytevector-length bv))
- (logand crc #xffffff)
- (let ((crc (logxor (ash (bytevector-u8-ref bv index) 16)
- crc)))
- (let inner ((i 0)
- (crc crc))
- (if (< i 8)
- (let ((crc (ash crc 1)))
- (inner (+ i 1)
- (if (zero? (logand crc #x1000000))
- crc
- (logxor crc poly))))
- (loop crc (+ index 1))))))))
+ ;; We used to have it implemented in Scheme but the C version here makes
+ ;; 'load-keyring-from-reference' 18% faster when loading the 72
+ ;; ASCII-armored files of today's Guix keyring.
+ (bytevector->uint (bytevector-hash bv (hash-algorithm crc24-rfc2440))))
(define %begin-block-prefix "-----BEGIN ")
(define %begin-block-suffix "-----")
diff --git a/guix/profiles.scm b/guix/profiles.scm
index 25ff146bdf..f34f73e17e 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -41,7 +41,6 @@
#:use-module (guix modules)
#:use-module (guix monads)
#:use-module (guix store)
- #:use-module (guix sets)
#:use-module (ice-9 vlist)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
@@ -105,6 +104,7 @@
manifest-installed?
manifest-matching-entries
manifest-search-paths
+ check-for-collisions
manifest-transaction
manifest-transaction?
@@ -260,17 +260,17 @@ field."
recursively."
(let loop ((entries (manifest-entries manifest))
(result '())
- (visited (set))) ;compare with 'equal?'
+ (visited vlist-null)) ;compare with 'manifest-entry=?'
(match entries
(()
(reverse result))
((head . tail)
- (if (set-contains? visited head)
+ (if (vhash-assoc head visited manifest-entry=?)
(loop tail result visited)
(loop (append (manifest-entry-dependencies head)
tail)
(cons head result)
- (set-insert head visited)))))))
+ (vhash-cons head #t visited)))))))
(define (profile-manifest profile)
"Return the PROFILE's manifest."
@@ -1202,17 +1202,18 @@ for both major versions of GTK+."
and creates the dependency graph of all these kernel modules.
This is meant to be used as a profile hook."
- (define kmod ; lazy reference
+ (define kmod ; lazy reference
(module-ref (resolve-interface '(gnu packages linux)) 'kmod))
(define build
- (with-imported-modules
- (source-module-closure '((guix build utils)
+ (with-imported-modules (source-module-closure
+ '((guix build utils)
(gnu build linux-modules)))
#~(begin
(use-modules (ice-9 ftw)
(ice-9 match)
- (srfi srfi-1) ; append-map
+ (srfi srfi-1) ; append-map
(gnu build linux-modules))
+
(let* ((inputs '#$(manifest-inputs manifest))
(module-directories
(map (lambda (directory)
@@ -1220,20 +1221,25 @@ This is meant to be used as a profile hook."
inputs))
(directory-entries
(lambda (directory)
- (scandir directory (lambda (basename)
- (not
- (string-prefix? "." basename))))))
+ (or (scandir directory
+ (lambda (basename)
+ (not (string-prefix? "." basename))))
+ '())))
;; Note: Should usually result in one entry.
(versions (delete-duplicates
(append-map directory-entries
module-directories))))
- (match versions
- ((version)
- (let ((old-path (getenv "PATH")))
- (setenv "PATH" #+(file-append kmod "/bin"))
- (make-linux-module-directory inputs version #$output)
- (setenv "PATH" old-path)))
- (_ (error "Specified Linux kernel and Linux kernel modules
+ (match versions
+ ((version)
+ (let ((old-path (getenv "PATH")))
+ (setenv "PATH" #+(file-append kmod "/bin"))
+ (make-linux-module-directory inputs version #$output)
+ (setenv "PATH" old-path)))
+ (()
+ ;; Nothing here, maybe because this is a kernel with
+ ;; CONFIG_MODULES=n.
+ (mkdir #$output))
+ (_ (error "Specified Linux kernel and Linux kernel modules
are not all of the same version")))))))
(gexp->derivation "linux-module-database" build
#:local-build? #t
diff --git a/guix/scripts/challenge.scm b/guix/scripts/challenge.scm
index 65e2427033..624f51b200 100644
--- a/guix/scripts/challenge.scm
+++ b/guix/scripts/challenge.scm
@@ -416,9 +416,9 @@ Challenge the substitutes for PACKAGE... provided by one or more servers.\n"))
--substitute-urls=URLS
compare build results with those at URLS"))
(display (G_ "
- -v, --verbose show details about successful comparisons"))
+ -v, --verbose show details about successful comparisons"))
(display (G_ "
- --diff=MODE show differences according to MODE"))
+ --diff=MODE show differences according to MODE"))
(newline)
(display (G_ "
-h, --help display this help and exit"))
diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm
index 7a2dbc453a..ea982955da 100644
--- a/guix/scripts/describe.scm
+++ b/guix/scripts/describe.scm
@@ -31,6 +31,7 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
+ #:use-module (ice-9 format)
#:autoload (ice-9 pretty-print) (pretty-print)
#:use-module (web uri)
#:export (display-profile-content
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm
index 03f455ab7b..d3b8b57ccc 100644
--- a/guix/scripts/environment.scm
+++ b/guix/scripts/environment.scm
@@ -48,7 +48,8 @@
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (srfi srfi-98)
- #:export (guix-environment))
+ #:export (assert-container-features
+ guix-environment))
;; Protect some env vars from purification. Borrowed from nix-shell.
(define %precious-variables
diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 518bf6e7e3..e0f9cc1a12 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -81,6 +82,11 @@
#~(#+(file-append xz "/bin/xz") "-e"))
(compressor "bzip2" ".bz2"
#~(#+(file-append bzip2 "/bin/bzip2") "-9"))
+ (compressor "zstd" ".zst"
+ ;; The default level 3 compresses better than gzip in a
+ ;; fraction of the time, while the highest level 19
+ ;; (de)compresses more slowly and worse than xz.
+ #~(#+(file-append zstd "/bin/zstd") "-3"))
(compressor "none" "" #f)))
;; This one is only for use in this module, so don't put it in %compressors.
@@ -140,13 +146,16 @@ dependencies are registered."
(define (read-closure closure)
(call-with-input-file closure read-reference-graph))
+ (define db-file
+ (store-database-file #:state-directory #$output))
+
+ (sql-schema #$schema)
(let ((items (append-map read-closure '#$labels)))
- (register-items items
- #:state-directory #$output
- #:deduplicate? #f
- #:reset-timestamps? #f
- #:registration-time %epoch
- #:schema #$schema))))))
+ (with-database db-file db
+ (register-items db items
+ #:deduplicate? #f
+ #:reset-timestamps? #f
+ #:registration-time %epoch)))))))
(computed-file "store-database" build
#:options `(#:references-graphs ,(zip labels items))))
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index c386d81b8e..f953957161 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -82,6 +82,7 @@
(graft? . #t)
(debug . 0)
(verbosity . 1)
+ (authenticate-channels? . #t)
(validate-pull . ,ensure-forward-channel-update)))
(define (show-help)
@@ -98,6 +99,9 @@ Download and deploy the latest version of Guix.\n"))
(display (G_ "
--allow-downgrades allow downgrades to earlier channel revisions"))
(display (G_ "
+ --disable-authentication
+ disable channel authentication"))
+ (display (G_ "
-N, --news display news compared to the previous generation"))
(display (G_ "
-l, --list-generations[=PATTERN]
@@ -165,6 +169,9 @@ Download and deploy the latest version of Guix.\n"))
(lambda (opt name arg result)
(alist-cons 'validate-pull warn-about-backward-updates
result)))
+ (option '("disable-authentication") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'authenticate-channels? #f result)))
(option '(#\p "profile") #t #f
(lambda (opt name arg result)
(alist-cons 'profile (canonicalize-profile arg)
@@ -195,20 +202,18 @@ Download and deploy the latest version of Guix.\n"))
%standard-build-options))
-(define (warn-about-backward-updates channel start instance relation)
- "Warn about non-forward updates of CHANNEL from START to INSTANCE, without
+(define (warn-about-backward-updates channel start commit relation)
+ "Warn about non-forward updates of CHANNEL from START to COMMIT, without
aborting."
(match relation
((or 'ancestor 'self)
#t)
('descendant
(warning (G_ "rolling back channel '~a' from ~a to ~a~%")
- (channel-name channel) start
- (channel-instance-commit instance)))
+ (channel-name channel) start commit))
('unrelated
(warning (G_ "moving channel '~a' from ~a to unrelated commit ~a~%")
- (channel-name channel) start
- (channel-instance-commit instance)))))
+ (channel-name channel) start commit))))
(define* (display-profile-news profile #:key concise?
current-is-newer?)
@@ -773,7 +778,8 @@ Use '~/.config/guix/channels.scm' instead."))
(channels (channel-list opts))
(profile (or (assoc-ref opts 'profile) %current-profile))
(current-channels (profile-channels profile))
- (validate-pull (assoc-ref opts 'validate-pull)))
+ (validate-pull (assoc-ref opts 'validate-pull))
+ (authenticate? (assoc-ref opts 'authenticate-channels?)))
(cond ((assoc-ref opts 'query)
(process-query opts profile))
((assoc-ref opts 'generation)
@@ -795,7 +801,9 @@ Use '~/.config/guix/channels.scm' instead."))
#:current-channels
current-channels
#:validate-pull
- validate-pull)))
+ validate-pull
+ #:authenticate?
+ authenticate?)))
(format (current-error-port)
(N_ "Building from this channel:~%"
"Building from these channels:~%"
diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm
index ff1f208894..0ea9c3655c 100644
--- a/guix/scripts/repl.scm
+++ b/guix/scripts/repl.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
#:use-module (guix scripts)
#:use-module (guix repl)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors)
@@ -32,7 +34,8 @@
;;; Commentary:
;;;
-;;; This command provides a Guile REPL
+;;; This command provides a Guile script runner and REPL in an environment
+;;; that contains all the modules comprising Guix.
(define %default-options
`((type . guile)))
@@ -63,8 +66,9 @@
(define (show-help)
- (display (G_ "Usage: guix repl [OPTIONS...]
-Start a Guile REPL in the Guix execution environment.\n"))
+ (display (G_ "Usage: guix repl [OPTIONS...] [-- FILE ARGS...]
+In the Guix execution environment, run FILE as a Guile script with
+command-line arguments ARGS. If no FILE is given, start a Guile REPL.\n"))
(display (G_ "
-t, --type=TYPE start a REPL of the given TYPE"))
(display (G_ "
@@ -135,12 +139,13 @@ call THUNK."
(define (guix-repl . args)
(define opts
- ;; Return the list of package names.
(args-fold* args %options
(lambda (opt name arg result)
(leave (G_ "~A: unrecognized option~%") name))
(lambda (arg result)
- (leave (G_ "~A: extraneous argument~%") arg))
+ (append `((script . ,arg)
+ (ignore-dot-guile? . #t))
+ result))
%default-options))
(define user-config
@@ -148,28 +153,48 @@ call THUNK."
(lambda (home)
(string-append home "/.guile"))))
+ (define (set-user-module)
+ (set-current-module user-module)
+ (when (and (not (assoc-ref opts 'ignore-dot-guile?))
+ user-config
+ (file-exists? user-config))
+ (load user-config)))
+
+ (define script
+ (reverse
+ (filter-map (match-lambda
+ (('script . script) script)
+ (_ #f))
+ opts)))
+
(with-error-handling
- (let ((type (assoc-ref opts 'type)))
- (call-with-connection (assoc-ref opts 'listen)
- (lambda ()
- (case type
- ((guile)
- (save-module-excursion
- (lambda ()
- (set-current-module user-module)
- (when (and (not (assoc-ref opts 'ignore-dot-guile?))
- user-config
- (file-exists? user-config))
- (load user-config))
-
- ;; Do not exit repl on SIGINT.
- ((@@ (ice-9 top-repl) call-with-sigint)
- (lambda ()
- (start-repl))))))
- ((machine)
- (machine-repl))
- (else
- (leave (G_ "~a: unknown type of REPL~%") type))))))))
+
+ (unless (null? script)
+ ;; Run script
+ (save-module-excursion
+ (lambda ()
+ (set-program-arguments script)
+ (set-user-module)
+ (load-in-vicinity "." (car script)))))
+
+ (when (null? script)
+ ;; Start REPL
+ (let ((type (assoc-ref opts 'type)))
+ (call-with-connection (assoc-ref opts 'listen)
+ (lambda ()
+ (case type
+ ((guile)
+ (save-module-excursion
+ (lambda ()
+ (set-user-module)
+ ;; Do not exit repl on SIGINT.
+ ((@@ (ice-9 top-repl) call-with-sigint)
+ (lambda ()
+ (start-repl))))))
+ ((machine)
+ (machine-repl))
+ (else
+ (leave (G_ "~a: unknown type of REPL~%") type)))))))))
;; Local Variables:
;; eval: (put 'call-with-connection 'scheme-indent-function 1)
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 6769a602b1..d9cf45da23 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -74,6 +74,7 @@
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-37)
+ #:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors)
#:export (guix-system
@@ -802,8 +803,8 @@ static checks."
(check-initrd-modules os)))
(mlet* %store-monad
- ((target (current-target-system))
- (image -> (find-image file-system-type target))
+ ((target* (current-target-system))
+ (image -> (find-image file-system-type target*))
(sys (system-derivation-for-action os image action
#:file-system-type file-system-type
#:image-size image-size
diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm
index 1e800e160f..f9bcec651a 100644
--- a/guix/scripts/time-machine.scm
+++ b/guix/scripts/time-machine.scm
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Konrad Hinsen <konrad.hinsen@fastmail.net>
-;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,6 +55,9 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
--commit=COMMIT use the specified COMMIT"))
(display (G_ "
--branch=BRANCH use the tip of the specified BRANCH"))
+ (display (G_ "
+ --disable-authentication
+ disable channel authentication"))
(newline)
(show-build-options-help)
(newline)
@@ -80,6 +83,9 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
(option '("branch") #t #f
(lambda (opt name arg result)
(alist-cons 'ref `(branch . ,arg) result)))
+ (option '("disable-authentication") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'authenticate-channels? #f result)))
(option '(#\h "help") #f #f
(lambda args
(show-help)
@@ -98,6 +104,7 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
(print-build-trace? . #t)
(print-extended-build-trace? . #t)
(multiplexed-build-output? . #t)
+ (authenticate-channels? . #t)
(graft? . #t)
(debug . 0)
(verbosity . 1)))
@@ -124,12 +131,14 @@ Execute COMMAND ARGS... in an older version of Guix.\n"))
(with-git-error-handling
(let* ((opts (parse-args args))
(channels (channel-list opts))
- (command-line (assoc-ref opts 'exec)))
+ (command-line (assoc-ref opts 'exec))
+ (authenticate? (assoc-ref opts 'authenticate-channels?)))
(when command-line
(let* ((directory
(with-store store
(with-status-verbosity (assoc-ref opts 'verbosity)
(set-build-options-from-command-line store opts)
- (cached-channel-instance store channels))))
+ (cached-channel-instance store channels
+ #:authenticate? authenticate?))))
(executable (string-append directory "/bin/guix")))
(apply execl (cons* executable executable command-line))))))))
diff --git a/guix/self.scm b/guix/self.scm
index 60fe6e6b01..e1350a7403 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -290,24 +290,9 @@ DOMAIN, a gettext domain."
#~(begin
(use-modules (guix build utils) (guix build po)
(ice-9 match) (ice-9 regex) (ice-9 textual-ports)
+ (ice-9 vlist) (ice-9 threads)
(srfi srfi-1))
- (mkdir #$output)
-
- (copy-recursively #$documentation "."
- #:log (%make-void-port "w"))
-
- (for-each
- (lambda (file)
- (copy-file file (basename file)))
- (find-files #$documentation-po ".*.po$"))
-
- (setenv "GUIX_LOCPATH"
- #+(file-append glibc-utf8-locales "/lib/locale"))
- (setenv "PATH" #+(file-append gettext "/bin"))
- (setenv "LC_ALL" "en_US.UTF-8")
- (setlocale LC_ALL "en_US.UTF-8")
-
(define (translate-tmp-texi po source output)
"Translate Texinfo file SOURCE using messages from PO, and write
the result to OUTPUT."
@@ -315,38 +300,69 @@ the result to OUTPUT."
"-M" "UTF-8" "-L" "UTF-8" "-k" "0" "-f" "texinfo"
"-m" source "-p" po "-l" output))
- (define (make-ref-regex msgid end)
- (make-regexp (string-append
- "ref\\{"
- (string-join (string-split (regexp-quote msgid) #\ )
- "[ \n]+")
- end)))
-
- (define (translate-cross-references content translations)
- "Take CONTENT, a string representing a .texi file and translate any
-cross-reference in it (@ref, @xref and @pxref) that have a translation in
-TRANSLATIONS, an alist of msgid and msgstr."
- (fold
- (lambda (elem content)
- (match elem
- ((msgid . msgstr)
- ;; Empty translations and strings containing some special characters
- ;; cannot be the name of a section.
- (if (or (equal? msgstr "")
- (string-any (lambda (chr)
- (member chr '(#\{ #\} #\( #\) #\newline #\,)))
- msgid))
- content
- ;; Otherwise, they might be the name of a section, so we
- ;; need to translate any occurence in @(p?x?)ref{...}.
- (let ((regexp1 (make-ref-regex msgid ","))
- (regexp2 (make-ref-regex msgid "\\}")))
- (regexp-substitute/global
- #f regexp2
- (regexp-substitute/global
- #f regexp1 content 'pre "ref{" msgstr "," 'post)
- 'pre "ref{" msgstr "}" 'post))))))
- content translations))
+ (define (canonicalize-whitespace str)
+ ;; Change whitespace (newlines, etc.) in STR to #\space.
+ (string-map (lambda (chr)
+ (if (char-set-contains? char-set:whitespace chr)
+ #\space
+ chr))
+ str))
+
+ (define xref-regexp
+ ;; Texinfo cross-reference regexp.
+ (make-regexp "@(px|x)?ref\\{([^,}]+)"))
+
+ (define (translate-cross-references texi translations)
+ ;; Translate the cross-references that appear in TEXI, a Texinfo
+ ;; file, using the msgid/msgstr pairs from TRANSLATIONS.
+ (define content
+ (call-with-input-file texi get-string-all))
+
+ (define matches
+ (list-matches xref-regexp content))
+
+ (define translation-map
+ (fold (match-lambda*
+ (((msgid . str) result)
+ (vhash-cons msgid str result)))
+ vlist-null
+ translations))
+
+ (define translated
+ ;; Iterate over MATCHES and replace cross-references with their
+ ;; translation found in TRANSLATION-MAP. (We can't use
+ ;; 'substitute*' because matches can span multiple lines.)
+ (let loop ((matches matches)
+ (offset 0)
+ (result '()))
+ (match matches
+ (()
+ (string-concatenate-reverse
+ (cons (string-drop content offset) result)))
+ ((head . tail)
+ (let ((prefix (match:substring head 1))
+ (ref (canonicalize-whitespace (match:substring head 2))))
+ (define translated
+ (string-append "@" (or prefix "")
+ "ref{"
+ (match (vhash-assoc ref translation-map)
+ (#f ref)
+ ((_ . str) str))))
+
+ (loop tail
+ (match:end head)
+ (append (list translated
+ (string-take
+ (string-drop content offset)
+ (- (match:start head) offset)))
+ result)))))))
+
+ (format (current-error-port)
+ "translated ~a cross-references in '~a'~%"
+ (length matches) texi)
+ (call-with-output-file texi
+ (lambda (port)
+ (display translated port))))
(define* (translate-texi prefix po lang
#:key (extras '()))
@@ -363,12 +379,9 @@ a list of extra files, such as '(\"contributing\")."
(for-each (lambda (file)
(let* ((texi (string-append file "." lang ".texi"))
(tmp (string-append texi ".tmp")))
- (with-output-to-file texi
- (lambda ()
- (display
- (translate-cross-references
- (call-with-input-file tmp get-string-all)
- translations))))))
+ (copy-file tmp texi)
+ (translate-cross-references texi
+ translations)))
(cons prefix extras))))
(define (available-translations directory domain)
@@ -385,16 +398,33 @@ a list of extra files, such as '(\"contributing\")."
(find-files directory
"\\.[a-z]{2}(_[A-Z]{2})?\\.po$")))
- (for-each (match-lambda
- ((language . po)
- (translate-texi "guix" po language
- #:extras '("contributing"))))
- (available-translations "." "guix-manual"))
+ (mkdir #$output)
+ (copy-recursively #$documentation "."
+ #:log (%make-void-port "w"))
+
+ (for-each
+ (lambda (file)
+ (copy-file file (basename file)))
+ (find-files #$documentation-po ".*.po$"))
+
+ (setenv "GUIX_LOCPATH"
+ #+(file-append glibc-utf8-locales "/lib/locale"))
+ (setenv "PATH" #+(file-append gettext "/bin"))
+ (setenv "LC_ALL" "en_US.UTF-8")
+ (setlocale LC_ALL "en_US.UTF-8")
- (for-each (match-lambda
- ((language . po)
- (translate-texi "guix-cookbook" po language)))
- (available-translations "." "guix-cookbook"))
+ (n-par-for-each (parallel-job-count)
+ (match-lambda
+ ((language . po)
+ (translate-texi "guix" po language
+ #:extras '("contributing"))))
+ (available-translations "." "guix-manual"))
+
+ (n-par-for-each (parallel-job-count)
+ (match-lambda
+ ((language . po)
+ (translate-texi "guix-cookbook" po language)))
+ (available-translations "." "guix-cookbook"))
(for-each (lambda (file)
(install-file file #$output))
diff --git a/guix/store.scm b/guix/store.scm
index 9b3879b4a7..683e125b20 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -557,10 +557,10 @@ for this connection will be pinned. Return a server object."
(make-bytevector 8192))))
(write-int %worker-magic-1 port)
(let ((r (read-int port)))
- (and (eqv? r %worker-magic-2)
+ (and (= r %worker-magic-2)
(let ((v (read-int port)))
- (and (eqv? (protocol-major %protocol-version)
- (protocol-major v))
+ (and (= (protocol-major %protocol-version)
+ (protocol-major v))
(begin
(write-int %protocol-version port)
(when (>= (protocol-minor v) 14)
diff --git a/guix/store/database.scm b/guix/store/database.scm
index ad9ca68efe..a38e4d7e52 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -37,6 +37,7 @@
#:use-module (system foreign)
#:export (sql-schema
%default-database-file
+ store-database-file
with-database
path-id
sqlite-register
@@ -65,6 +66,28 @@
(unless (zero? ret)
((@@ (sqlite3) sqlite-error) db "sqlite-exec" ret))))))
+(define* (store-database-directory #:key prefix state-directory)
+ "Return the store database directory, taking PREFIX and STATE-DIRECTORY into
+account when provided."
+ ;; Priority for options: first what is given, then environment variables,
+ ;; then defaults. %state-directory, %store-directory, and
+ ;; %store-database-directory already handle the "environment variables /
+ ;; defaults" question, so we only need to choose between what is given and
+ ;; those.
+ (cond (state-directory
+ (string-append state-directory "/db"))
+ (prefix
+ (string-append prefix %localstatedir "/guix/db"))
+ (else
+ %store-database-directory)))
+
+(define* (store-database-file #:key prefix state-directory)
+ "Return the store database file name, taking PREFIX and STATE-DIRECTORY into
+account when provided."
+ (string-append (store-database-directory #:prefix prefix
+ #:state-directory state-directory)
+ "/db.sqlite"))
+
(define (initialize-database db)
"Initializing DB, an empty database, by creating all the tables and indexes
as specified by SQL-SCHEMA."
@@ -77,7 +100,10 @@ as specified by SQL-SCHEMA."
(define (call-with-database file proc)
"Pass PROC a database record corresponding to FILE. If FILE doesn't exist,
create it and initialize it as a new database."
- (let ((new? (not (file-exists? file)))
+ (let ((new? (and (not (file-exists? file))
+ (begin
+ (mkdir-p (dirname file))
+ #t)))
(db (sqlite-open file)))
;; Turn DB in "write-ahead log" mode, which should avoid SQLITE_LOCKED
;; errors when we have several readers: <https://www.sqlite.org/wal.html>.
@@ -361,45 +387,32 @@ Return #t on success.
Use with care as it directly modifies the store! This is primarily meant to
be used internally by the daemon's build hook."
- (register-items (list (store-info path deriver references))
- #:prefix prefix #:state-directory state-directory
- #:deduplicate? deduplicate?
- #:reset-timestamps? reset-timestamps?
- #:schema schema
- #:log-port (%make-void-port "w")))
+ (define db-file
+ (store-database-file #:prefix prefix
+ #:state-directory state-directory))
+
+ (parameterize ((sql-schema schema))
+ (with-database db-file db
+ (register-items db (list (store-info path deriver references))
+ #:prefix prefix
+ #:deduplicate? deduplicate?
+ #:reset-timestamps? reset-timestamps?
+ #:log-port (%make-void-port "w")))))
(define %epoch
;; When it all began.
(make-time time-utc 0 1))
-(define* (register-items items
- #:key prefix state-directory
+(define* (register-items db items
+ #:key prefix
(deduplicate? #t)
(reset-timestamps? #t)
registration-time
- (schema (sql-schema))
(log-port (current-error-port)))
"Register all of ITEMS, a list of <store-info> records as returned by
-'read-reference-graph', in the database under PREFIX/STATE-DIRECTORY. ITEMS
-must be in topological order (with leaves first.) If the database is
-initially empty, apply SCHEMA to initialize it. REGISTRATION-TIME must be the
-registration time to be recorded in the database; #f means \"now\".
-Write a progress report to LOG-PORT."
-
- ;; Priority for options: first what is given, then environment variables,
- ;; then defaults. %state-directory, %store-directory, and
- ;; %store-database-directory already handle the "environment variables /
- ;; defaults" question, so we only need to choose between what is given and
- ;; those.
-
- (define db-dir
- (cond (state-directory
- (string-append state-directory "/db"))
- (prefix
- (string-append prefix %localstatedir "/guix/db"))
- (else
- %store-database-directory)))
-
+'read-reference-graph', in DB. ITEMS must be in topological order (with
+leaves first.) REGISTRATION-TIME must be the registration time to be recorded
+in the database; #f means \"now\". Write a progress report to LOG-PORT."
(define store-dir
(if prefix
(string-append prefix %storedir)
@@ -438,17 +451,14 @@ Write a progress report to LOG-PORT."
(when deduplicate?
(deduplicate real-file-name hash #:store store-dir)))))
- (mkdir-p db-dir)
- (parameterize ((sql-schema schema))
- (with-database (string-append db-dir "/db.sqlite") db
- (call-with-retrying-transaction db
- (lambda ()
- (let* ((prefix (format #f "registering ~a items" (length items)))
- (progress (progress-reporter/bar (length items)
- prefix log-port)))
- (call-with-progress-reporter progress
- (lambda (report)
- (for-each (lambda (item)
- (register db item)
- (report))
- items)))))))))
+ (call-with-retrying-transaction db
+ (lambda ()
+ (let* ((prefix (format #f "registering ~a items" (length items)))
+ (progress (progress-reporter/bar (length items)
+ prefix log-port)))
+ (call-with-progress-reporter progress
+ (lambda (report)
+ (for-each (lambda (item)
+ (register db item)
+ (report))
+ items)))))))
diff --git a/guix/store/deduplication.scm b/guix/store/deduplication.scm
index 80868692c0..a742a142ee 100644
--- a/guix/store/deduplication.scm
+++ b/guix/store/deduplication.scm
@@ -23,10 +23,12 @@
(define-module (guix store deduplication)
#:use-module (gcrypt hash)
#:use-module (guix build utils)
+ #:use-module (guix build syscalls)
#:use-module (guix base32)
#:use-module (srfi srfi-11)
#:use-module (rnrs io ports)
#:use-module (ice-9 ftw)
+ #:use-module (ice-9 match)
#:use-module (guix serialization)
#:export (nar-sha256
deduplicate))
@@ -92,6 +94,23 @@ LINK-PREFIX."
(try (tempname-in link-prefix))
(apply throw args))))))
+(define (call-with-writable-file file thunk)
+ (if (string=? file (%store-directory))
+ (thunk) ;don't meddle with the store's permissions
+ (let ((stat (lstat file)))
+ (dynamic-wind
+ (lambda ()
+ (make-file-writable file))
+ thunk
+ (lambda ()
+ (set-file-time file stat)
+ (chmod file (stat:mode stat)))))))
+
+(define-syntax-rule (with-writable-file file exp ...)
+ "Make FILE writable for the dynamic extent of EXP..., except if FILE is the
+store."
+ (call-with-writable-file file (lambda () exp ...)))
+
;; There are 3 main kinds of errors we can get from hardlinking: "Too many
;; things link to this" (EMLINK), "this link already exists" (EEXIST), and
;; "can't fit more stuff in this directory" (ENOSPC).
@@ -118,60 +137,61 @@ Note: TARGET, TO-REPLACE, and SWAP-DIRECTORY must be on the same file system."
;; If we couldn't create TEMP-LINK, that's OK: just don't do the
;; replacement, which means TO-REPLACE won't be deduplicated.
(when temp-link
- (let* ((parent (dirname to-replace))
- (stat (stat parent)))
- (make-file-writable parent)
+ (with-writable-file (dirname to-replace)
(catch 'system-error
(lambda ()
(rename-file temp-link to-replace))
(lambda args
(delete-file temp-link)
(unless (= EMLINK (system-error-errno args))
- (apply throw args))))
+ (apply throw args)))))))
- ;; Restore PARENT's mtime and permissions.
- (set-file-time parent stat)
- (chmod parent (stat:mode stat)))))
-
-(define* (deduplicate path hash #:key (store %store-directory))
+(define* (deduplicate path hash #:key (store (%store-directory)))
"Check if a store item with sha256 hash HASH already exists. If so,
replace PATH with a hardlink to the already-existing one. If not, register
PATH so that future duplicates can hardlink to it. PATH is assumed to be
under STORE."
- (let* ((links-directory (string-append store "/.links"))
- (link-file (string-append links-directory "/"
- (bytevector->nix-base32-string hash))))
- (mkdir-p links-directory)
- (if (eq? 'directory (stat:type (lstat path)))
+ (define links-directory
+ (string-append store "/.links"))
+
+ (mkdir-p links-directory)
+ (let loop ((path path)
+ (type (stat:type (lstat path)))
+ (hash hash))
+ (if (eq? 'directory type)
;; Can't hardlink directories, so hardlink their atoms.
- (for-each (lambda (file)
- (unless (or (member file '("." ".."))
- (and (string=? path store)
- (string=? file ".links")))
- (let ((file (string-append path "/" file)))
- (deduplicate file (nar-sha256 file)
- #:store store))))
- (scandir path))
- (if (file-exists? link-file)
- (replace-with-link link-file path
- #:swap-directory links-directory)
- (catch 'system-error
- (lambda ()
- (link path link-file))
- (lambda args
- (let ((errno (system-error-errno args)))
- (cond ((= errno EEXIST)
- ;; Someone else put an entry for PATH in
- ;; LINKS-DIRECTORY before we could. Let's use it.
- (replace-with-link path link-file
- #:swap-directory links-directory))
- ((= errno ENOSPC)
- ;; There's not enough room in the directory index for
- ;; more entries in .links, but that's fine: we can
- ;; just stop.
- #f)
- ((= errno EMLINK)
- ;; PATH has reached the maximum number of links, but
- ;; that's OK: we just can't deduplicate it more.
- #f)
- (else (apply throw args))))))))))
+ (for-each (match-lambda
+ ((file . properties)
+ (unless (member file '("." ".."))
+ (let* ((file (string-append path "/" file))
+ (type (or (assq-ref properties 'type)
+ (stat:type (lstat file)))))
+ (loop file type
+ (and (not (eq? 'directory type))
+ (nar-sha256 file)))))))
+ (scandir* path))
+ (let ((link-file (string-append links-directory "/"
+ (bytevector->nix-base32-string hash))))
+ (if (file-exists? link-file)
+ (replace-with-link link-file path
+ #:swap-directory links-directory)
+ (catch 'system-error
+ (lambda ()
+ (link path link-file))
+ (lambda args
+ (let ((errno (system-error-errno args)))
+ (cond ((= errno EEXIST)
+ ;; Someone else put an entry for PATH in
+ ;; LINKS-DIRECTORY before we could. Let's use it.
+ (replace-with-link path link-file
+ #:swap-directory links-directory))
+ ((= errno ENOSPC)
+ ;; There's not enough room in the directory index for
+ ;; more entries in .links, but that's fine: we can
+ ;; just stop.
+ #f)
+ ((= errno EMLINK)
+ ;; PATH has reached the maximum number of links, but
+ ;; that's OK: we just can't deduplicate it more.
+ #f)
+ (else (apply throw args)))))))))))
diff --git a/guix/tests/gnupg.scm b/guix/tests/gnupg.scm
index 47c858d232..eb8ff63a43 100644
--- a/guix/tests/gnupg.scm
+++ b/guix/tests/gnupg.scm
@@ -17,12 +17,23 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix tests gnupg)
+ #:use-module (guix openpgp)
#:use-module (guix utils)
#:use-module (guix build utils)
+ #:use-module (rnrs io ports)
#:use-module (ice-9 match)
#:export (gpg-command
gpgconf-command
- with-fresh-gnupg-setup))
+ with-fresh-gnupg-setup
+
+ %ed25519-public-key-file
+ %ed25519-secret-key-file
+ %ed25519bis-public-key-file
+ %ed25519bis-secret-key-file
+
+ read-openpgp-packet
+ key-fingerprint
+ key-id))
(define gpg-command
(make-parameter "gpg"))
@@ -50,3 +61,22 @@ listed in IMPORTED, and only them, have been imported. This sets 'GNUPGHOME'
such that the user's real GnuPG files are left untouched. The 'gpg-agent'
process is terminated afterwards."
(call-with-fresh-gnupg-setup imported (lambda () exp ...)))
+
+(define %ed25519-public-key-file
+ (search-path %load-path "tests/ed25519.key"))
+(define %ed25519-secret-key-file
+ (search-path %load-path "tests/ed25519.sec"))
+(define %ed25519bis-public-key-file
+ (search-path %load-path "tests/ed25519bis.key"))
+(define %ed25519bis-secret-key-file
+ (search-path %load-path "tests/ed25519bis.sec"))
+
+(define (read-openpgp-packet file)
+ (get-openpgp-packet
+ (open-bytevector-input-port
+ (call-with-input-file file read-radix-64))))
+
+(define key-fingerprint
+ (compose openpgp-format-fingerprint
+ openpgp-public-key-fingerprint
+ read-openpgp-packet))
diff --git a/guix/ui.scm b/guix/ui.scm
index 98b30445c8..0d3620f96f 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1464,16 +1465,13 @@ HYPERLINKS? is true, emit hyperlink escape sequences when appropriate."
(string-map (match-lambda
(#\newline #\space)
(chr chr))
- (or (and=> (package-synopsis-string p) P_)
- "")))
+ (or (package-synopsis-string p) "")))
(format port "~a~%"
(string->recutils
(string-trim-right
(parameterize ((%text-width width*))
- (texi->plain-text
- (string-append "description: "
- (or (and=> (package-description p) P_)
- ""))))
+ (string-append "description: "
+ (or (package-description-string p) "")))
#\newline)))
(for-each (match-lambda
((field . value)
@@ -1520,11 +1518,16 @@ score, the more relevant OBJ is to REGEXPS."
(+ relevance (* weight (apply + (map score-regexp lst)))))))))
0 metrics)))
- (let ((scores (map regexp->score regexps)))
- ;; Return zero if one of REGEXPS doesn't match.
- (if (any zero? scores)
- 0
- (reduce + 0 scores))))
+ (let loop ((regexps regexps)
+ (total-score 0))
+ (match regexps
+ ((head . tail)
+ (let ((score (regexp->score head)))
+ ;; Return zero if one of PATTERNS doesn't match.
+ (if (zero? score)
+ 0
+ (loop tail (+ total-score score)))))
+ (() total-score))))
(define %package-metrics
;; Metrics used to compute the "relevance score" of a package against a set
@@ -1562,9 +1565,9 @@ zero means that PACKAGE does not match any of REGEXPS."
(if (isatty?* (current-output-port))
;; Set 'LESS' so that 'less' exits if everything fits on the screen (F),
;; lets ANSI escapes through (r), does not send the termcap
- ;; initialization string (X).
- (let ((pager (with-environment-variables `(("LESS"
- ,(or (getenv "LESS") "FrX")))
+ ;; initialization string (X). Set it unconditionally because some
+ ;; distros set it to something that doesn't work here.
+ (let ((pager (with-environment-variables `(("LESS" "FrX"))
(open-pipe* OPEN_WRITE
(or (getenv "GUIX_PAGER") (getenv "PAGER")
"less")))))
diff --git a/nix/boost/.gitignore b/nix/boost/.gitignore
deleted file mode 100644
index 1f188e3b65..0000000000
--- a/nix/boost/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.hpp
-*.cpp
-*.cc
diff --git a/nix/libstore/.gitignore b/nix/libstore/.gitignore
index 512a0d022f..805301d6d7 100644
--- a/nix/libstore/.gitignore
+++ b/nix/libstore/.gitignore
@@ -1,3 +1,2 @@
-*.cc
-*.hh
/schema.sql
+/schema.sql.hh
diff --git a/nix/libstore/optimise-store.cc b/nix/libstore/optimise-store.cc
index d8f8d2394b..eb303ab4c3 100644
--- a/nix/libstore/optimise-store.cc
+++ b/nix/libstore/optimise-store.cc
@@ -215,9 +215,10 @@ void LocalStore::optimisePath_(OptimiseStats & stats, const Path & path, InodeHa
/* Atomically replace the old file with the new hard link. */
if (rename(tempLink.c_str(), path.c_str()) == -1) {
+ int renameErrno = errno;
if (unlink(tempLink.c_str()) == -1)
printMsg(lvlError, format("unable to unlink `%1%'") % tempLink);
- if (errno == EMLINK) {
+ if (renameErrno == EMLINK) {
/* Some filesystems generate too many links on the rename,
rather than on the original link. (Probably it
temporarily increases the st_nlink field before
diff --git a/nix/libutil/.gitignore b/nix/libutil/.gitignore
deleted file mode 100644
index e539428b1b..0000000000
--- a/nix/libutil/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.cc
-*.hh
diff --git a/tests/channels.scm b/tests/channels.scm
index 3b141428c8..3a2c1d429b 100644
--- a/tests/channels.scm
+++ b/tests/channels.scm
@@ -31,15 +31,28 @@
#:use-module ((guix build utils) #:select (which))
#:use-module (git)
#:use-module (guix git)
+ #:use-module (guix git-authenticate)
+ #:use-module (guix openpgp)
#:use-module (guix tests git)
+ #:use-module (guix tests gnupg)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-64)
+ #:use-module (rnrs bytevectors)
+ #:use-module (rnrs io ports)
#:use-module (ice-9 control)
#:use-module (ice-9 match))
+(define (gpg+git-available?)
+ (and (which (git-command))
+ (which (gpg-command)) (which (gpgconf-command))))
+
+(define commit-id-string
+ (compose oid->string commit-id))
+
+
(test-begin "channels")
(define* (make-instance #:key
@@ -199,12 +212,12 @@
(commit (oid->string (commit-id commit2)))))
(old (channel (inherit spec)
(commit (oid->string (commit-id commit1))))))
- (define (validate-pull channel current instance relation)
+ (define (validate-pull channel current commit relation)
(return (and (eq? channel old)
(string=? (oid->string (commit-id commit2))
current)
(string=? (oid->string (commit-id commit1))
- (channel-instance-commit instance))
+ commit)
relation)))
(with-store store
@@ -389,4 +402,118 @@
(channel-news-for-commit channel commit5 commit1))
'(#f "tag-for-first-news-entry")))))))
+(unless (gpg+git-available?) (test-skip 1))
+(test-equal "authenticate-channel, wrong first commit signer"
+ #t
+ (with-fresh-gnupg-setup (list %ed25519-public-key-file
+ %ed25519-secret-key-file
+ %ed25519bis-public-key-file
+ %ed25519bis-secret-key-file)
+ (with-temporary-git-repository directory
+ `((add ".guix-channel"
+ ,(object->string
+ '(channel (version 0)
+ (keyring-reference "master"))))
+ (add ".guix-authorizations"
+ ,(object->string
+ `(authorizations (version 0)
+ ((,(key-fingerprint
+ %ed25519-public-key-file)
+ (name "Charlie"))))))
+ (add "signer.key" ,(call-with-input-file %ed25519-public-key-file
+ get-string-all))
+ (commit "first commit"
+ (signer ,(key-fingerprint %ed25519-public-key-file)))
+ (add "random" ,(random-text))
+ (commit "second commit"
+ (signer ,(key-fingerprint %ed25519-public-key-file))))
+ (with-repository directory repository
+ (let* ((commit1 (find-commit repository "first"))
+ (commit2 (find-commit repository "second"))
+ (intro ((@@ (guix channels) make-channel-introduction)
+ (commit-id-string commit1)
+ (openpgp-public-key-fingerprint
+ (read-openpgp-packet
+ %ed25519bis-public-key-file)) ;different key
+ #f)) ;no signature
+ (channel (channel (name 'example)
+ (url (string-append "file://" directory))
+ (introduction intro))))
+ (guard (c ((message-condition? c)
+ (->bool (string-contains (condition-message c)
+ "initial commit"))))
+ (authenticate-channel channel directory
+ (commit-id-string commit2)
+ #:keyring-reference-prefix "")
+ 'failed))))))
+
+(unless (gpg+git-available?) (test-skip 1))
+(test-assert "authenticate-channel, .guix-authorizations"
+ (with-fresh-gnupg-setup (list %ed25519-public-key-file
+ %ed25519-secret-key-file
+ %ed25519bis-public-key-file
+ %ed25519bis-secret-key-file)
+ (with-temporary-git-repository directory
+ `((add ".guix-channel"
+ ,(object->string
+ '(channel (version 0)
+ (keyring-reference "channel-keyring"))))
+ (add ".guix-authorizations"
+ ,(object->string
+ `(authorizations (version 0)
+ ((,(key-fingerprint
+ %ed25519-public-key-file)
+ (name "Charlie"))))))
+ (commit "zeroth commit")
+ (add "a.txt" "A")
+ (commit "first commit"
+ (signer ,(key-fingerprint %ed25519-public-key-file)))
+ (add "b.txt" "B")
+ (commit "second commit"
+ (signer ,(key-fingerprint %ed25519-public-key-file)))
+ (add "c.txt" "C")
+ (commit "third commit"
+ (signer ,(key-fingerprint %ed25519bis-public-key-file)))
+ (branch "channel-keyring")
+ (checkout "channel-keyring")
+ (add "signer.key" ,(call-with-input-file %ed25519-public-key-file
+ get-string-all))
+ (add "other.key" ,(call-with-input-file %ed25519bis-public-key-file
+ get-string-all))
+ (commit "keyring commit")
+ (checkout "master"))
+ (with-repository directory repository
+ (let* ((commit1 (find-commit repository "first"))
+ (commit2 (find-commit repository "second"))
+ (commit3 (find-commit repository "third"))
+ (intro ((@@ (guix channels) make-channel-introduction)
+ (commit-id-string commit1)
+ (openpgp-public-key-fingerprint
+ (read-openpgp-packet
+ %ed25519-public-key-file))
+ #f)) ;no signature
+ (channel (channel (name 'example)
+ (url (string-append "file://" directory))
+ (introduction intro))))
+ ;; COMMIT1 and COMMIT2 are fine.
+ (and (authenticate-channel channel directory
+ (commit-id-string commit2)
+ #:keyring-reference-prefix "")
+
+ ;; COMMIT3 is signed by an unauthorized key according to its
+ ;; parent's '.guix-authorizations' file.
+ (guard (c ((unauthorized-commit-error? c)
+ (and (oid=? (git-authentication-error-commit c)
+ (commit-id commit3))
+ (bytevector=?
+ (openpgp-public-key-fingerprint
+ (unauthorized-commit-error-signing-key c))
+ (openpgp-public-key-fingerprint
+ (read-openpgp-packet
+ %ed25519bis-public-key-file))))))
+ (authenticate-channel channel directory
+ (commit-id-string commit3)
+ #:keyring-reference-prefix "")
+ 'failed)))))))
+
(test-end "channels")
diff --git a/tests/git-authenticate.scm b/tests/git-authenticate.scm
index 97990acaea..865481f7c5 100644
--- a/tests/git-authenticate.scm
+++ b/tests/git-authenticate.scm
@@ -32,31 +32,6 @@
;; Test the (guix git-authenticate) tools.
-(define %ed25519-public-key-file
- (search-path %load-path "tests/ed25519.key"))
-(define %ed25519-secret-key-file
- (search-path %load-path "tests/ed25519.sec"))
-(define %ed25519bis-public-key-file
- (search-path %load-path "tests/ed25519bis.key"))
-(define %ed25519bis-secret-key-file
- (search-path %load-path "tests/ed25519bis.sec"))
-
-(define (read-openpgp-packet file)
- (get-openpgp-packet
- (open-bytevector-input-port
- (call-with-input-file file read-radix-64))))
-
-(define key-fingerprint
- (compose openpgp-format-fingerprint
- openpgp-public-key-fingerprint
- read-openpgp-packet))
-
-(define (key-id file)
- (define id
- (openpgp-public-key-id (read-openpgp-packet)))
-
- (string-pad (number->string id 16) 16 #\0))
-
(define (gpg+git-available?)
(and (which (git-command))
(which (gpg-command)) (which (gpgconf-command))))
@@ -81,7 +56,7 @@
#:keyring-reference "master")
'failed)))))
-(unless (which (git-command)) (test-skip 1))
+(unless (which (gpg+git-available?)) (test-skip 1))
(test-assert "signed commits, SHA1 signature"
(with-fresh-gnupg-setup (list %ed25519-public-key-file
%ed25519-secret-key-file)
diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh
index d313f2e734..45264d4978 100644
--- a/tests/guix-environment-container.sh
+++ b/tests/guix-environment-container.sh
@@ -24,7 +24,7 @@ set -e
guix environment --version
-if ! guile -c '((@@ (guix scripts environment) assert-container-features))'
+if ! guile -c '((@ (guix scripts environment) assert-container-features))'
then
# User containers are not supported; skip this test.
exit 77
diff --git a/tests/guix-repl.sh b/tests/guix-repl.sh
new file mode 100644
index 0000000000..e1c2b8241f
--- /dev/null
+++ b/tests/guix-repl.sh
@@ -0,0 +1,84 @@
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
+# Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
+#
+# 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/>.
+
+#
+# Test the `guix repl' command-line utility.
+#
+
+guix repl --version
+
+test_directory="`mktemp -d`"
+export test_directory
+trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
+
+tmpfile="$test_directory/foo.scm"
+rm -f "$tmpfile"
+trap 'rm -f "$tmpfile"' EXIT
+
+module_dir="t-guix-repl-$$"
+mkdir "$module_dir"
+trap 'rm -rf "$module_dir"' EXIT
+
+
+cat > "$tmpfile"<<EOF
+(use-modules (guix packages)
+ (gnu packages base))
+
+(format #t "~a\n" (package-name coreutils))
+EOF
+
+test "`guix repl "$tmpfile"`" = "coreutils"
+
+
+cat > "$module_dir/foo.scm"<<EOF
+(define-module (foo)
+ #:use-module (guix packages)
+ #:use-module (gnu packages base))
+
+(define-public dummy
+ (package (inherit hello)
+ (name "dummy")
+ (version "42")
+ (synopsis "dummy package")
+ (description "dummy package. Only used for testing purposes.")))
+EOF
+
+cat > "$tmpfile"<<EOF
+(use-modules (guix packages)
+ (foo))
+
+(format #t "~a\n" (package-version dummy))
+EOF
+
+test "`guix repl "$tmpfile" -L "$module_dir"`" = "42"
+
+cat > "$tmpfile"<<EOF
+(format #t "~a\n" (cdr (command-line)))
+EOF
+
+test "`guix repl -- "$tmpfile" -a b --input=foo.txt`" = "(-a b --input=foo.txt)"
+
+cat > "$tmpfile"<<EOF
+#!$(type -P env) -S guix repl --
+!#
+(format #t "~a\n" (cdr (command-line)))
+EOF
+chmod 755 $tmpfile
+
+test "`"$tmpfile" -a b --input=foo.txt`" = "(-a b --input=foo.txt)"
diff --git a/tests/lint.scm b/tests/lint.scm
index 4ce45b4a70..ac174f9f23 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -353,6 +353,36 @@
(((and (? lint-warning?) first-warning) others ...)
(lint-warning-message first-warning))))
+(test-equal "profile-collisions: no warnings"
+ '()
+ (check-profile-collisions (dummy-package "x")))
+
+(test-equal "profile-collisions: propagated inputs collide"
+ "propagated inputs p0@1 and p0@2 collide"
+ (let* ((p0 (dummy-package "p0" (version "1")))
+ (p0* (dummy-package "p0" (version "2")))
+ (p1 (dummy-package "p1" (propagated-inputs `(("p0" ,p0)))))
+ (p2 (dummy-package "p2" (propagated-inputs `(("p1" ,p1)))))
+ (p3 (dummy-package "p3" (propagated-inputs `(("p0" ,p0*)))))
+ (p4 (dummy-package "p4" (propagated-inputs
+ `(("p2" ,p2) ("p3", p3))))))
+ (single-lint-warning-message
+ (check-profile-collisions p4))))
+
+(test-assert "profile-collisions: propagated inputs collide, store items"
+ (string-match-or-error
+ "propagated inputs /[[:graph:]]+-p0-1 and /[[:graph:]]+-p0-1 collide"
+ (let* ((p0 (dummy-package "p0" (version "1")))
+ (p0* (dummy-package "p0" (version "1")
+ (inputs `(("x" ,(dummy-package "x"))))))
+ (p1 (dummy-package "p1" (propagated-inputs `(("p0" ,p0)))))
+ (p2 (dummy-package "p2" (propagated-inputs `(("p1" ,p1)))))
+ (p3 (dummy-package "p3" (propagated-inputs `(("p0" ,p0*)))))
+ (p4 (dummy-package "p4" (propagated-inputs
+ `(("p2" ,p2) ("p3", p3))))))
+ (single-lint-warning-message
+ (check-profile-collisions p4)))))
+
(test-equal "license: invalid license"
"invalid license field"
(single-lint-warning-message
@@ -707,6 +737,7 @@
(single-lint-warning-message
(check-mirror-url (dummy-package "x" (source source))))))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-equal "github-url"
'()
(with-http-server `((200 ,%long-string))
@@ -718,6 +749,7 @@
(sha256 %null-sha256)))))))
(let ((github-url "https://github.com/foo/bar/bar-1.0.tar.gz"))
+ (test-skip (if (http-server-can-listen?) 0 1))
(test-equal "github-url: one suggestion"
(string-append
"URL should be '" github-url "'")
@@ -740,6 +772,8 @@
(method url-fetch)
(uri (%local-url))
(sha256 %null-sha256))))))))))))
+
+ (test-skip (if (http-server-can-listen?) 0 1))
(test-equal "github-url: already the correct github url"
'()
(check-github-url
@@ -863,6 +897,7 @@
'()
(check-formatting (dummy-package "x")))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-assert "archival: missing content"
(let* ((origin (origin
(method url-fetch)
@@ -874,6 +909,7 @@
(source origin)))))))
(warning-contains? "not archived" warnings)))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-equal "archival: content available"
'()
(let* ((origin (origin
@@ -887,6 +923,7 @@
(parameterize ((%swh-base-url (%local-url)))
(check-archival (dummy-package "x" (source origin)))))))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-assert "archival: missing revision"
(let* ((origin (origin
(method git-fetch)
@@ -906,6 +943,7 @@
(check-archival (dummy-package "x" (source origin)))))))
(warning-contains? "scheduled" warnings)))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-equal "archival: revision available"
'()
(let* ((origin (origin
@@ -921,6 +959,7 @@
(parameterize ((%swh-base-url (%local-url)))
(check-archival (dummy-package "x" (source origin)))))))
+(test-skip (if (http-server-can-listen?) 0 1))
(test-assert "archival: rate limit reached"
;; We should get a single warning stating that the rate limit was reached,
;; and nothing more, in particular no other HTTP requests.