summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi36
-rw-r--r--etc/guix-daemon.cil.in18
-rw-r--r--etc/news.scm17
-rw-r--r--etc/snippets/text-mode/guix-commit-message-add-cl-package6
-rw-r--r--gnu/ci.scm16
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/audio.scm11
-rw-r--r--gnu/packages/bioinformatics.scm79
-rw-r--r--gnu/packages/bittorrent.scm4
-rw-r--r--gnu/packages/bootloaders.scm30
-rw-r--r--gnu/packages/ci.scm6
-rw-r--r--gnu/packages/cmake.scm71
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/debian.scm122
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/education.scm16
-rw-r--r--gnu/packages/emacs-xyz.scm63
-rw-r--r--gnu/packages/engineering.scm60
-rw-r--r--gnu/packages/fonts.scm6
-rw-r--r--gnu/packages/games.scm2
-rw-r--r--gnu/packages/geo.scm4
-rw-r--r--gnu/packages/gnome.scm6
-rw-r--r--gnu/packages/gnupg.scm46
-rw-r--r--gnu/packages/gstreamer.scm7
-rw-r--r--gnu/packages/gtk.scm4
-rw-r--r--gnu/packages/guile.scm6
-rw-r--r--gnu/packages/haskell-apps.scm5
-rw-r--r--gnu/packages/haskell-xyz.scm54
-rw-r--r--gnu/packages/image.scm25
-rw-r--r--gnu/packages/linux.scm72
-rw-r--r--gnu/packages/lisp-xyz.scm90
-rw-r--r--gnu/packages/machine-learning.scm72
-rw-r--r--gnu/packages/mail.scm12
-rw-r--r--gnu/packages/mercury.scm8
-rw-r--r--gnu/packages/monitoring.scm4
-rw-r--r--gnu/packages/mpi.scm10
-rw-r--r--gnu/packages/networking.scm4
-rw-r--r--gnu/packages/patches/mupdf-fix-linkage.patch27
-rw-r--r--gnu/packages/patches/mutt-store-references.patch13
-rw-r--r--gnu/packages/pdf.scm119
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/protobuf.scm5
-rw-r--r--gnu/packages/python-science.scm26
-rw-r--r--gnu/packages/python-web.scm4
-rw-r--r--gnu/packages/python-xyz.scm34
-rw-r--r--gnu/packages/radio.scm4
-rw-r--r--gnu/packages/re2c.scm6
-rw-r--r--gnu/packages/regex.scm5
-rw-r--r--gnu/packages/rpc.scm11
-rw-r--r--gnu/packages/scheme.scm2
-rw-r--r--gnu/packages/skarnet.scm5
-rw-r--r--gnu/packages/ssh.scm30
-rw-r--r--gnu/packages/storage.scm4
-rw-r--r--gnu/packages/terminals.scm9
-rw-r--r--gnu/packages/version-control.scm37
-rw-r--r--gnu/packages/video.scm20
-rw-r--r--gnu/packages/virtualization.scm4
-rw-r--r--gnu/packages/web.scm7
-rw-r--r--gnu/packages/xdisorg.scm37
-rw-r--r--gnu/packages/xorg.scm6
-rw-r--r--gnu/services/base.scm3
-rw-r--r--gnu/system.scm11
-rw-r--r--gnu/system/linux-initrd.scm11
-rw-r--r--gnu/system/mapped-devices.scm199
-rw-r--r--gnu/tests/install.scm87
-rw-r--r--guix/scripts/weather.scm36
66 files changed, 1334 insertions, 433 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 8146417236..360c022b95 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -1955,9 +1955,6 @@ following noteworthy limitations applicable to version @value{VERSION}:
@itemize
@item
-Support for the Logical Volume Manager (LVM) is missing.
-
-@item
More and more system services are provided (@pxref{Services}), but some
may be missing.
@@ -13755,7 +13752,6 @@ Guix extends this notion by considering any device or set of devices that
are @dfn{transformed} in some way to create a new device; for instance,
RAID devices are obtained by @dfn{assembling} several other devices, such
as hard disks or partitions, into a new one that behaves as one partition.
-Other examples, not yet implemented, are LVM logical volumes.
Mapped devices are declared using the @code{mapped-device} form,
defined as follows; for examples, see below.
@@ -13768,7 +13764,8 @@ the system boots up.
@item source
This is either a string specifying the name of the block device to be mapped,
such as @code{"/dev/sda3"}, or a list of such strings when several devices
-need to be assembled for creating a new one.
+need to be assembled for creating a new one. In case of LVM this is a
+string specifying name of the volume group to be mapped.
@item target
This string specifies the name of the resulting mapped device. For
@@ -13777,6 +13774,12 @@ specifying @code{"my-partition"} leads to the creation of
the @code{"/dev/mapper/my-partition"} device.
For RAID devices of type @code{raid-device-mapping}, the full device name
such as @code{"/dev/md0"} needs to be given.
+LVM logical volumes of type @code{lvm-device-mapping} need to
+be specified as @code{"VGNAME-LVNAME"}.
+
+@item targets
+This list of strings specifies names of the resulting mapped devices in case
+there are several. The format is identical to @var{target}.
@item type
This must be a @code{mapped-device-kind} object, which specifies how
@@ -13797,6 +13800,14 @@ module for the appropriate RAID level to be loaded, such as @code{raid456}
for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10.
@end defvr
+@cindex LVM, logical volume manager
+@defvr {Scheme Variable} lvm-device-mapping
+This defines one or more logical volumes for the Linux
+@uref{https://www.sourceware.org/lvm2/, Logical Volume Manager (LVM)}.
+The volume group is activated by the @command{vgchange} command from the
+@code{lvm2} package.
+@end defvr
+
@cindex disk encryption
@cindex LUKS
The following example specifies a mapping from @file{/dev/sda3} to
@@ -13854,6 +13865,19 @@ Note that the RAID level need not be given; it is chosen during the
initial creation and formatting of the RAID device and is determined
automatically later.
+LVM logical volumes ``alpha'' and ``beta'' from volume group ``vg0'' can
+be declared as follows:
+
+@lisp
+(mapped-device
+ (source "vg0")
+ (target (list "vg0-alpha" "vg0-beta"))
+ (type lvm-device-mapping))
+@end lisp
+
+Devices @file{/dev/mapper/vg0-alpha} and @file{/dev/mapper/vg0-beta} can
+then be used as the @code{device} of a @code{file-system} declaration
+(@pxref{File Systems}).
@node User Accounts
@section User Accounts
@@ -16715,7 +16739,7 @@ Connection policy. @var{reject} policy requires to specify @var{known-hosts}.
List of hosts which allowed for SSH connection from @command{webssh}.
@item @code{log-file} (default: @file{"/var/log/webssh.log"})
-Name of the file where @command{rsync} writes its log file.
+Name of the file where @command{webssh} writes its log file.
@item @code{log-level} (default: @var{#f})
Logging level.
diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in
index 91958b7617..8ff6716038 100644
--- a/etc/guix-daemon.cil.in
+++ b/etc/guix-daemon.cil.in
@@ -264,6 +264,7 @@
link unlink
map
rename
+ append
open read write relabelfrom)))
(allow guix_daemon_t
guix_store_content_t
@@ -277,7 +278,7 @@
(fifo_file (create getattr open read unlink write)))
(allow guix_daemon_t
guix_store_content_t
- (sock_file (create getattr unlink write)))
+ (sock_file (create getattr setattr unlink write)))
;; Access to configuration files and directories
(allow guix_daemon_t
@@ -362,7 +363,7 @@
(tcp_socket (name_bind name_connect accept listen)))
(allow guix_daemon_t
self
- (udp_socket (connect getattr bind getopt setopt)))
+ (udp_socket (connect getattr bind getopt setopt read write)))
(allow guix_daemon_t
self
(fifo_file (write read)))
@@ -372,7 +373,11 @@
(allow guix_daemon_t
self
(unix_stream_socket (connectto)))
+ (allow guix_daemon_t
+ self
+ (unix_dgram_socket (create bind connect sendto read write)))
+ ;; For some esoteric build jobs (i.e. PostgreSQL).
(allow guix_daemon_t
node_t
(tcp_socket (node_bind)))
@@ -383,6 +388,15 @@
port_t
(tcp_socket (name_connect)))
(allow guix_daemon_t
+ tmpfs_t
+ (file (map read write)))
+ (allow guix_daemon_t
+ hugetlbfs_t
+ (file (map read write)))
+ (allow guix_daemon_t
+ postgresql_port_t
+ (tcp_socket (name_connect name_bind)))
+ (allow guix_daemon_t
rtp_media_port_t
(udp_socket (name_bind)))
(allow guix_daemon_t
diff --git a/etc/news.scm b/etc/news.scm
index 5ff88ae7e0..1144ec36c8 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -18,6 +18,23 @@
(channel-news
(version 0)
+ (entry (commit "a9a2fdaabcc78e7a54d9a6bcfa4ee3de308e9a90")
+ (title (en "Logical Volume Manager (LVM) now supported on Guix System"))
+ (body
+ (en "On Guix System, the new @code{lvm-device-mapping} variable
+allows you to declare ``mapped devices'' for LVM, the Linux Logical Volume
+Manager. For example, LVM logical volumes ``alpha'' and ``beta'' from volume
+group ``vg0'' can be declared as follows:
+
+@lisp
+(mapped-device
+ (source \"vg0\")
+ (target (list \"vg0-alpha\" \"vg0-beta\"))
+ (type lvm-device-mapping))
+@end lisp
+
+See @command{info \"(guix) Mapped Devices\"} for more information.")))
+
(entry (commit "3b6e4e5fd05e72b8a32ff1a2d5e21464260e21e6")
(title (en "List of substitute keys is now declarative on Guix System")
(de "Liste der Substitutschlüssel auf Guix System ist jetzt deklarativ")
diff --git a/etc/snippets/text-mode/guix-commit-message-add-cl-package b/etc/snippets/text-mode/guix-commit-message-add-cl-package
index b0f7ef65e3..e255736b05 100644
--- a/etc/snippets/text-mode/guix-commit-message-add-cl-package
+++ b/etc/snippets/text-mode/guix-commit-message-add-cl-package
@@ -8,6 +8,8 @@ gnu: Add ${1:`(with-temp-buffer
"diff" "--staged")
(beginning-of-buffer)
(when (search-forward "+(define-public " nil 'noerror)
- (thing-at-point 'sexp 'no-properties)))`}.
+ (replace-regexp-in-string
+ "^sbcl-" ""
+ (thing-at-point 'sexp 'no-properties))))`}.
-* `(car (magit-staged-files))` (${1:$(replace-regexp-in-string (rx line-start "sbcl" (optional "-cl")) "cl" yas-text)}, ${1:$(replace-regexp-in-string "^sbcl" "ecl" yas-text)}, $1): New variables. \ No newline at end of file
+* `(car (magit-staged-files))` (cl-${1:$(replace-regexp-in-string "^cl-" "" yas-text)}, ecl-$1, sbcl-$1): New variables. \ No newline at end of file
diff --git a/gnu/ci.scm b/gnu/ci.scm
index a5afef91ae..5548d9560e 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2017, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -209,8 +210,13 @@ SYSTEM."
pine64-barebones-raw-image
pinebook-pro-barebones-raw-image))
+(define (hours hours)
+ (* 3600 hours))
+
(define (image-jobs store system)
- "Return a list of jobs that build images for SYSTEM."
+ "Return a list of jobs that build images for SYSTEM. Those jobs are
+expensive in storage and I/O operations, hence their periodicity is limited by
+passing the PERIOD argument."
(define (->alist drv)
`((derivation . ,(derivation-file-name drv))
(log . ,(log-file store (derivation-file-name drv)))
@@ -225,6 +231,7 @@ SYSTEM."
(long-description . "This is a demo stand-alone image of the GNU
system.")
(license . ,(license-name gpl3+))
+ (period . ,(hours 48))
(max-silent-time . 600)
(timeout . 3600)
(home-page . ,%guix-home-page-url)
@@ -323,6 +330,9 @@ system.")
(set-guile-for-build (default-guile))
(system-test-value test))))
+ ;; Those tests are extremely expensive in I/O operations and storage
+ ;; size, use the "period" attribute to run them with a period of at
+ ;; least 48 hours.
`((derivation . ,(derivation-file-name drv))
(log . ,(log-file store (derivation-file-name drv)))
(outputs . ,(filter-map (lambda (res)
@@ -336,6 +346,7 @@ system.")
(system-test-name test)))
(long-description . ,(system-test-description test))
(license . ,(license-name gpl3+))
+ (period . ,(hours 48))
(max-silent-time . 600)
(timeout . 3600)
(home-page . ,%guix-home-page-url)
@@ -374,7 +385,8 @@ system.")
all its dependencies, and ready to be installed on \"foreign\" distributions.")
(license . ,(license-name gpl3+))
(home-page . ,%guix-home-page-url)
- (maintainers . ("bug-guix@gnu.org"))))
+ (maintainers . ("bug-guix@gnu.org"))
+ (period . ,(hours 24))))
(define (->job name drv)
(let ((name (symbol-append name (string->symbol ".")
diff --git a/gnu/local.mk b/gnu/local.mk
index c095a5e86a..7717793984 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1365,6 +1365,7 @@ dist_patch_DATA = \
%D%/packages/patches/mumps-shared-libseq.patch \
%D%/packages/patches/mumps-shared-mumps.patch \
%D%/packages/patches/mumps-shared-pord.patch \
+ %D%/packages/patches/mupdf-fix-linkage.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \
%D%/packages/patches/musl-cross-locale.patch \
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 852b56e80f..d3090edf61 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -58,6 +58,7 @@
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages build-tools)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
@@ -4713,7 +4714,7 @@ in the package.")
(define-public libaudec
(package
(name "libaudec")
- (version "0.2.3")
+ (version "0.2.4")
(source
(origin
(method git-fetch)
@@ -4723,11 +4724,13 @@ in the package.")
(file-name (git-file-name name version))
(sha256
(base32
- "04hw61db8wscj28qjyiaiafx8xl87njgmvqszxyhs4gmg8xgjip7"))))
+ "1570m2dfia17dbkhd2qhx8jjihrpm7g8nnyg6n4wif4vv229s7dz"))))
(build-system meson-build-system)
(arguments
- ;; Compile tests.
- `(#:configure-flags `("-Dtests=true")))
+ `(#:meson ,meson-0.55
+ #:configure-flags
+ ;; Build the tests.
+ `("-Dtests=true")))
(inputs
`(("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index b051389ae2..1a82815e92 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018, 2019, 2020 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -66,6 +66,8 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpio)
#:use-module (gnu packages cran)
@@ -82,6 +84,7 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages glib)
#:use-module (gnu packages graph)
+ #:use-module (gnu packages graphics)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages gtk)
@@ -91,6 +94,7 @@
#:use-module (gnu packages haskell-web)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages image)
+ #:use-module (gnu packages image-processing)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
#:use-module (gnu packages java-compression)
@@ -11169,23 +11173,44 @@ programs for inferring phylogenies (evolutionary trees).")
"1z1vcpwbylixk0zywngg5iw0jv083jj1bqphi817jpg3fb9fx2jj"))))
(build-system cmake-build-system)
(arguments
- `(;; FIXME: Some tests fail because they produce warnings, others fail
- ;; because the PYTHONPATH does not include the modeller's directory.
- #:tests? #f))
+ `( ;; CMake 3.17 or newer is required for the CMAKE_TEST_ARGUMENTS used
+ ;; below to have an effect.
+ #:cmake ,cmake
+ #:configure-flags
+ (let ((disabled-tests
+ '("expensive" ;exclude expensive tests
+ "IMP.modeller" ;fail to import its own modules
+ "IMP.parallel-test_sge.py" ;fail in build container
+ ;; The following test fails non-reproducibly on
+ ;; an inexact numbers assertion.
+ "IMP.em-medium_test_local_fitting.py")))
+ (list
+ (string-append
+ "-DCMAKE_CTEST_ARGUMENTS="
+ (string-join
+ (list "-L" "-tests?-" ;select only tests
+ "-E" (format #f "'(~a)'" (string-join disabled-tests "|")))
+ ";"))))))
+ (native-inputs
+ `(("python" ,python-wrapper)
+ ("swig" ,swig)))
(inputs
`(("boost" ,boost)
+ ("cgal" ,cgal)
("gsl" ,gsl)
- ("swig" ,swig)
("hdf5" ,hdf5)
("fftw" ,fftw)
("eigen" ,eigen)
- ("python" ,python-2)))
+ ;; Enabling MPI causes the build to use all the available memory and
+ ;; fail (tested on a machine with 32 GiB of RAM).
+ ;;("mpi" ,openmpi)
+ ("opencv" ,opencv)))
(propagated-inputs
- `(("python2-numpy" ,python2-numpy)
- ("python2-scipy" ,python2-scipy)
- ("python2-pandas" ,python2-pandas)
- ("python2-scikit-learn" ,python2-scikit-learn)
- ("python2-networkx" ,python2-networkx)))
+ `(("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)
+ ("python-pandas" ,python-pandas)
+ ("python-scikit-learn" ,python-scikit-learn)
+ ("python-networkx" ,python-networkx)))
(home-page "https://integrativemodeling.org")
(synopsis "Integrative modeling platform")
(description "IMP's broad goal is to contribute to a comprehensive
@@ -11203,7 +11228,7 @@ applications for tackling some common problems in a user-friendly way.")
(define-public tadbit
(package
(name "tadbit")
- (version "0.2.0")
+ (version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -11212,21 +11237,13 @@ applications for tackling some common problems in a user-friendly way.")
(file-name (git-file-name name version))
(sha256
(base32
- "07g3aj648prmsvxp9caz5yl41k0y0647vxh0f5p3w8376mfiljd0"))))
+ "0hqrlymh2a2bimcfdvlssy1x5h1lp3h1c5a7jj11hmcqczzqn3ni"))))
(build-system python-build-system)
(arguments
- `(;; Tests are included and must be run after installation, but
- ;; they are incomplete and thus cannot be run.
- #:tests? #f
- #:python ,python-2
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-problems-with-setup.py
(lambda* (#:key outputs #:allow-other-keys)
- ;; setup.py opens these files for writing
- (chmod "_pytadbit/_version.py" #o664)
- (chmod "README.rst" #o664)
-
;; Don't attempt to install the bash completions to
;; the home directory.
(rename-file "extras/.bash_completion"
@@ -11238,15 +11255,25 @@ applications for tackling some common problems in a user-friendly way.")
"/etc/bash_completion.d\""))
(("extras/\\.bash_completion")
"extras/tadbit"))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python3" "test/test_all.py")
#t)))))
+ (native-inputs
+ `(("glib" ,glib "bin") ;for gtester
+ ("pkg-config" ,pkg-config)))
(inputs
;; TODO: add Chimera for visualization
`(("imp" ,imp)
("mcl" ,mcl)
- ("python2-scipy" ,python2-scipy)
- ("python2-numpy" ,python2-numpy)
- ("python2-matplotlib" ,python2-matplotlib)
- ("python2-pysam" ,python2-pysam)))
+ ("python-future" ,python-future)
+ ("python-h5py" ,python-h5py)
+ ("python-scipy" ,python-scipy)
+ ("python-numpy" ,python-numpy)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pysam" ,python-pysam)))
(home-page "https://3dgenomes.github.io/TADbit/")
(synopsis "Analyze, model, and explore 3C-based data")
(description
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 09bff49818..ab44caa06a 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -312,7 +312,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(define-public uget
(package
(name "uget")
- (version "2.2.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
@@ -320,7 +320,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
"uget%20%28stable%29/" version "/uget-"
version ".tar.gz"))
(sha256
- (base32 "0rg2mr2cndxvnjib8zm5dp7y2hgbvnqkz2j2jmg0xlzfh9d34b2m"))))
+ (base32 "0dlrjhnm1pg2vwmp7nl2xv1aia5hyirb3021rl46x859k63zap24"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 2e9709982f..75ae8d919b 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -258,21 +258,25 @@ menu to select one of the installed operating systems.")
(fold alist-delete (package-native-inputs grub)
'("help2man" "texinfo" "parted" "qemu" "xorriso")))
(arguments
- `(#:configure-flags (list "PYTHON=true")
- #:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-stuff
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (substitute* "grub-core/Makefile.in"
- (("/bin/sh") (which "sh")))
+ (substitute-keyword-arguments (package-arguments grub)
+ ((#:configure-flags _ ''())
+ '(list "PYTHON=true"))
+ ((#:tests? _ #t)
+ #f)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (replace 'patch-stuff
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (substitute* "grub-core/Makefile.in"
+ (("/bin/sh") (which "sh")))
- ;; Make the font visible.
- (copy-file (assoc-ref (or native-inputs inputs)
- "unifont")
- "unifont.bdf.gz")
- (system* "gunzip" "unifont.bdf.gz")
+ ;; Make the font visible.
+ (copy-file (assoc-ref (or native-inputs inputs)
+ "unifont")
+ "unifont.bdf.gz")
+ (system* "gunzip" "unifont.bdf.gz")
- #t)))
- #:tests? #f))))
+ #t))))))))
(define-public grub-efi
(package
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 517b20f448..2fb9822fb5 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -68,8 +68,8 @@
(file-name (string-append name "-" version "-checkout")))))))
(define-public cuirass
- (let ((commit "df2d13621f4b2ace33a460746e704115b7b1541e")
- (revision "53"))
+ (let ((commit "fd432b8e8f449d691773e96e7d90f44761e01aa3")
+ (revision "55"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@@ -81,7 +81,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1vgb1wl1rkijm1vv5chqllf4i5w1j7g02xqlaf2xmqjh2phy5dxa"))))
+ "10j3w3px0250avwry2x8wsa0m0plvm957g4qqgnajsbc9gvka554"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)
diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index bfbedfd984..f4b138ebb3 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -8,7 +8,7 @@
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
@@ -297,6 +297,39 @@ and workspaces that can be used in the compiler environment of your choice.")
(package
(inherit cmake-minimal)
(name "cmake")
+ (version "3.19.0")
+ ;; TODO: Move the following source field to the cmake-bootstrap package in
+ ;; the next rebuild cycle.
+ (source (origin
+ (inherit (package-source cmake-bootstrap))
+ (uri (string-append "https://cmake.org/files/v"
+ (version-major+minor version)
+ "/cmake-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14zlrb7awiazxc5wlvgah9rw1dm4ziczbxiyqsvp4zmaan0ninpx"))
+ (snippet
+ (match (origin-snippet (package-source cmake-bootstrap))
+ ((_ _ exp ...)
+ ;; Now we can delete the remaining software bundles.
+ (append `(begin
+ (define preserved-files
+ '(,@%preserved-third-party-files
+ ;; TODO: Move this file to the
+ ;; %preserved-third-party-files variable in
+ ;; the next rebuild cycle.
+ "Utilities/cm3p" ;CMake header wrappers
+ ;; Use the bundled JsonCpp during bootstrap
+ ;; to work around a circular dependency.
+ ;; TODO: JsonCpp can be built with Meson
+ ;; instead of CMake, but meson-build-system
+ ;; currently does not support
+ ;; cross-compilation.
+ "Utilities/cmjsoncpp"
+ ;; LibUV is required to bootstrap the initial
+ ;; build system.
+ "Utilities/cmlibuv")))
+ exp))))))
(arguments
(substitute-keyword-arguments (package-arguments cmake-minimal)
;; Use cmake-minimal this time.
@@ -318,6 +351,42 @@ and workspaces that can be used in the compiler environment of your choice.")
,flags))
((#:phases phases)
`(modify-phases ,phases
+ ;; TODO: Remove this override in the next rebuild cycle and adjust
+ ;; the %common-build-phases variable instead: the
+ ;; Utilities/Release/release_cmake.cmake file no longer exists in
+ ;; version 3.19.0.
+ (replace 'patch-bin-sh
+ (lambda _
+ ;; Replace "/bin/sh" by the right path in... a lot of
+ ;; files.
+ (substitute*
+ '("Modules/CompilerId/Xcode-3.pbxproj.in"
+ "Modules/Internal/CPack/CPack.RuntimeScript.in"
+ "Source/cmGlobalXCodeGenerator.cxx"
+ "Source/cmLocalUnixMakefileGenerator3.cxx"
+ "Source/cmExecProgramCommand.cxx"
+ "Tests/CMakeLists.txt"
+ "Tests/RunCMake/File_Generate/RunCMakeTest.cmake")
+ (("/bin/sh") (which "sh")))
+ #t))
+ ;; TODO: Remove this override in the next rebuild cycle and adjust
+ ;; the %common-disabled-tests variable instead.
+ (replace 'check
+ (lambda* (#:key tests? parallel-tests? #:allow-other-keys)
+ (let ((skipped-tests (list ,@%common-disabled-tests
+ ;; This test fails for unknown reason.
+ "RunCMake.file-GET_RUNTIME_DEPENDENCIES"
+ ;; This test requires the bundled libuv.
+ "BootstrapTest")))
+ (if tests?
+ (begin
+ (invoke "ctest" "-j" (if parallel-tests?
+ (number->string (parallel-job-count))
+ "1")
+ "--exclude-regex"
+ (string-append "^(" (string-join skipped-tests "|") ")$")))
+ (format #t "test suite not run~%"))
+ #t)))
(add-after 'install 'move-html-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index a83169263e..bfa78556bc 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -2320,7 +2320,7 @@ database.")
(define-public lmdb
(package
(name "lmdb")
- (version "0.9.26")
+ (version "0.9.27")
(source
(origin
(method git-fetch)
@@ -2329,7 +2329,7 @@ database.")
(commit (string-append "LMDB_" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0323xwb2rqyrr9vr6gbxc2kl89drhqw0ifmyh9pg9qgqmymyhxdx"))))
+ (base32 "09xqqm8yjsf1gv4gd4llal48sms76hfhxadx6rik1j2g5v3d3f1k"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 52e7ec223a..a82e6a07a8 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
@@ -26,12 +26,17 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages crypto)
+ #:use-module (gnu packages dbm)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
- #:use-module (gnu packages wget)
- #:use-module (gnu packages perl))
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages wget))
(define-public debian-archive-keyring
(package
@@ -275,3 +280,114 @@ debian/copyright for more information.")))))
selectively mirror Debian and Ubuntu GNU/Linux distributions or any
other apt sources typically provided by open source developers.")
(license license:gpl2))))
+
+(define-public dpkg
+ (package
+ (name "dpkg")
+ (version "1.20.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.dpkg.org/git/dpkg/dpkg")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "190q968g1vdz07byvfvc2gladhpq3yl765mfiacglyix3nkisy0j"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'patch-version
+ (lambda _
+ (patch-shebang "get-version")
+ (with-output-to-file ".dist-version"
+ (lambda () (display ,version)))
+ #t))
+ (add-after 'unpack 'set-perl-libdir
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (perl (assoc-ref inputs "perl")))
+ (setenv "PERL_LIBDIR"
+ (string-append out
+ "/lib/perl5/site_perl/"
+ ,(package-version perl)))
+ #t))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("gettext" ,gettext-minimal)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("perl-io-string" ,perl-io-string)))
+ (inputs
+ `(("bzip2" ,bzip2)
+ ("libmd" ,libmd)
+ ("ncurses" ,ncurses)
+ ("perl" ,perl)
+ ("xz" ,xz)
+ ("zlib" ,zlib)))
+ (home-page "https://wiki.debian.org/Teams/Dpkg")
+ (synopsis "Debian package management system")
+ (description "This package provides the low-level infrastructure for
+handling the installation and removal of Debian software packages.")
+ (license license:gpl2+)))
+
+(define-public reprepro
+ (package
+ (name "reprepro")
+ (version "5.3.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/brlink/reprepro.git/")
+ (commit (string-append name "-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1kn7m5rxay6q2c4vgjgm4407xx2r46skkkb6rn33m6dqk1xfkqnh"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; testtool not found
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (if tests?
+ (with-directory-excursion "tests"
+ (invoke (which "sh") "test.sh"))
+ #t)))
+ (add-after 'install 'install-completions
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bash (string-append out "/etc/bash_completion.d/"))
+ (zsh (string-append out "/share/zsh/site-fucnctions/")))
+ (mkdir-p bash)
+ (mkdir-p zsh)
+ (copy-file "docs/reprepro.bash_completion"
+ (string-append bash "reprepro"))
+ (copy-file "docs/reprepro.zsh_completion"
+ (string-append zsh "_reprepro"))
+ #t))))))
+ (inputs
+ `(("bdb" ,bdb)
+ ("bzip2" ,bzip2)
+ ("gpgme" ,gpgme)
+ ("libarchive" ,libarchive)
+ ("xz" ,xz)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (home-page "https://salsa.debian.org/brlink/reprepro")
+ (synopsis "Debian package repository producer")
+ (description "Reprepro is a tool to manage a repository of Debian packages
+(@code{.deb}, @code{.udeb}, @code{.dsc}, ...). It stores files either being
+injected manually or downloaded from some other repository (partially) mirrored
+into one pool/ hierarchy. Managed packages and files are stored in a Berkeley
+DB, so no database server is needed. Checking signatures of mirrored
+repositories and creating signatures of the generated Package indices is
+supported.")
+ (license license:gpl2)))
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index c361e5c265..3aa3cf3e8d 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -317,7 +317,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(package
(name "bind")
;; When updating, check whether isc-dhcp's bundled copy should be as well.
- (version "9.16.8")
+ (version "9.16.9")
(source (origin
(method url-fetch)
(uri (string-append
@@ -325,7 +325,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
"/bind-" version ".tar.xz"))
(sha256
(base32
- "0ccdbqmpvnxlbrxjsx2w8ir4xh961svzcw7n87n8dglj6rb9r6wy"))))
+ "0nja60jxb8d2m5fi6xd55xjpfkzmxhjsmbxqphy6x91qsz295cmw"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index cdd58ffa42..840e596e30 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -140,7 +140,7 @@ of categories with some of the activities available in that category.
(define-public gcompris-qt
(package
(name "gcompris-qt")
- (version "0.98")
+ (version "1.0")
(source
(origin
(method url-fetch)
@@ -148,22 +148,19 @@ of categories with some of the activities available in that category.
"https://gcompris.net/download/qt/src/gcompris-qt-"
version ".tar.xz"))
(sha256
- (base32 "1jmjykn0lpk0v6hs2flmch8v4da5bgxl891nav7szxw9l7aqnf4y"))))
+ (base32 "08dw1q0h4qz2q0ksa5pbmb9v60hr1zv9skx6z8dlq9b1i7harnds"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'disable-failing-test
- (lambda _
- (substitute* "tests/core/CMakeLists.txt"
- (("DownloadManagerTest\\.cpp") "#"))
- #t))
(add-before 'check 'start-xorg-server
(lambda* (#:key inputs #:allow-other-keys)
;; The test suite requires a running X server.
(system (string-append (assoc-ref inputs "xorg-server")
"/bin/Xvfb :1 &"))
(setenv "DISPLAY" ":1")
+ ;; The test suite wants to write to /homeless-shelter
+ (setenv "HOME" (getcwd))
#t))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -192,7 +189,7 @@ of categories with some of the activities available in that category.
("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("openssl" ,openssl)
- ("python-2" ,python-2)
+ ("python" ,python-wrapper)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
@@ -217,7 +214,8 @@ Currently available boards include:
@item reading practice
@item small games (memory games, jigsaw puzzles, ...)
@end enumerate\n")
- (license license:gpl3+)))
+ (license (list license:silofl1.1 ; bundled fonts
+ license:gpl3+))))
(define-public tipp10
(package
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 5f49c64bb7..907ff200e0 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -85,6 +85,7 @@
;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
+;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -10357,6 +10358,31 @@ Flx has support for ido (interactively do things) through flx-ido.")
known loosely as deftheme. Many mode-specific customizations are included.")
(license license:gpl3+)))
+(define-public emacs-dart-mode
+ (package
+ (name "emacs-dart-mode")
+ (version "1.0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bradyt/dart-mode")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qmdlwjmmqyyb65sqvfpygifai5m0llc815vp0jqwp8ldd8ls172"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/bradyt/dart-mode")
+ (synopsis "Emacs mode for the Dart programming language")
+ (description
+ "Dart mode is an Emacs major mode for editing Dart files. It provides
+basic syntax highlighting and indentation.")
+ (license license:gpl3+)))
+
(define-public emacs-danneskjold-theme
(let* ((commit "8733d2fe8743e8a01826ea6d4430ef376c727e57")
(revision "1"))
@@ -10602,6 +10628,28 @@ provides functions to convert hash tables from and to alists and plists.")
you to deal with multiple log levels.")
(license license:gpl3+)))
+(define-public emacs-gn-mode
+ (package
+ (name "emacs-gn-mode")
+ (version "0.4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lashtear/gn-mode")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dz5kgzbgsssr38z2kg6m915cvfys42ag1k42bsra3la2pixywfx"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/lashtear/gn-mode")
+ (synopsis "Emacs major mode for editing GN (ninja generator) config files")
+ (description
+ "GN mode is a major mode for editing @acronym{GN,Ninja Generator} config
+files in Emacs. Files of this type (e.g., @file{BUILD.gn} or @file{*.gni})
+are common in Chromium-derived projects.")
+ (license license:bsd-3)))
+
(define-public emacs-gntp
(package
(name "emacs-gntp")
@@ -14111,15 +14159,14 @@ Anzu.zim.")
(define-public emacs-ascii-art-to-unicode
(package
(name "emacs-ascii-art-to-unicode")
- (version "1.12")
+ (version "1.13")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/ascii-art-to-unicode-"
version ".el"))
(sha256
- (base32
- "1w9h2lyriafxj71r79774gh822cz8mry3gdfzyj6ym6v9mvqypna"))))
+ (base32 "1c0jva3amhl9c5xc5yzdpi58c8m1djym4ccj31z6wmakq7npy07p"))))
(build-system emacs-build-system)
(home-page "https://elpa.gnu.org/packages/ascii-art-to-unicode.html")
(synopsis "ASCII to Unicode art converter for Emacs")
@@ -19796,7 +19843,7 @@ too ambiguous and navigation in the result buffer.")
(home-page "https://github.com/sebastiencs/frame-local")
(synopsis "Access variables local to an Emacs frame")
(description
- "This packages allows setting and accessing variables local to
+ "This package allows setting and accessing variables local to
an Emacs frame. Note that the variables created with this package do
not have any relation with variables defined by @code{defvar},
@code{defconst}, etc.")
@@ -22299,7 +22346,7 @@ and article extracts for Wikipedia.")
(define-public emacs-webfeeder
(package
(name "emacs-webfeeder")
- (version "1.1.0")
+ (version "1.1.1")
(source
(origin
(method url-fetch)
@@ -22309,7 +22356,7 @@ and article extracts for Wikipedia.")
".tar"))
(sha256
(base32
- "09wz6v58xc86hdnz6g54ckaxkm6844yyk2ffbxh4s5sdvgqrzdd8"))))
+ "09caj12hfdfhlbcsmjyhw728w1f7yq13hdslh793yvfqv83ipvc4"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/Ambrevar/emacs-webfeeder")
(synopsis "Build RSS and Atom webfeeds from HTML files")
@@ -23955,14 +24002,14 @@ interface.")
(define-public emacs-ivy-posframe
(package
(name "emacs-ivy-posframe")
- (version "0.5.2")
+ (version "0.5.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"ivy-posframe-" version ".el"))
(sha256
- (base32 "01zc2yj7g4lfz7qblx7k6sg54v0h4w0frnnmsf92lwypfijd2lsj"))))
+ (base32 "03ydfb155p5lak7nw4s79ab9zadwsjw1zggzwxgnlydsqdqbr6l6"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-ivy" ,emacs-ivy)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 3da11e3fed..558541dd5a 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -9,7 +9,7 @@
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018, 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
-;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Tim Stahel <swedneck@swedneck.xyz>
;;; Copyright © 2019 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
@@ -74,6 +74,7 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
+ #:use-module (gnu packages geo)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl)
@@ -1076,18 +1077,29 @@ the 'showing the effect of'-style of operation.")
(define-public volk
(package
(name "volk")
- (version "2.3.0")
+ (version "2.4.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://www.libvolk.org/releases/volk-"
- version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gnuradio/volk")
+ (commit (string-append "v" version))
+ (recursive? #t))) ; for cpu_features git submodule
+ (file-name (git-file-name name version))
(sha256
- (base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3"))))
+ (base32 "14y0988r5qi1h3yvkivx5ihccn8r15910lq30r8iy71ih190r5m9"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'install 'remove-static-libraries
+ ;; Remove libcpu_features.a (and any others that might appear).
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib")))
+ (for-each delete-file (find-files lib "\\.a$"
+ #:fail-on-error? #t))
+ #t)))
(add-after 'install 'wrap-pythonpath
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -2836,3 +2848,39 @@ GUI.")
provides a full-fledged procedural, interactive programming language designed
to describe data structures and to operate on them.")
(license license:gpl3+))))
+
+(define-public pcb2gcode
+ (package
+ (name "pcb2gcode")
+ (version "2.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pcb2gcode/pcb2gcode")
+ (commit (string-append "v" version))
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0nzglcyh6ban27cc73j4l7w7r9k38qivq0jz8iwnci02pfalw4ry"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("boost" ,boost)
+ ("geos" ,geos)
+ ("gerbv" ,gerbv)
+ ("glibmm" ,glibmm)
+ ("gtkmm" ,gtkmm-2)
+ ("librsvg" ,librsvg)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/pcb2gcode/pcb2gcode")
+ (synopsis "Generate G-code for milling PCBs")
+ (description "pcb2gcode is a command-line program for isolation routing
+and drilling of PCBs. It takes Gerber files as input and outputs G-code files
+for the milling of PCBs. It also includes an autoleveller for the automatic
+dynamic calibration of the milling depth.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 8940b04ca3..c37f5c28a6 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -711,17 +711,17 @@ for use at smaller text sizes")))
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
- (version "13.0.03")
+ (version "13.0.04")
(source
(origin
(method url-fetch)
(uri (list
- (string-append "http://unifoundry.com/pub/unifont/unifont-"
+ (string-append "https://unifoundry.com/pub/unifont/unifont-"
version "/unifont-" version ".tar.gz")
(string-append "mirror://gnu/unifont/unifont-"
version "/unifont-" version ".tar.gz")))
(sha256
- (base32 "04l2sbg6il78qsj3jxqfbz5k1xzihvw8vdlckgkp4zfr0nh2q7h7"))))
+ (base32 "064ilpbnz62cwmpajszs2b08x2zg7yh9whlaiqhjzi7bir3im94j"))))
(build-system gnu-build-system)
(outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4dfd65040a..d01d4de33a 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -689,7 +689,7 @@ card, or paper tape, or Morse codes), caesar & rot13 (ciphers and deciphers
the input), factor (factorizes a number), number (translates numbers into
text), pig (translates from English to Pig Latin), pom (should print the
Moon's phase), primes (generates primes), rain & worms (plays an screen-saver
-in terminal), random (prints randomly choosen lines from files, or returns a
+in terminal), random (prints randomly chosen lines from files, or returns a
random exit-code), and wtf (explains what do some acronyms mean).
Board: backgammon (lead the men out of board faster than the friend do),
diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm
index 395ad4be7a..5908ef4b66 100644
--- a/gnu/packages/geo.scm
+++ b/gnu/packages/geo.scm
@@ -788,14 +788,14 @@ utilities for data translation and processing.")
(define-public postgis
(package
(name "postgis")
- (version "3.0.2")
+ (version "3.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://download.osgeo.org/postgis/source/postgis-"
version ".tar.gz"))
(sha256
(base32
- "1jmji8i2wjabkrzqil683lypnmimigdmn64a10j3kj3kzlfn98d3"))))
+ "05s8cx1rlysiq7dd44kf7cid0la61a4p895j9g95bvfb8v8dpzh7"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 20182a4ff9..05499bc220 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4270,7 +4270,7 @@ passwords in the GNOME keyring.")
`(("graphviz" ,graphviz)))
(propagated-inputs
`(("glib" ,glib))) ; required by libvala-0.40.pc
- (home-page "https://live.gnome.org/Vala/")
+ (home-page "https://wiki.gnome.org/Projects/Vala/")
(synopsis "Compiler for the GObject type system")
(description
"Vala is a programming language that aims to bring modern programming
@@ -4282,7 +4282,7 @@ libraries written in C.")
(define-public vala-0.50
(package
(inherit vala)
- (version "0.50.1")
+ (version "0.50.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/vala/"
@@ -4290,7 +4290,7 @@ libraries written in C.")
"vala-" version ".tar.xz"))
(sha256
(base32
- "0v4g2gvn7x7cl33h8sj1y2xyyskw5ayaj4jm2jrd3my3r439z3cm"))))))
+ "1nnf0x6vk0a9p2y6z7jwjfvmlxh3qhj581v381r0y1sxsv35s39c"))))))
(define-public vte
(package
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index c769252ab9..a8ea94d008 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -326,52 +326,6 @@ libskba (working with X.509 certificates and CMS data).")
(properties '((ftp-server . "ftp.gnupg.org")
(ftp-directory . "/gcrypt/gnupg")))))
-(define-public gnupg-2.0
- (package (inherit gnupg)
- (version "2.0.30")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
- ".tar.bz2"))
- (sha256
- (base32
- "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3"))))
- (native-inputs '())
- (inputs
- `(("adns" ,adns)
- ("bzip2" ,bzip2)
- ("curl" ,curl)
- ("libassuan" ,libassuan)
- ("libgcrypt" ,libgcrypt)
- ("libgpg-error" ,libgpg-error)
- ("libksba" ,libksba)
- ("pth" ,pth)
- ("openldap" ,openldap)
- ("zlib" ,zlib)
- ("readline" ,readline)))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-config-files
- (lambda _
- (substitute* "tests/openpgp/Makefile.in"
- (("/bin/sh") (which "sh")))
- #t))
- (add-after 'install 'rename-v2-commands
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Upstream suggests removing the trailing '2' from command names:
- ;; <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22883#58>.
- (let ((out (assoc-ref outputs "out")))
- (with-directory-excursion (string-append out "/bin")
- (rename-file "gpgv2" "gpgv")
- (rename-file "gpg2" "gpg")
-
- ;; Keep the old name around to ease transition.
- (symlink "gpgv" "gpgv2")
- (symlink "gpg" "gpg2")
- #t)))))))
- (properties `((superseded . ,gnupg)))))
-
(define-public gnupg-1
(package (inherit gnupg)
(version "1.4.23")
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index af50119d75..3625755500 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -713,6 +714,10 @@ model to base your own plug-in on, here it is.")
(("'GST_PLUGIN_SYSTEM_PATH_1_0', ''")
(string-append "'GST_PLUGIN_SYSTEM_PATH_1_0', '"
gst-plugins-good "/lib/gstreamer-1.0'"))
+
+ ;; FIXME: Why is this failing.
+ ((".*elements/dash_mpd\\.c.*") "")
+
;; These tests are flaky and occasionally time out:
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/932
((".*elements/curlhttpsrc\\.c.*") "")
@@ -746,6 +751,7 @@ model to base your own plug-in on, here it is.")
("libgudev" ,libgudev)
("libkate" ,libkate)
("libmodplug" ,libmodplug)
+ ("libnice" ,libnice)
("librsvg" ,librsvg)
("libsndfile" ,libsndfile)
("libsrtp" ,libsrtp)
@@ -770,6 +776,7 @@ model to base your own plug-in on, here it is.")
;; GStreamer is not yet compatible with srt > 1.4.1.
("srt" ,srt-1.4.1)
("x265" ,x265)
+ ("webrtc-audio-processing" ,webrtc-audio-processing)
("wayland" ,wayland)))
(home-page "https://gstreamer.freedesktop.org/")
(synopsis "Plugins for the GStreamer multimedia library")
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 6a2384c79e..3c930722b5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1509,7 +1509,7 @@ write GNOME applications.")
(define-public perl-cairo
(package
(name "perl-cairo")
- (version "1.107")
+ (version "1.108")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1517,7 +1517,7 @@ write GNOME applications.")
version ".tar.gz"))
(sha256
(base32
- "0sg1gf1f2pjq7pji0zsv4rbi3bzpsx82z98k7yqxafzrvlkf27ay"))))
+ "1nh5iya63q6j2w0cdi24x2ygpi8k8wwccnbh8cisnx8nqmywnhk0"))))
(build-system perl-build-system)
(native-inputs
`(("perl-extutils-depends" ,perl-extutils-depends)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 6d93d7432f..11694e06f9 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -686,17 +686,17 @@ Guile's foreign function interface.")
(define-public guile-bytestructures
(package
(name "guile-bytestructures")
- (version "1.0.7")
+ (version "1.0.9")
(home-page "https://github.com/TaylanUB/scheme-bytestructures")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
- (commit (string-append "v" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0q0habjiy3h9cigb7q1br9kz6z212dn2ab31f6dgd3rrmsfn5rvb"))))
+ "0r59sqrvwbsknw21bf44bppi6wdhd2rl2v5dw9i2vij3v8w7pgkm"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 1339536954..c6045279c0 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -339,14 +339,14 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
- (version "8.20201103")
+ (version "8.20201116")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
- (base32 "1z9ikpsz3by48yfw87qav5dy7j4k9ky4a7nqnasl15kdm3lav9pl"))))
+ (base32 "0xv7n9f6l90l4k964675v0lgs22gcy97ic86mbfb40rl0fk0jalr"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
@@ -487,6 +487,7 @@ to @code{cabal repl}).")
("ghc-split" ,ghc-split)
("ghc-stm-chans" ,ghc-stm-chans)
("ghc-tagsoup" ,ghc-tagsoup)
+ ("ghc-torrent" ,ghc-torrent)
("ghc-unix-compat" ,ghc-unix-compat)
("ghc-unordered-containers" ,ghc-unordered-containers)
("ghc-utf8-string" ,ghc-utf8-string)
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 19eabd949b..d340df4a08 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -997,6 +997,32 @@ Users wishing to have an improved Prelude can use BasicPrelude. Developers
wishing to create a new prelude should use CorePrelude.")
(license license:expat)))
+(define-public ghc-bencode
+ (package
+ (name "ghc-bencode")
+ (version "0.6.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/bencode/bencode-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0znv0y3b3zm5jvhlvj5f5s7y93db67j9yd59w1bnrw2pqv30gqaq"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-transformers-compat" ,ghc-transformers-compat)))
+ (native-inputs
+ `(("ghc-hspec" ,ghc-hspec)
+ ("ghc-quickcheck" ,ghc-quickcheck)))
+ (home-page "https://hackage.haskell.org/package/bencode")
+ (synopsis "Parsers and printers for bencoded data")
+ (description
+ "This library provides parsers and printers for bencoded data. Bencode
+is the encoding used by the peer-to-peer file sharing system BitTorrent for
+storing and transmitting loosely structured data.")
+ (license license:bsd-3)))
+
(define-public ghc-bifunctors
(package
(name "ghc-bifunctors")
@@ -4414,7 +4440,7 @@ file contents, and more.")
(define-public ghc-filepath-bytestring
(package
(name "ghc-filepath-bytestring")
- (version "1.4.2.1.1")
+ (version "1.4.2.1.6")
(source
(origin
(method url-fetch)
@@ -4423,7 +4449,7 @@ file contents, and more.")
"filepath-bytestring-" version ".tar.gz"))
(sha256
(base32
- "06shdskjj391hb9295slm9gg2rbn5fdq5v6fg0mgn3yl5dv8q5dx"))))
+ "11xrrzdkm5i96dazbz0gi1qp8nnj2lwbnxzwy7f4cnahskz4f4g7"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)))
@@ -9167,7 +9193,7 @@ require aeson
(home-page "https://hackage.haskell.org/package/text-short")
(synopsis "Memory-efficient representation of Unicode text strings")
(description "This package provides the @code{ShortText} type which
-is suitable for keeping many short strings in memory. This is similiar
+is suitable for keeping many short strings in memory. This is similar
to how @code{ShortByteString} relates to @code{ByteString}.
The main difference between @code{Text} and @code{ShortText} is that
@@ -13797,6 +13823,28 @@ from a shell. The @code{tldr} pages are a community effort to simplify the
man pages with practical examples.")
(license license:bsd-3)))
+(define-public ghc-torrent
+ (package
+ (name "ghc-torrent")
+ (version "10000.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://hackage.haskell.org/package/torrent/torrent-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0m7s0q7f8c7glxzqhf2j86ch5xhk6jnzwwsa4mkywag22119c290"))))
+ (build-system haskell-build-system)
+ (inputs
+ `(("ghc-bencode" ,ghc-bencode)
+ ("ghc-syb" ,ghc-syb)))
+ (home-page "https://hackage.haskell.org/package/torrent")
+ (synopsis "BitTorrent file parser and generator")
+ (description "This library provides support for parsing and generating
+BitTorrent files.")
+ (license license:bsd-3)))
+
(define-public ghc-transformers
(package
(name "ghc-transformers")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index db0cb855bb..f379ad87c1 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -26,6 +26,7 @@
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -91,6 +92,7 @@
#:use-module (guix build-system copy)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system scons)
#:use-module (guix deprecation)
#:use-module (srfi srfi-1))
@@ -1792,33 +1794,26 @@ parsing, viewing, modifying, and saving this metadata.")
(define-public flameshot
(package
(name "flameshot")
- (version "0.5.1")
+ (version "0.8.5")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/lupoDharkael/flameshot")
+ (url "https://github.com/flameshot-org/flameshot")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "13h77np93r796jf289v4r687cmnpqkyqs34dm9gif4akaig74ky0"))))
- (build-system gnu-build-system)
+ "1z77igs60lz106vsf6wsayxjafxm3llf2lm4dpvsqyyrxybfq191"))))
+ (build-system qt-build-system)
(native-inputs
`(("qttools" ,qttools)))
(inputs
- `(("qtbase" ,qtbase)))
+ `(("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)))
(arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "qmake"
- "CONFIG+=packaging"
- (string-append "BASEDIR=" (assoc-ref outputs "out"))
- "PREFIX=/"))))))
- (home-page "https://github.com/lupoDharkael/flameshot")
+ `(#:tests? #f)) ;no tests
+ (home-page "https://github.com/flameshot-org/flameshot")
(synopsis "Powerful yet simple to use screenshot software")
(description "Flameshot is a screenshot program.
Features:
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 7c07a6d008..ceeb96d8ae 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -352,7 +352,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernel. That is, the most recently released major
;; version.
-(define-public linux-libre-5.9-version "5.9.10")
+(define-public linux-libre-5.9-version "5.9.11")
(define deblob-scripts-5.9
(linux-libre-deblob-scripts
linux-libre-5.9-version
@@ -360,7 +360,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0yb04a4j2wq3mwvks3cj7kcm2pscmfs29lrz3falkxpbvjxbbgq2")))
(define-public linux-libre-5.9-pristine-source
(let ((version linux-libre-5.9-version)
- (hash (base32 "0c7hcqn1ld0axlipzpwmjr1jwizrhz5w6bdfbk9npbirx7rb54gm")))
+ (hash (base32 "0q6jlnigyjjnnxw6l724zv8acgs95s3pafabz4l9jrhhlijhmcjy")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.9)))
@@ -368,7 +368,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-5.4-version "5.4.79")
+(define-public linux-libre-5.4-version "5.4.80")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
linux-libre-5.4-version
@@ -376,12 +376,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "167zcfkw62pm6nv1xdvvhxw0ca724sywcywnv3z00189f8f8p3vg")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
- (hash (base32 "09ffj66wlp27vx799lnixq4zdkin3y4pqaw4lx2a6rpz13xr3455")))
+ (hash (base32 "1iv4rsc9mr13xqzayzwz8mpdrdpnc425mn1izz9hylrw3xf45nj9")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
-(define-public linux-libre-4.19-version "4.19.159")
+(define-public linux-libre-4.19-version "4.19.160")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
linux-libre-4.19-version
@@ -389,12 +389,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
- (hash (base32 "195hlvr9zsa2km80rk71na1gl0222r2mk76rsqx0cxpgg7dhpjv0")))
+ (hash (base32 "118maapizgqgrgawnw7xmbcz26c61g5d012jzbd8l7n6z4354d0q")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
-(define-public linux-libre-4.14-version "4.14.208")
+(define-public linux-libre-4.14-version "4.14.209")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
linux-libre-4.14-version
@@ -402,12 +402,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
- (hash (base32 "0vzn5kprjlgpgnjr1drjq97x9xbyfgigpgs42xsfw61h2qjy3b1q")))
+ (hash (base32 "171b31c4rz9sn95s4s4yqchd4s46kivmvch78z0jr5zir1f4c0nb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
-(define-public linux-libre-4.9-version "4.9.245")
+(define-public linux-libre-4.9-version "4.9.246")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
linux-libre-4.9-version
@@ -415,12 +415,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
- (hash (base32 "1vxsd3g96vbykrmfnj9qali0p868h678qzcqvf4yrhya47k6pnnb")))
+ (hash (base32 "1xd9vgc4yj2vrr5r76cy3fp9a1fc3086lj5aws68wf1dsz3ndqj9")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
-(define-public linux-libre-4.4-version "4.4.245")
+(define-public linux-libre-4.4-version "4.4.246")
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
linux-libre-4.4-version
@@ -428,7 +428,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
- (hash (base32 "0g1cnis8496kp1ln922gxa7skfr096mdvv89la6676yw7dd4lhyi")))
+ (hash (base32 "15xd1dqw53kwqvsa71nr1ymp0jp22pkl4h2yks4hqbd132zxw2wy")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@@ -3215,7 +3215,7 @@ from the module-init-tools project.")
(define-public earlyoom
(package
(name "earlyoom")
- (version "1.3.1")
+ (version "1.6.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3224,23 +3224,23 @@ from the module-init-tools project.")
(file-name (git-file-name name version))
(sha256
(base32
- "06sd3jpkdrwqbphsf8jrgs5rxfi7j3xjmygjjvj4xjk4gncz7r2i"))))
+ "16iyn51xlrsbshc7p5xl2338yyfzknaqc538sa7mamgccqwgyvvq"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (delete 'configure)
- (add-before 'check 'set-home
- (lambda _
- (setenv "HOME" (getcwd))
- #t))
- (add-after 'build 'install-contribs
- ;; Install what seems useful from the contrib directory.
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (contrib (string-append
- out "/share/earlyoom/contrib")))
- (install-file "contrib/notify_all_users.py" contrib)
- #t))))
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'check 'set-go-HOME
+ (lambda _
+ (setenv "HOME" (getcwd))
+ #t))
+ (add-before 'check 'disable-failing-test
+ (lambda _
+ ;; This test relies on writing to /proc/%d/oom_score_adj.
+ (substitute* "testsuite_cli_test.go"
+ (("TestI" match)
+ (string-append "skipped" match)))
+ #t)))
#:make-flags (let* ((prefix (assoc-ref %outputs "out")))
(list ,(string-append "CC=" (cc-for-target))
(string-append "VERSION=v" ,version)
@@ -5980,14 +5980,14 @@ running boot option, and more.")
(define-public sysstat
(package
(name "sysstat")
- (version "12.4.0")
- (source (origin
- (method url-fetch)
- (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
- "sysstat-" version ".tar.xz"))
- (sha256
- (base32
- "05idnvkhvzaynj9awx7q54x1v42jblzrxq0fn5zd1v4mjwrnqmbq"))))
+ (version "12.4.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://pagesperso-orange.fr/sebastien.godard/"
+ "sysstat-" version ".tar.xz"))
+ (sha256
+ (base32 "02yf2c9n56c3ic72r4p4kb99zjxr8fldvsnmcy7s262izx78vbr4"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test suite.
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index a4e9739c94..3981929f20 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -1121,6 +1121,40 @@ to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).")
(define-public ecl-cl-yacc
(sbcl-package->ecl-package sbcl-cl-yacc))
+(define-public sbcl-eager-future2
+ (let ((commit "54df8effd9d9eccac917509590286b5ac5f9cb30"))
+ (package
+ (name "sbcl-eager-future2")
+ (version (git-version "0.0.0" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.common-lisp.net/vsedach/eager-future2.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qs1bv3m0ki8l5czhsflxcryh22r9d9g9a3a3b0cr0pl954q5rld"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
+ (synopsis "Futures promises synchronization mechanism for Common Lisp")
+ (description
+ "Eager Future2 is a Common Lisp library that provides composable
+concurrency primitives that unify parallel and lazy evaluation, are integrated
+with the Common Lisp condition system, and have automatic resource
+management.")
+ (home-page "https://gitlab.common-lisp.net/vsedach/eager-future2")
+ (license license:lgpl3+))))
+
+(define-public cl-eager-future2
+ (sbcl-package->cl-source-package sbcl-eager-future2))
+
+(define-public ecl-eager-future2
+ (sbcl-package->ecl-package sbcl-eager-future2))
+
(define-public sbcl-jpl-util
(let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62"))
(package
@@ -1197,6 +1231,62 @@ several blockable channels.)")
(define-public ecl-jpl-queues
(sbcl-package->ecl-package sbcl-jpl-queues))
+(define-public sbcl-calispel
+ (let ((commit "e9f2f9c1af97f4d7bb4c8ac25fb2a8f3e8fada7a"))
+ (package
+ (name "sbcl-calispel")
+ (version (git-version "0.1" "1" commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ ;; This fork replaces the dependency on the obsolete
+ ;; eager-future with eager-future2.
+ (url "https://github.com/hawkir/calispel")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "08bmf3pi7n5hadpmqqkg65cxcj6kbvm997wcs1f53ml1nb79d9z8"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("jpl-queues" ,sbcl-jpl-queues)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)))
+ (native-inputs
+ `(("eager-future2" ,sbcl-eager-future2)))
+ (synopsis "Thread-safe message-passing channels in Common Lisp")
+ (description
+ "Calispel is a Common Lisp library for thread-safe message-passing
+channels, in the style of the occam programming language, also known as
+communicating sequential processes (CSP). See
+@url{https://en.wikipedia.org/wiki/Communicating_sequential_processes}.
+
+Calispel channels let one thread communicate with another, facilitating
+unidirectional communication of any Lisp object. Channels may be unbuffered,
+where a sender waits for a receiver (or vice versa) before either operation can
+continue, or channels may be buffered with flexible policy options.
+
+Because sending and receiving on a channel may block, either operation can time
+out after a specified amount of time.
+
+A syntax for alternation is provided (like @code{ALT} in occam, or Unix
+@code{select()}): given a sequence of operations, any or all of which may
+block, alternation selects the first operation that doesn't block and executes
+associated code. Alternation can also time out, executing an \"otherwise\"
+clause if no operation becomes available within a set amount of time.
+
+Calispel is a message-passing library, and as such leaves the role of
+threading abstractions and utilities left to be filled by complementary
+libraries such as Bordeaux-Threads and Eager Future.")
+ (home-page "https://www.thoughtcrime.us/software/jpl-queues/")
+ (license license:isc))))
+
+(define-public cl-calispel
+ (sbcl-package->cl-source-package sbcl-calispel))
+
+(define-public ecl-calispel
+ (sbcl-package->ecl-package sbcl-calispel))
+
(define-public sbcl-eos
(let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
(revision "2"))
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 34b522c99b..f1d0922ef2 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -65,6 +65,7 @@
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ocaml)
@@ -869,6 +870,77 @@ data analysis.")
(base32
"08zbzi8yx5wdlxfx9jap61vg1malc9ajf576w7a0liv6jvvrxlpj")))))))
+(define-public python-pynndescent
+ (package
+ (name "python-pynndescent")
+ (version "0.4.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pynndescent" version))
+ (sha256
+ (base32 "0li1fclif50v6xrq7wh3lif9vv5jpj7xhrb0z6g89wwjnp9b9833"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-nose" ,python-nose)))
+ (propagated-inputs
+ `(("python-joblib" ,python-joblib)
+ ("python-llvmlite" ,python-llvmlite)
+ ("python-numba" ,python-numba)
+ ("python-scikit-learn" ,python-scikit-learn)
+ ("python-scipy" ,python-scipy)))
+ (home-page "https://github.com/lmcinnes/pynndescent")
+ (synopsis "Nearest neighbor descent for approximate nearest neighbors")
+ (description
+ "PyNNDescent provides a Python implementation of Nearest Neighbor Descent
+for k-neighbor-graph construction and approximate nearest neighbor search.")
+ (license license:bsd-2)))
+
+(define-public python-opentsne
+ (package
+ (name "python-opentsne")
+ (version "0.4.4")
+ (source
+ (origin
+ ;; No tests in the PyPI tarball.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pavlin-policar/openTSNE")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32 "08wamsssmyf6511cbmglm67dp48i6xazs89m1cskdk219v90bc76"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; Benchmarks require the 'macosko2015' data files.
+ (add-after 'unpack 'delete-benchmark
+ (lambda _
+ (delete-file-recursively "benchmarks")
+ #t))
+ ;; Numba needs a writable dir to cache functions.
+ (add-before 'check 'set-numba-cache-dir
+ (lambda _
+ (setenv "NUMBA_CACHE_DIR" "/tmp")
+ #t)))))
+ (native-inputs
+ `(("python-cython" ,python-cython)))
+ (inputs
+ `(("fftw" ,fftw)))
+ (propagated-inputs
+ `(("python-numpy" ,python-numpy)
+ ("python-pynndescent" ,python-pynndescent)
+ ("python-scikit-learn" ,python-scikit-learn)
+ ("python-scipy" ,python-scipy)))
+ (home-page "https://github.com/pavlin-policar/openTSNE")
+ (synopsis "Extensible, parallel implementations of t-SNE")
+ (description
+ "This is a modular Python implementation of t-Distributed Stochastic
+Neighbor Embedding (t-SNE), a popular dimensionality-reduction algorithm for
+visualizing high-dimensional data sets.")
+ (license license:bsd-3)))
+
(define-public python-scikit-rebate
(package
(name "python-scikit-rebate")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 5a10194a4a..84b1f1c6d3 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -444,7 +444,7 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.14.7")
+ (version "2.0.2")
(source (origin
(method url-fetch)
(uri (list
@@ -454,7 +454,7 @@ aliasing facilities to work just as they would on normal mail.")
version ".tar.gz")))
(sha256
(base32
- "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4"))
+ "1j0i2jmlk5sc78af9flj3ynj0iiwa8biw7jgf12qm5lppsx1h4j7"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
@@ -1228,14 +1228,14 @@ invoking @command{notifymuch} from the post-new hook.")
(define-public notmuch
(package
(name "notmuch")
- (version "0.31.1")
+ (version "0.31.2")
(source (origin
(method url-fetch)
(uri (string-append "https://notmuchmail.org/releases/notmuch-"
version ".tar.xz"))
(sha256
(base32
- "0pmvwynd4f4kr38agd5m1ml20lq854knc9da7yiqfi776j8fg2rj"))))
+ "1vzv9imd0ba51y5zw8h358wikm1fh52rlvvyzvp98w330hzbcmhl"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -2604,7 +2604,7 @@ converts them to maildir format directories.")
(define-public mblaze
(package
(name "mblaze")
- (version "0.2")
+ (version "1.0")
(source
(origin
(method git-fetch)
@@ -2613,7 +2613,7 @@ converts them to maildir format directories.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0p97zfl35ilrnrx9ynj82igsb698m9klikfaicw5jhjpf6qp2n3y"))))
+ (base32 "0hxy3mjjv4hg856sl1r15fdmqaw4s9c26b3lidsd5x0kpqy601ai"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)))
diff --git a/gnu/packages/mercury.scm b/gnu/packages/mercury.scm
index bab8909862..5a2c85a79b 100644
--- a/gnu/packages/mercury.scm
+++ b/gnu/packages/mercury.scm
@@ -56,7 +56,7 @@
(define-public mercury-minimal
(package
(name "mercury-minimal")
- (version "20.06")
+ (version "20.06.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -64,7 +64,7 @@
version ".tar.gz"))
(sha256
(base32
- "1gkr9w8lsdzqykqwd3f1a1phsqv090648i14ilhv8jdg85frdimr"))))
+ "07qwkk871yxd4q1sw5xv26g8jrpvnpprmzvfd7zg7i142kl3l2gg"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@@ -173,7 +173,7 @@ separate compilation, and numerous optimization/time trade-offs.")
(define-public mercury
(package (inherit mercury-minimal)
(name "mercury")
- (version "20.06")
+ (version "20.06.1")
(source
(origin
(method git-fetch)
@@ -185,7 +185,7 @@ separate compilation, and numerous optimization/time trade-offs.")
(file-name (git-file-name name version))
(sha256
(base32
- "1pc51r7vlqmi689rkwdkk1ka2dyk36q11dqvl339cizng6mp72h6"))))
+ "1b6rmdinw8mj6n9sc7c75kkf42gd2k254rf51x4snlrqckxj7aaz"))))
(arguments
(substitute-keyword-arguments
(package-arguments mercury-minimal)
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index 919e7f1449..0ee4b4c9ee 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -456,7 +456,7 @@ written in Go with pluggable metric collectors.")
(define-public collectd
(package
(name "collectd")
- (version "5.11.0")
+ (version "5.12.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -465,7 +465,7 @@ written in Go with pluggable metric collectors.")
".tar.bz2"))
(sha256
(base32
- "1cjxksxdqcqdccz1nbnc2fp6yy84qq361ynaq5q8bailds00mc9p"))
+ "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv"))
(patches (search-patches "collectd-5.11.0-noinstallvar.patch"))))
(build-system gnu-build-system)
(arguments
diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm
index 9035147441..2b73794409 100644
--- a/gnu/packages/mpi.scm
+++ b/gnu/packages/mpi.scm
@@ -69,6 +69,7 @@
(build-system gnu-build-system)
(outputs '("out" ;'lstopo' & co., depends on Cairo, libx11, etc.
"lib" ;small closure
+ "doc" ;400+ section 3 man pages
"debug"))
(inputs
`(("libx11" ,libx11)
@@ -114,6 +115,15 @@
(substitute* (string-append lib "/lib/pkgconfig/hwloc.pc")
(("^.*prefix=.*$")
""))
+ #t)))
+ (add-after 'install 'move-man3-pages
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Move section 3 man pages to the "doc" output.
+ (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc")))
+ (copy-recursively (string-append out "/share/man/man3")
+ (string-append doc "/share/man/man3"))
+ (delete-file-recursively (string-append out "/share/man/man3"))
#t))))))
(home-page "https://www.open-mpi.org/projects/hwloc/")
(synopsis "Abstraction of hardware architectures")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ac1290e8fd..8a84c8476a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -144,7 +144,7 @@
(define-public axel
(package
(name "axel")
- (version "2.17.9")
+ (version "2.17.10")
(source
(origin
(method url-fetch)
@@ -152,7 +152,7 @@
"releases/download/v" version "/"
"axel-" version ".tar.xz"))
(sha256
- (base32 "0m1smb9rmw9w2fcfcf0162qyffx6a1x0j612sg3fydflandlsdpi"))))
+ (base32 "0kmlqk04sgkshsll4r9w3k0rvrgz0gpk987618r50khwl484zss6"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
diff --git a/gnu/packages/patches/mupdf-fix-linkage.patch b/gnu/packages/patches/mupdf-fix-linkage.patch
new file mode 100644
index 0000000000..4ffd1c6a77
--- /dev/null
+++ b/gnu/packages/patches/mupdf-fix-linkage.patch
@@ -0,0 +1,27 @@
+From: Tobias Geerinckx-Rice <me@tobias.gr>
+Date: Tue, 24 Nov 2020 10:29:28 +0000
+Subject: [PATCH] gnu: mupdf: Fix linkage.
+
+Replace broken linkage to ‘build/shared-release/libmupdf.so’ with the
+proper ‘-L$(libdir) -lmupdf’ incantation, and fix libmupdf.so's mode.
+
+--- mupdf-1.18.0-source.org/Makefile
++++ mupdf-1.18.0-source/Makefile
+@@ -61,7 +61,7 @@
+ ifdef RANLIB
+ RANLIB_CMD = $(QUIET_RANLIB) $(RANLIB) $@
+ endif
+-LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
++LINK_CMD = $(QUIET_LINK) $(MKTGTDIR) ; $(CC) $(LDFLAGS) -o $@ $(subst $(MUPDF_LIB),-L$(libdir) -L$(OUT) -lmupdf,$^) $(LIBS)
+ TAGS_CMD = $(QUIET_TAGS) ctags -R --c-kinds=+p
+ WINDRES_CMD = $(QUIET_WINDRES) $(MKTGTDIR) ; $(WINDRES) $< $@
+ OBJCOPY_CMD = $(QUIET_OBJCOPY) $(MKTGTDIR) ; $(LD) -r -b binary -z noexecstack -o $@ $<
+@@ -364,7 +364,7 @@ install: libs apps
+ install -m 644 include/mupdf/pdf/*.h $(DESTDIR)$(incdir)/mupdf/pdf
+
+ install -d $(DESTDIR)$(libdir)
+- install -m 644 $(INSTALL_LIBS) $(DESTDIR)$(libdir)
++ install -m 755 $(INSTALL_LIBS) $(DESTDIR)$(libdir)
+
+ install -d $(DESTDIR)$(bindir)
+ install -m 755 $(TOOL_APPS) $(VIEW_APPS) $(DESTDIR)$(bindir)
diff --git a/gnu/packages/patches/mutt-store-references.patch b/gnu/packages/patches/mutt-store-references.patch
index 3b69c7b0bd..77d1680d60 100644
--- a/gnu/packages/patches/mutt-store-references.patch
+++ b/gnu/packages/patches/mutt-store-references.patch
@@ -2,15 +2,16 @@ By default 'mutt' embeds configure flags and the output of 'gcc -v',
which contains the store file name of Bash and GCC. This patch makes
sure we don't embed a reference to these in 'mutt'.
---- mutt-1.5.23/txt2c.sh 2015-06-26 22:56:56.500731643 +0200
-+++ mutt-1.5.23/txt2c.sh 2015-06-26 22:57:26.664583900 +0200
+diff --git a/txt2c.sh b/txt2c.sh
+index f634bb9..53845cf 100755
+--- a/txt2c.sh
++++ b/txt2c.sh
@@ -21,6 +21,8 @@ txt2c_fallback () {
echo ";"
}
+echo "unsigned char $1[] = \"value of '$1' not kept\";"
+exit 0
- ./txt2c test </dev/null >/dev/null 2>&1 &&
- ./txt2c "$1" ||
- txt2c_fallback "$1"
-
+ if ./txt2c test </dev/null >/dev/null 2>&1; then
+ ./txt2c "$1"
+ else
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index a1984e0695..879bc7f93f 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -19,6 +19,7 @@
;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -45,6 +46,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages audio)
@@ -54,6 +56,7 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cups)
#:use-module (gnu packages curl)
#:use-module (gnu packages djvu)
#:use-module (gnu packages fontutils)
@@ -88,6 +91,7 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tex)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@@ -218,17 +222,17 @@ please install the @code{flyer-composer-gui} package.")))
(define-public poppler-data
(package
(name "poppler-data")
- (version "0.4.9")
+ (version "0.4.10")
(source (origin
(method url-fetch)
(uri (string-append "https://poppler.freedesktop.org/poppler-data"
"-" version ".tar.gz"))
(sha256
(base32
- "04i0wgdkn5lhda8cyxd1ll4a2p41pwqrwd47n9mdpl7cx5ypx70z"))))
+ "0c3vjs3p7rjc4yfacnhd865r27czmzwcr4j2z4jldi68dvvcwbvf"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; no test suite
+ '(#:tests? #f ; no test suite
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
@@ -498,7 +502,7 @@ using the DjVuLibre library.")
(define-public zathura-pdf-mupdf
(package
(name "zathura-pdf-mupdf")
- (version "0.3.5")
+ (version "0.3.6")
(source (origin
(method url-fetch)
(uri
@@ -506,7 +510,7 @@ using the DjVuLibre library.")
"/download/zathura-pdf-mupdf-" version ".tar.xz"))
(sha256
(base32
- "1pjwsb7zwclxsvz229fl7y2saf1pv3ifwv3ay8viqxgrp9x3z9hq"))))
+ "1r3v37k9fl2rxipvacgxr36llywvy7n20a25h3ajlyk70697sa66"))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("jbig2dec" ,jbig2dec)
@@ -525,6 +529,12 @@ using the DjVuLibre library.")
"-Dlink-external=true")
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'remove-libmupdfthird.a-requirement
+ (lambda _
+ ;; Ignore a missing (apparently superfluous) static library.
+ (substitute* "meson.build"
+ ((".*mupdfthird.*") ""))
+ #t))
(add-before 'configure 'add-mujs-to-dependencies
(lambda _
;; Add mujs to the 'build_dependencies'.
@@ -683,30 +693,35 @@ extracting content or merging files.")
(define-public mupdf
(package
(name "mupdf")
- (version "1.16.1")
+ (version "1.18.0")
(source
- (origin
- (method url-fetch)
- (uri (string-append "https://mupdf.com/downloads/archive/"
- "mupdf-" version "-source.tar.xz"))
- (sha256
- (base32
- "1npmy92lkj41nnc14b4fpq7z62pminy94zsdbrczj22jpn283rvg"))
- (modules '((guix build utils)))
- (snippet
- ;; We keep lcms2 since it is different than our lcms.
- '(begin
- (for-each
- (lambda (dir)
- (delete-file-recursively (string-append "thirdparty/" dir)))
- '("freeglut" "freetype" "harfbuzz" "jbig2dec"
- "libjpeg" "mujs" "openjpeg" "zlib"))
- #t))))
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://mupdf.com/downloads/archive/"
+ "mupdf-" version "-source.tar.xz"))
+ (sha256
+ (base32 "16m5sksil22sshxy70xkslsb2qhvcqb1d95i9savnhds1xn4ybar"))
+ (patches (search-patches "mupdf-fix-linkage.patch"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled software.
+ (let* ((keep (list "lcms2")) ; different from our lcms2 package
+ (from "thirdparty")
+ (kept (string-append from "~temp")))
+ (mkdir-p kept)
+ (for-each (lambda (file) (rename-file (string-append from "/" file)
+ (string-append kept "/" file)))
+ keep)
+ (delete-file-recursively from)
+ (rename-file kept from))
+ #t))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)
("freeglut" ,freeglut)
("freetype" ,freetype)
+ ("gumbo-parser" ,gumbo-parser)
("harfbuzz" ,harfbuzz)
("jbig2dec" ,jbig2dec)
("libjpeg" ,libjpeg-turbo)
@@ -719,14 +734,19 @@ extracting content or merging files.")
(native-inputs
`(("pkg-config" ,pkg-config)))
(arguments
- '(#:tests? #f ; no check target
- #:make-flags (list "CC=gcc"
+ `(#:tests? #f ; no check target
+ #:make-flags (list "verbose=yes"
+ (string-append "CC=" ,(cc-for-target))
"XCFLAGS=-fpic"
"USE_SYSTEM_LIBS=yes"
"USE_SYSTEM_MUJS=yes"
+ "shared=yes"
+ ;; Even with the linkage patch we must fix RUNPATH.
+ (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib")
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
- (delete 'configure))))
+ (delete 'configure)))) ; no configure script
(home-page "https://mupdf.com")
(synopsis "Lightweight PDF viewer and toolkit")
(description
@@ -789,6 +809,53 @@ program capable of converting PDF into other formats.")
(license (list license:asl2.0 license:clarified-artistic))
(home-page "http://qpdf.sourceforge.net/")))
+(define-public qpdfview
+ (package
+ (name "qpdfview")
+ (version "0.4.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/qpdfview/"
+ "trunk/" version "/+download/"
+ "qpdfview-" version ".tar.gz"))
+ (sha256
+ (base32 "0v1rl126hvblajnph2hkansgi0s8vjdc5yxrm4y3faa0lxzjwr6c"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("cups" ,cups)
+ ("djvulibre" ,djvulibre)
+ ("libspectre" ,libspectre)
+ ("poppler-qt5" ,poppler-qt5)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)))
+ (arguments
+ `(#:imported-modules ((guix build qt-build-system)
+ (guix build cmake-build-system)
+ ,@%gnu-build-system-modules)
+ #:modules ((guix build utils)
+ (guix build gnu-build-system)
+ ((guix build qt-build-system) #:prefix qt:))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "qpdfview.pri"
+ (("/usr") (assoc-ref %outputs "out")))
+ (invoke "qmake" "qpdfview.pro")))
+ ;; Otherwise, the user interface will not display any icons.
+ (add-after 'install 'qt-wrap
+ (assoc-ref qt:%standard-phases 'qt-wrap)))))
+ (home-page "https://launchpad.net/qpdfview")
+ (synopsis "Tabbed document viewer")
+ (description "@command{qpdfview} is a document viewer for PDF, PS and DJVU
+files. It uses the Qt toolkit and features persistent per-file settings,
+configurable toolbars and shortcuts, continuous and multi‐page layouts,
+SyncTeX support, and rudimentary support for annotations and forms.")
+ (license license:gpl2+)))
+
(define-public xournal
(package
(name "xournal")
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 0efc253718..f23b56728a 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -208,14 +208,14 @@ colors, styles, options and details.")
(define-public asymptote
(package
(name "asymptote")
- (version "2.67")
+ (version "2.68")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asymptote/"
version "/asymptote-" version ".src.tgz"))
(sha256
- (base32 "16rdwxal27fikzfqsm2sb8ji78whpxl98rdyyp0ky2qlh55mf7la"))))
+ (base32 "1ch2bc28v0v76x9sbbn7xswvqi88plam9y4966j0kj2dn5fmms71"))))
(build-system gnu-build-system)
;; Note: The 'asy' binary retains a reference to docdir for use with its
;; "help" command in interactive mode, so adding a "doc" output is not
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index b7587230bd..a414bc6bbb 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -82,7 +83,7 @@ data in motion, or as a file format for data at rest.")
(define-public protobuf
(package
(name "protobuf")
- (version "3.12.3")
+ (version "3.14.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/google/protobuf/releases/"
@@ -90,7 +91,7 @@ data in motion, or as a file format for data at rest.")
version ".tar.gz"))
(sha256
(base32
- "0s29dj8l9j6jk04im3ivcji1x9jm42fwjmwcmli0smz0m337xyaf"))))
+ "0nan2wkkwkcx3qyx0cf5vfzjcjhr5qgh4jfx6v2lwpf5q03mmv2h"))))
(build-system gnu-build-system)
(inputs `(("zlib" ,zlib)))
(outputs (list "out"
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 101c8fb640..99903ef247 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -439,6 +439,32 @@ doing practical, real world data analysis in Python.")
written in C.")
(license license:bsd-2)))
+(define-public python-baycomp
+ (package
+ (name "python-baycomp")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "baycomp" version))
+ (sha256
+ (base32 "1c1354a7b3g8slychjgyjxqdm8z40z9kviyl9n4g9kfpdg0p4d64"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-matplotlib" ,python-matplotlib)
+ ("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)))
+ (home-page "https://github.com/janezd/baycomp")
+ (synopsis "Library for comparison of Bayesian classifiers")
+ (description
+ "Baycomp is a library for Bayesian comparison of classifiers. Functions
+in the library compare two classifiers on one or on multiple data sets. They
+compute three probabilities: the probability that the first classifier has
+higher scores than the second, the probability that differences are within the
+region of practical equivalence (rope), or that the second classifier has
+higher scores.")
+ (license license:expat)))
+
(define-public python-xarray
(package
(name "python-xarray")
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 16249680f2..dfc5d1dcf3 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -1316,7 +1316,7 @@ another XPath engine to find the matching elements in an XML or HTML document.")
(define-public python-databricks-cli
(package
(name "python-databricks-cli")
- (version "0.14.0")
+ (version "0.14.1")
(home-page "https://github.com/databricks/databricks-cli")
(source (origin
(method git-fetch)
@@ -1324,7 +1324,7 @@ another XPath engine to find the matching elements in an XML or HTML document.")
(file-name (git-file-name name version))
(sha256
(base32
- "0imwpfda2pxix1rx0nlqs48v58icfw065nsv53rpg0dw4bw9x2wi"))))
+ "03w19rzh72jll9phai23wp0c2mlv39qsrv50mhckziy39z60yxh8"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2d9f2f10cc..8db1f761af 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -8903,6 +8903,32 @@ Supported netlink families and protocols include:
(define-public python2-wrapt
(package-with-python2 python-wrapt))
+(define-public python-commonmark
+ (package
+ (name "python-commonmark")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "commonmark" version))
+ (sha256
+ (base32 "0q7d39lm8kcingpmykk5r959hrwwj6v2icyw3mihczxyb749sbs5"))))
+ (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)
+ (invoke "python" "setup.py" "test"))))))
+ (home-page "https://github.com/readthedocs/commonmark.py")
+ (synopsis "Python parser for the CommonMark Markdown spec")
+ (description
+ "This module is a pure Python port of jgm's @code{commonmark.js}, a
+Markdown parser and renderer for the CommonMark specification, using only
+native modules.")
+ (license license:bsd-3)))
+
(define-public python-xlrd
(package
(name "python-xlrd")
@@ -15364,14 +15390,14 @@ builds partial trees by inspecting living objects.")
(define-public python-isbnlib
(package
(name "python-isbnlib")
- (version "3.10.3")
+ (version "3.10.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "isbnlib" version))
(sha256
(base32
- "07qhykv0x60d5rsx5pj6s4q15ri4znczscll3xmpf6gyclac1592"))))
+ "0iin0x2xqwyphyyzd0mzrq5v5xm7b6dlbb294k4dywra5qvbrgzm"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; No test
(home-page "https://github.com/xlcnd/isbnlib")
@@ -15468,13 +15494,13 @@ in other versions.")
(define-public python-mamba
(package
(name "python-mamba")
- (version "0.11.1")
+ (version "0.11.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "mamba" version))
(sha256
(base32
- "1jxy3bva94ac02a0wjsms79rp5104zmalxh8rhqqg6mw95cp6xpr"))))
+ "15m4dpnpv9m60pdaygvwgi43fwqaivs3qxfxhspwrp47sbgwdkvm"))))
(build-system python-build-system)
(arguments `(#:tests? #f)) ; No test
(propagated-inputs
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 0be7359985..70a9762379 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -159,14 +159,14 @@ this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}")
(define-public chirp
(package
(name "chirp")
- (version "20201014")
+ (version "20201121")
(source
(origin
(method url-fetch)
(uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
version "/chirp-daily-" version ".tar.gz"))
(sha256
- (base32 "16x3ix2n7a9l7lln2pri1xfmhyfvvzxb0nr3h33iajqimbwckxj0"))))
+ (base32 "092jryb1jn9li6zj243awv6piz1lhghqsm4phrz7j0rgqf76dy4n"))))
(build-system python-build-system)
(inputs
`(("python2-libxml2" ,python2-libxml2)
diff --git a/gnu/packages/re2c.scm b/gnu/packages/re2c.scm
index 427195fd5f..3b329617c7 100644
--- a/gnu/packages/re2c.scm
+++ b/gnu/packages/re2c.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
+;;; Copyright © 2017, 2020 Sergei Trofimovich <slyfox@inbox.ru>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@@ -26,7 +26,7 @@
(define-public re2c
(package
(name "re2c")
- (version "1.2.1")
+ (version "2.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/skvadrik/" name
@@ -34,7 +34,7 @@
name "-" version ".tar.xz"))
(sha256
(base32
- "05xq0571mkgr20v827jm63nhsirr8arghg4fszzswrmrnl3dfk0s"))))
+ "0y22fiyv2pqmq8asb2p5hzcf7ibjdrz7nl16rlpzy8damaw1xg5j"))))
(build-system gnu-build-system)
(home-page "https://re2c.org/")
(synopsis "Lexer generator for C/C++")
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index cb7a08e207..d37663bf5b 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,7 +31,7 @@
(define-public re2
(package
(name "re2")
- (version "2020-07-06")
+ (version "2020-11-01")
(home-page "https://github.com/google/re2")
(source (origin
(method git-fetch)
@@ -38,7 +39,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "12a9r9y7ry3hq0qf4znl9j7pn9mb5k6xp1f8nrk1sagfj1a504mq"))))
+ "0ii51fpp6fn51x4qyd99sy4r122s8ayh4x1srwhhijxlh8mzla5k"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/rpc.scm b/gnu/packages/rpc.scm
index e26170942b..cffa703fe0 100644
--- a/gnu/packages/rpc.scm
+++ b/gnu/packages/rpc.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,12 +39,13 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages regex)
#:use-module (gnu packages tls))
(define-public grpc
(package
(name "grpc")
- (version "1.27.3")
+ (version "1.33.2")
(outputs '("out" "static"))
(source (origin
(method git-fetch)
@@ -53,7 +55,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0czmbwnafc7jnrrq2fnac2av83vs2q7q0wy4k11w9zbpld7j5h6d"))))
+ "09xd9pkyp10gh051kf8kwxn4myw42zv8kngr9z8wpm6mjy0j4ylw"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
@@ -63,6 +65,7 @@
"-DgRPC_CARES_PROVIDER=package"
"-DgRPC_SSL_PROVIDER=package"
"-DgRPC_PROTOBUF_PROVIDER=package"
+ "-DgRPC_RE2_PROVIDER=package"
(string-append "-DCMAKE_INSTALL_PREFIX="
(assoc-ref %outputs "out"))
"-DCMAKE_INSTALL_LIBDIR=lib"
@@ -102,9 +105,11 @@
`(("abseil-cpp" ,abseil-cpp)
("c-ares" ,c-ares/cmake)
("openssl" ,openssl)
+ ("re2" ,re2)
("zlib" ,zlib)))
(native-inputs
- `(("protobuf" ,protobuf)
+ `(("pkg-config" ,pkg-config)
+ ("protobuf" ,protobuf)
("python" ,python-wrapper)))
(home-page "https://grpc.io")
(synopsis "High performance universal RPC framework")
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index bd77b3e808..b647b9ee2e 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -540,7 +540,7 @@ of libraries.")
version "/racket-minimal-" version "-src.tgz")))
(sha256
(base32
- "0xvnd7afx058sg7j51bmbikqgn4sl0246nkhr8zlqcrbr3nqi6p4"))
+ "0yc5zkpq1bavj64h67pllw6mfjhmdp65fgdpyqcaan3syy6b5cia"))
(patches (search-patches
"racket-store-checksum-override.patch"))))
(synopsis "Racket without bundled packages such as Dr. Racket")
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
index 0e259d71f3..1fd7d91eb9 100644
--- a/gnu/packages/skarnet.scm
+++ b/gnu/packages/skarnet.scm
@@ -295,7 +295,7 @@ systems and other constrained environments, but they work everywhere.")))
(define-public s6-linux-init
(package
(name "s6-linux-init")
- (version "1.0.4.2")
+ (version "1.0.5.1")
(source
(origin
(method url-fetch)
@@ -303,7 +303,7 @@ systems and other constrained environments, but they work everywhere.")))
"https://skarnet.org/software/s6-linux-init/s6-linux-init-"
version ".tar.gz"))
(sha256
- (base32 "0rp4k78555r38ir57a8w9qlxss4x487jqmhpn40ankpidwjs04gm"))))
+ (base32 "1gkbjldf4f7i3vmv251f9hw7ma09nh8zkwjmqi2gplpkf7z3i34p"))))
(build-system gnu-build-system)
(inputs
`(("execline" ,execline)
@@ -312,6 +312,7 @@ systems and other constrained environments, but they work everywhere.")))
(arguments
'(#:configure-flags
(list
+ "--disable-static"
(string-append "--with-lib="
(assoc-ref %build-inputs "skalibs")
"/lib/skalibs")
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 9f60b3c02e..e5bcac33f2 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -487,36 +487,6 @@ of user keystrokes. It's a replacement for SSH that's more robust and
responsive, especially over Wi-Fi, cellular, and long-distance links.")
(license license:gpl3+)))
-(define-public et
- (package
- (name "et")
- (version "3.1.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/MisterTea/EternalTCP")
- (commit (string-append "et-v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1m5caxckn2ihwp9s2pbyh5amxlpwr7yc54q8s0kb10fr52w2vfnm"))))
- (build-system cmake-build-system)
- (arguments `(#:tests? #f))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs `(("glog" ,glog)
- ("gflags" ,gflags)
- ("libsodium" ,libsodium)
- ("protobuf" ,protobuf)))
- (synopsis "Remote shell that automatically reconnects")
- (description
- "Eternal Terminal (ET) is a remote shell that automatically reconnects
-without interrupting the session. Unlike SSH sessions, ET sessions will
-survive even network outages and IP changes. ET uses a custom protocol over
-TCP, not the SSH protocol.")
- (home-page "https://eternalterminal.dev/")
- (license license:asl2.0)))
-
(define-public dropbear
(package
(name "dropbear")
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 48944d3b72..88350ac81b 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -55,14 +55,14 @@
(define-public ceph
(package
(name "ceph")
- (version "14.2.14")
+ (version "14.2.15")
(source (origin
(method url-fetch)
(uri (string-append "https://download.ceph.com/tarballs/ceph-"
version ".tar.gz"))
(sha256
(base32
- "10ma8qimgspz1q3lqb4yl990l9xa87iwd0r4dxl5xg89w6j7qwix"))
+ "1rq4pp7j8x0f4csspd9csllz6h3phiqfh5vlvsqsj60agyhidinc"))
(patches
(search-patches "ceph-disable-cpu-optimizations.patch"))
(modules '((guix build utils)))
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index f17c36cf2b..c9d57bee67 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -16,7 +16,7 @@
;;; Copyright © 2018, 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
-;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Valentin Ignatev <valentignatev@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
@@ -1044,7 +1044,7 @@ comfortably in a pager or editor.
(define-public eternalterminal
(package
(name "eternalterminal")
- (version "6.0.7")
+ (version "6.0.13")
(source
(origin
(method git-fetch)
@@ -1053,7 +1053,7 @@ comfortably in a pager or editor.
(commit (string-append "et-v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "03pdspggqxkmz95qb96pig5x0xw18hy9a7ivszydr32ry6kxxx1h"))))
+ (base32 "0sb1hypg2276y8c2a5vivrkcxp70swddvhnd9h273if3kv6j879r"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("-DBUILD_TEST=ON")
@@ -1081,6 +1081,9 @@ while also supporting native scrolling and @command{tmux} control mode
(@code{tmux -CC}).")
(license license:asl2.0)))
+(define-public et
+ (deprecated-package "et" eternalterminal))
+
(define-public wterm
(package
(name "wterm")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 1842528ff6..29de995665 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -14,7 +14,7 @@
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2017 André <eu@euandre.org>
+;;; Copyright © 2017, 2020 EuAndreh <eu@euandre.org>
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017, 2020 Oleg Pykhalov <go.wigust@gmail.com>
@@ -74,6 +74,7 @@
#:use-module (gnu packages ed)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages golang)
@@ -2718,6 +2719,40 @@ videos, datasets, and graphics with text pointers inside Git, while storing the
file contents on a remote server.")
(license license:expat)))
+(define-public git-open
+ (package
+ (name "git-open")
+ (version "2.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/paulirish/git-open")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "11n46bngvca5wbdbfcxzjhjbfdbad7sgf7h9gf956cb1q8swsdm0"))))
+ (build-system trivial-build-system)
+ (propagated-inputs
+ `(("xdg-utils" ,xdg-utils)))
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out")))
+ (mkdir-p (string-append out "/bin"))
+ (copy-file (string-append source "/git-open")
+ (string-append out "/bin/git-open"))
+ #t))))
+ (home-page "https://github.com/paulirish/git-open")
+ (synopsis "Open a Git repository's homepage from the command-line")
+ (description
+ "@code{git open} opens the repository's website from the command-line,
+guessing the URL pattern from the @code{origin} remote.")
+ (license license:expat)))
+
(define-public tla
(package
(name "gnu-arch")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index e58be3b274..44cf5f68b9 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -528,7 +528,7 @@ applications by providing high-level classes for commonly required tasks.")
(define-public libde265
(package
(name "libde265")
- (version "1.0.7")
+ (version "1.0.8")
(source
(origin
(method git-fetch)
@@ -538,7 +538,7 @@ applications by providing high-level classes for commonly required tasks.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0x7g9771457z49qvzpk4iswfhq018i0mzsflv9gg8if5hjqhfdp0"))))
+ (base32 "1dzflqbk248lz5ws0ni5acmf32b3rmnq5gsfaz7691qqjxkl1zml"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -2188,14 +2188,14 @@ To load this plugin, specify the following option when starting mpv:
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2020.11.21.1")
+ (version "2020.11.26")
(source (origin
(method url-fetch)
(uri (string-append "https://youtube-dl.org/downloads/latest/"
"youtube-dl-" version ".tar.gz"))
(sha256
(base32
- "0a9livib328z5j3kfndxys2193dvfs4hh38krx0idg0k26xp7cfl"))))
+ "0zvgb1b5kzd2y97rvynxf7qvz3narllf1m26xsph1zll1zb6q47v"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -4378,15 +4378,17 @@ transitions, and effects and then export your film to many common formats.")
(define-public dav1d
(package
(name "dav1d")
- (version "0.7.1")
+ (version "0.8.0")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://downloads.videolan.org/pub/videolan"
- "/dav1d/" version "/dav1d-" version ".tar.xz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://code.videolan.org/videolan/dav1d.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1hnkfcg57bv5rib6cnj39dy1jx0q7zi5fb2fz52hf2y0bv8bad1k"))))
+ "0mjn87xjdqv0q1gj4s4f6fdmsj504mhk4qmqiyrhq2rs7yqj4csv"))))
(build-system meson-build-system)
(native-inputs `(("nasm" ,nasm)))
(home-page "https://code.videolan.org/videolan/dav1d")
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index ed09f3dcd2..466e9d1ac5 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2053,14 +2053,14 @@ use with virtualization provisioning tools")
(define-public python-transient
(package
(name "python-transient")
- (version "0.10")
+ (version "0.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "transient" version))
(sha256
(base32
- "1740l50483fcq9748g69nkk28s2x69n4hh1l7n8f4s7p6lq1kqjy"))))
+ "1pcyw8j2l354qa6c8gr58xd7fmxcx1svnfyr2rj5nh04ircx3x7l"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; Requires behave
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f1c4143a59..dc2ca76a6c 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1424,7 +1424,7 @@ used to validate and fix HTML data.")
(define-public esbuild
(package
(name "esbuild")
- (version "0.8.11")
+ (version "0.8.14")
(source
(origin
(method git-fetch)
@@ -1433,8 +1433,7 @@ used to validate and fix HTML data.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32
- "18cp68jds8cq58hpcwh85cgvh5vlkjfdcpwqp5h754065j896rr3"))
+ (base32 "0hv6qgkdp5jhb3s3088xgahgddnivb6gc13gjsvjqz5clhscy81d"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -1457,7 +1456,7 @@ used to validate and fix HTML data.")
`(("golang.org/x/sys" ,go-golang-org-x-sys)))
(native-inputs
`(("github.com/kylelemons/godebug" ,go-github-com-kylelemons-godebug)))
- (home-page "https://github.com/evanw/esbuild")
+ (home-page "https://esbuild.github.io/")
(synopsis "Bundler and minifier tool for JavaScript and TypeScript")
(description
"The esbuild tool provides a unified bundler, transpiler and
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7d9ef43f96..b433ea4996 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -41,6 +41,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2020 James Smith <jsubuntuxp@disroot.org>
+;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -110,6 +111,38 @@
;; packages outside the x.org system proper
+(define-public xtitle
+ (package
+ (name "xtitle")
+ (version "0.4.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/baskerville/xtitle")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0f5070k2bwarghl1vq886pl52xck1x5p7x3qhlfchsc2y3dcqms9"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (arguments
+ `(#:tests? #f ;no test suite
+ #:make-flags (list (string-append "CC=" ,(cc-for-target))
+ (string-append "PREFIX=" %output))
+ #:phases (modify-phases %standard-phases (delete 'configure))))
+ (home-page "https://github.com/baskerville/xtitle")
+ (synopsis "Output X window titles")
+ (description
+ "If arguments are given, @code{xtitle} outputs the title of each
+specified window, otherwise it outputs the title of the active window. With
+@emph{snoop} mode on, it continuously monitors the specified windows and
+outputs when titles change.")
+ (license license:unlicense)))
+
(define-public arandr
(package
(name "arandr")
@@ -1458,7 +1491,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(define-public rofi
(package
(name "rofi")
- (version "1.6.0")
+ (version "1.6.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/DaveDavenport/rofi/"
@@ -1466,7 +1499,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
version "/rofi-" version ".tar.xz"))
(sha256
(base32
- "0566b499lbpfb1gk4p17iw78ywmk9l2jww1kqjbdanrl22hai1y4"))))
+ "12p9z8bl1gg8k024m4a6zfz7gf1zbyffardh98raqgabn6knwk22"))))
(build-system gnu-build-system)
(inputs
`(("pango" ,pango)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 4b8bd5b8f7..90660829c9 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -3012,8 +3012,8 @@ X server.")
(define-public xf86-video-intel
- (let ((commit "5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc")
- (revision "16"))
+ (let ((commit "ad5540f6ecaec287c70259f0181e613561b716f6")
+ (revision "17"))
(package
(name "xf86-video-intel")
(version (git-version "2.99.917" revision commit))
@@ -3026,7 +3026,7 @@ X server.")
(commit commit)))
(sha256
(base32
- "1y1v6cp3r3isq3bc7mypkvypwjygi205k06slmidx2q3sz4h4mjc"))
+ "09jdg5wrq708wc83027337qvdjb96827h7sjwjfl5ffiynfpwl95"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs `(("mesa" ,mesa)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 029df5ac16..3fc4d5f885 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -298,7 +298,8 @@ FILE-SYSTEM."
(define (mapped-device->shepherd-service-name md)
"Return the symbol that denotes the shepherd service of MD, a <mapped-device>."
(symbol-append 'device-mapping-
- (string->symbol (mapped-device-target md))))
+ (string->symbol (string-join
+ (mapped-device-targets md) "-"))))
(define dependency->shepherd-service-name
(match-lambda
diff --git a/gnu/system.scm b/gnu/system.scm
index b257ea0385..fcf3310fa3 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -475,9 +475,9 @@ marked as 'needed-for-boot'."
(let ((device (file-system-device fs)))
(if (string? device) ;title is 'device
(filter (lambda (md)
- (string=? (string-append "/dev/mapper/"
- (mapped-device-target md))
- device))
+ (any (cut string=? device <>)
+ (map (cut string-append "/dev/mapper" <>)
+ (mapped-device-targets md))))
(operating-system-mapped-devices os))
'())))
@@ -497,11 +497,12 @@ marked as 'needed-for-boot'."
(define (mapped-device-users device file-systems)
"Return the subset of FILE-SYSTEMS that use DEVICE."
- (let ((target (string-append "/dev/mapper/" (mapped-device-target device))))
+ (let ((targets (map (cut string-append "/dev/mapper/" <>)
+ (mapped-device-targets device))))
(filter (lambda (fs)
(or (member device (file-system-dependencies fs))
(and (string? (file-system-device fs))
- (string=? (file-system-device fs) target))))
+ (any (cut string=? (file-system-device fs) <>) targets))))
file-systems)))
(define (operating-system-user-mapped-devices os)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index b8a30c0abc..85e493fecb 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -195,11 +195,11 @@ upon error."
(define device-mapping-commands
;; List of gexps to open the mapped devices.
(map (lambda (md)
- (let* ((source (mapped-device-source md))
- (target (mapped-device-target md))
- (type (mapped-device-type md))
- (open (mapped-device-kind-open type)))
- (open source target)))
+ (let* ((source (mapped-device-source md))
+ (targets (mapped-device-targets md))
+ (type (mapped-device-type md))
+ (open (mapped-device-kind-open type)))
+ (open source targets)))
mapped-devices))
(define kodir
@@ -217,6 +217,7 @@ upon error."
(gnu system file-systems)
((guix build utils) #:hide (delete))
(guix build bournish) ;add the 'bournish' meta-command
+ (srfi srfi-1) ;for lvm-device-mapping
(srfi srfi-26)
;; FIXME: The following modules are for
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 31c50c4e40..559c27bb28 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -28,6 +28,7 @@
formatted-message
&fix-hint
&error-location))
+ #:use-module (guix deprecation)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:use-module (gnu system uuid)
@@ -35,17 +36,19 @@
#:autoload (gnu build linux-modules)
(missing-modules)
#:autoload (gnu packages cryptsetup) (cryptsetup-static)
- #:autoload (gnu packages linux) (mdadm-static)
+ #:autoload (gnu packages linux) (mdadm-static lvm2-static)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
- #:export (mapped-device
+ #:export (%mapped-device
+ mapped-device
mapped-device?
mapped-device-source
mapped-device-target
+ mapped-device-targets
mapped-device-type
mapped-device-location
@@ -61,7 +64,8 @@
check-device-initrd-modules ;XXX: needs a better place
luks-device-mapping
- raid-device-mapping))
+ raid-device-mapping
+ lvm-device-mapping))
;;; Commentary:
;;;
@@ -70,15 +74,36 @@
;;;
;;; Code:
-(define-record-type* <mapped-device> mapped-device
+(define-record-type* <mapped-device> %mapped-device
make-mapped-device
mapped-device?
(source mapped-device-source) ;string | list of strings
- (target mapped-device-target) ;string
+ (targets mapped-device-targets) ;list of strings
(type mapped-device-type) ;<mapped-device-kind>
(location mapped-device-location
(default (current-source-location)) (innate)))
+(define-syntax mapped-device-compatibility-helper
+ (syntax-rules (target)
+ ((_ () (fields ...))
+ (%mapped-device fields ...))
+ ((_ ((target exp) rest ...) (others ...))
+ (%mapped-device others ...
+ (targets (list exp))
+ rest ...))
+ ((_ (field rest ...) (others ...))
+ (mapped-device-compatibility-helper (rest ...)
+ (others ... field)))))
+
+(define-syntax-rule (mapped-device fields ...)
+ "Build an <mapped-device> record, automatically converting 'target' field
+specifications to 'targets'."
+ (mapped-device-compatibility-helper (fields ...) ()))
+
+(define-deprecated (mapped-device-target md)
+ mapped-device-targets
+ (car (mapped-device-targets md)))
+
(define-record-type* <mapped-device-type> mapped-device-kind
make-mapped-device-kind
mapped-device-kind?
@@ -97,14 +122,14 @@
(shepherd-service-type
'device-mapping
(match-lambda
- (($ <mapped-device> source target
+ (($ <mapped-device> source targets
($ <mapped-device-type> open close))
(shepherd-service
- (provision (list (symbol-append 'device-mapping- (string->symbol target))))
+ (provision (list (symbol-append 'device-mapping- (string->symbol (string-join targets "-")))))
(requirement '(udev))
(documentation "Map a device node using Linux's device mapper.")
- (start #~(lambda () #$(open source target)))
- (stop #~(lambda _ (not #$(close source target))))
+ (start #~(lambda () #$(open source targets)))
+ (stop #~(lambda _ (not #$(close source targets))))
(respawn? #f))))))
(define (device-mapping-service mapped-device)
@@ -162,48 +187,52 @@ option of @command{guix system}.\n")
;;; Common device mappings.
;;;
-(define (open-luks-device source target)
+(define (open-luks-device source targets)
"Return a gexp that maps SOURCE to TARGET as a LUKS device, using
'cryptsetup'."
(with-imported-modules (source-module-closure
'((gnu build file-systems)))
- #~(let ((source #$(if (uuid? source)
- (uuid-bytevector source)
- source)))
- ;; XXX: 'use-modules' should be at the top level.
- (use-modules (rnrs bytevectors) ;bytevector?
- ((gnu build file-systems)
- #:select (find-partition-by-luks-uuid)))
-
- ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the
- ;; whole world inside the initrd (for when we're in an initrd).
- (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
- "open" "--type" "luks"
-
- ;; Note: We cannot use the "UUID=source" syntax here
- ;; because 'cryptsetup' implements it by searching the
- ;; udev-populated /dev/disk/by-id directory but udev may
- ;; be unavailable at the time we run this.
- (if (bytevector? source)
- (or (let loop ((tries-left 10))
- (and (positive? tries-left)
- (or (find-partition-by-luks-uuid source)
- ;; If the underlying partition is
- ;; not found, try again after
- ;; waiting a second, up to ten
- ;; times. FIXME: This should be
- ;; dealt with in a more robust way.
- (begin (sleep 1)
- (loop (- tries-left 1))))))
- (error "LUKS partition not found" source))
- source)
-
- #$target)))))
-
-(define (close-luks-device source target)
+ (match targets
+ ((target)
+ #~(let ((source #$(if (uuid? source)
+ (uuid-bytevector source)
+ source)))
+ ;; XXX: 'use-modules' should be at the top level.
+ (use-modules (rnrs bytevectors) ;bytevector?
+ ((gnu build file-systems)
+ #:select (find-partition-by-luks-uuid)))
+
+ ;; Use 'cryptsetup-static', not 'cryptsetup', to avoid pulling the
+ ;; whole world inside the initrd (for when we're in an initrd).
+ (zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
+ "open" "--type" "luks"
+
+ ;; Note: We cannot use the "UUID=source" syntax here
+ ;; because 'cryptsetup' implements it by searching the
+ ;; udev-populated /dev/disk/by-id directory but udev may
+ ;; be unavailable at the time we run this.
+ (if (bytevector? source)
+ (or (let loop ((tries-left 10))
+ (and (positive? tries-left)
+ (or (find-partition-by-luks-uuid source)
+ ;; If the underlying partition is
+ ;; not found, try again after
+ ;; waiting a second, up to ten
+ ;; times. FIXME: This should be
+ ;; dealt with in a more robust way.
+ (begin (sleep 1)
+ (loop (- tries-left 1))))))
+ (error "LUKS partition not found" source))
+ source)
+
+ #$target)))))))
+
+(define (close-luks-device source targets)
"Return a gexp that closes TARGET, a LUKS device."
- #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
- "close" #$target)))
+ (match targets
+ ((target)
+ #~(zero? (system* #$(file-append cryptsetup-static "/sbin/cryptsetup")
+ "close" #$target)))))
(define* (check-luks-device md #:key
needed-for-boot?
@@ -235,36 +264,40 @@ option of @command{guix system}.\n")
(close close-luks-device)
(check check-luks-device)))
-(define (open-raid-device sources target)
+(define (open-raid-device sources targets)
"Return a gexp that assembles SOURCES (a list of devices) to the RAID device
TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
- #~(let ((sources '#$sources)
-
- ;; XXX: We're not at the top level here. We could use a
- ;; non-top-level 'use-modules' form but that doesn't work when the
- ;; code is eval'd, like the Shepherd does.
- (every (@ (srfi srfi-1) every))
- (format (@ (ice-9 format) format)))
- (let loop ((attempts 0))
- (unless (every file-exists? sources)
- (when (> attempts 20)
- (error "RAID devices did not show up; bailing out"
- sources))
-
- (format #t "waiting for RAID source devices~{ ~a~}...~%"
- sources)
- (sleep 1)
- (loop (+ 1 attempts))))
-
- ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
- ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
- (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
- "--assemble" #$target sources))))
-
-(define (close-raid-device sources target)
+ (match targets
+ ((target)
+ #~(let ((sources '#$sources)
+
+ ;; XXX: We're not at the top level here. We could use a
+ ;; non-top-level 'use-modules' form but that doesn't work when the
+ ;; code is eval'd, like the Shepherd does.
+ (every (@ (srfi srfi-1) every))
+ (format (@ (ice-9 format) format)))
+ (let loop ((attempts 0))
+ (unless (every file-exists? sources)
+ (when (> attempts 20)
+ (error "RAID devices did not show up; bailing out"
+ sources))
+
+ (format #t "waiting for RAID source devices~{ ~a~}...~%"
+ sources)
+ (sleep 1)
+ (loop (+ 1 attempts))))
+
+ ;; Use 'mdadm-static' rather than 'mdadm' to avoid pulling its whole
+ ;; closure (80 MiB) in the initrd when a RAID device is needed for boot.
+ (zero? (apply system* #$(file-append mdadm-static "/sbin/mdadm")
+ "--assemble" #$target sources))))))
+
+(define (close-raid-device sources targets)
"Return a gexp that stops the RAID device TARGET."
- #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
- "--stop" #$target)))
+ (match targets
+ ((target)
+ #~(zero? (system* #$(file-append mdadm-static "/sbin/mdadm")
+ "--stop" #$target)))))
(define raid-device-mapping
;; The type of RAID mapped devices.
@@ -272,4 +305,24 @@ TARGET (e.g., \"/dev/md0\"), using 'mdadm'."
(open open-raid-device)
(close close-raid-device)))
+(define (open-lvm-device source targets)
+ #~(and
+ (zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+ "vgchange" "--activate" "ay" #$source))
+ ; /dev/mapper nodes are usually created by udev, but udev may be unavailable at the time we run this. So we create them here.
+ (zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+ "vgscan" "--mknodes"))
+ (every file-exists? (map (lambda (file) (string-append "/dev/mapper/" file))
+ '#$targets))))
+
+
+(define (close-lvm-device source targets)
+ #~(zero? (system* #$(file-append lvm2-static "/sbin/lvm")
+ "vgchange" "--activate" "n" #$source)))
+
+(define lvm-device-mapping
+ (mapped-device-kind
+ (open open-lvm-device)
+ (close close-lvm-device)))
+
;;; mapped-devices.scm ends here
diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm
index 2d62a873ca..71caa3a493 100644
--- a/gnu/tests/install.scm
+++ b/gnu/tests/install.scm
@@ -67,6 +67,7 @@
%test-btrfs-root-on-subvolume-os
%test-jfs-root-os
%test-f2fs-root-os
+ %test-lvm-separate-home-os
%test-gui-installed-os
%test-gui-installed-os-encrypted
@@ -798,6 +799,92 @@ build (current-guix) and then store a couple of full system images.")
;;;
+;;; Separate /home on LVM
+;;;
+
+;; Since LVM support in guix currently doesn't allow root-on-LVM we use /home on LVM
+(define-os-with-source (%lvm-separate-home-os %lvm-separate-home-os-source)
+ (use-modules (gnu) (gnu tests))
+
+ (operating-system
+ (host-name "separate-home-on-lvm")
+ (timezone "Europe/Paris")
+ (locale "en_US.utf8")
+
+ (bootloader (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "/dev/vdb")))
+ (kernel-arguments '("console=ttyS0"))
+
+ (mapped-devices (list (mapped-device
+ (source "vg0")
+ (target "vg0-home")
+ (type lvm-device-mapping))))
+ (file-systems (cons* (file-system
+ (device (file-system-label "root-fs"))
+ (mount-point "/")
+ (type "ext4"))
+ (file-system
+ (device "/dev/mapper/vg0-home")
+ (mount-point "/home")
+ (type "ext4")
+ (dependencies mapped-devices))
+ %base-file-systems))
+ (users %base-user-accounts)
+ (services (cons (service marionette-service-type
+ (marionette-configuration
+ (imported-modules '((gnu services herd)
+ (guix combinators)))))
+ %base-services))))
+
+(define %lvm-separate-home-installation-script
+ "\
+. /etc/profile
+set -e -x
+guix --version
+
+export GUIX_BUILD_OPTIONS=--no-grafts
+parted --script /dev/vdb mklabel gpt \\
+ mkpart primary ext2 1M 3M \\
+ mkpart primary ext2 3M 1.6G \\
+ mkpart primary 1.6G 3.2G \\
+ set 1 boot on \\
+ set 1 bios_grub on
+pvcreate /dev/vdb3
+vgcreate vg0 /dev/vdb3
+lvcreate -L 1.6G -n home vg0
+vgchange -ay
+mkfs.ext4 -L root-fs /dev/vdb2
+mkfs.ext4 /dev/mapper/vg0-home
+mount /dev/vdb2 /mnt
+mkdir /mnt/home
+mount /dev/mapper/vg0-home /mnt/home
+df -h /mnt /mnt/home
+herd start cow-store /mnt
+mkdir /mnt/etc
+cp /etc/target-config.scm /mnt/etc/config.scm
+guix system init /mnt/etc/config.scm /mnt --no-substitutes
+sync
+reboot\n")
+
+(define %test-lvm-separate-home-os
+ (system-test
+ (name "lvm-separate-home-os")
+ (description
+ "Test functionality of an OS installed with a LVM /home partition")
+ (value
+ (mlet* %store-monad ((image (run-install %lvm-separate-home-os
+ %lvm-separate-home-os-source
+ #:script
+ %lvm-separate-home-installation-script
+ #:packages (list lvm2-static)
+ #:target-size (* 3200 MiB)))
+ (command (qemu-command/writable-image image)))
+ (run-basic-test %lvm-separate-home-os
+ `(,@command) "lvm-separate-home-os")))))
+
+
+;;;
;;; Btrfs root file system.
;;;
diff --git a/guix/scripts/weather.scm b/guix/scripts/weather.scm
index 6a2582c997..f28070ddc4 100644
--- a/guix/scripts/weather.scm
+++ b/guix/scripts/weather.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +31,7 @@
#:use-module (guix grafts)
#:use-module (guix gexp)
#:use-module ((guix build syscalls) #:select (terminal-columns))
+ #:use-module ((guix build utils) #:select (every*))
#:use-module (guix scripts substitute)
#:use-module (guix http-client)
#:use-module (guix ci)
@@ -540,23 +542,23 @@ SERVER. Display information for packages with at least THRESHOLD dependents."
(package-outputs packages system))
systems))))))
(exit
- (every (lambda (server)
- (define coverage
- (report-server-coverage server items
- #:display-missing?
- (assoc-ref opts 'display-missing?)))
- (match (assoc-ref opts 'coverage)
- (#f #f)
- (threshold
- ;; PACKAGES may include non-package objects coming from a
- ;; manifest. Filter them out.
- (report-package-coverage server
- (filter package? packages)
- systems
- #:threshold threshold)))
-
- (= 1 coverage))
- urls))))))
+ (every* (lambda (server)
+ (define coverage
+ (report-server-coverage server items
+ #:display-missing?
+ (assoc-ref opts 'display-missing?)))
+ (match (assoc-ref opts 'coverage)
+ (#f #f)
+ (threshold
+ ;; PACKAGES may include non-package objects coming from a
+ ;; manifest. Filter them out.
+ (report-package-coverage server
+ (filter package? packages)
+ systems
+ #:threshold threshold)))
+
+ (= 1 coverage))
+ urls))))))
;;; Local Variables:
;;; eval: (put 'let/time 'scheme-indent-function 1)