summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-06-05 19:46:16 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-06-05 19:46:16 +0200
commitd4721ff1017b64e5242b09fd7b430665ec580524 (patch)
tree1bd9ce1a339f5b348e780e4bb7f53a4333bfce01
parent30e12b9664d774aca3948b1fa2e0aee6af09ca40 (diff)
parentc0f6eebb6d9f6ca9b62344f32ce5f82dab601d53 (diff)
downloadguix-patches-d4721ff1017b64e5242b09fd7b430665ec580524.tar
guix-patches-d4721ff1017b64e5242b09fd7b430665ec580524.tar.gz
Merge branch 'master' into staging
-rw-r--r--Makefile.am1
-rw-r--r--doc/guix.texi19
-rw-r--r--etc/guix-daemon.service.in2
-rw-r--r--etc/guix-publish.service.in2
-rw-r--r--gnu/build/linux-boot.scm4
-rw-r--r--gnu/installer/parted.scm3
-rw-r--r--gnu/local.mk7
-rw-r--r--gnu/packages/aspell.scm70
-rw-r--r--gnu/packages/audio.scm6
-rw-r--r--gnu/packages/backup.scm19
-rw-r--r--gnu/packages/crypto.scm4
-rw-r--r--gnu/packages/debian.scm11
-rw-r--r--gnu/packages/django.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm144
-rw-r--r--gnu/packages/game-development.scm13
-rw-r--r--gnu/packages/gl.scm4
-rw-r--r--gnu/packages/gnome.scm9
-rw-r--r--gnu/packages/gnupg.scm4
-rw-r--r--gnu/packages/gnuzilla.scm67
-rw-r--r--gnu/packages/golang.scm6
-rw-r--r--gnu/packages/guile-xyz.scm8
-rw-r--r--gnu/packages/haskell.scm5
-rw-r--r--gnu/packages/libevent.scm23
-rw-r--r--gnu/packages/linux.scm12
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/maths.scm20
-rw-r--r--gnu/packages/mpd.scm4
-rw-r--r--gnu/packages/networking.scm8
-rw-r--r--gnu/packages/password-utils.scm9
-rw-r--r--gnu/packages/patches/borg-fix-hard-link-preloading.patch157
-rw-r--r--gnu/packages/patches/icecat-makeicecat.patch56
-rw-r--r--gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch41
-rw-r--r--gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch41
-rw-r--r--gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch39
-rw-r--r--gnu/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch38
-rw-r--r--gnu/packages/patches/libevent-dns-tests.patch16
-rw-r--r--gnu/packages/patches/polkit-CVE-2018-19788.patch197
-rw-r--r--gnu/packages/photo.scm8
-rw-r--r--gnu/packages/polkit.scm10
-rw-r--r--gnu/packages/python-crypto.scm8
-rw-r--r--gnu/packages/python-xyz.scm17
-rw-r--r--gnu/packages/regex.scm4
-rw-r--r--gnu/packages/sdl.scm11
-rw-r--r--gnu/packages/syncthing.scm12
-rw-r--r--gnu/packages/tls.scm4
-rw-r--r--gnu/packages/vim.scm4
-rw-r--r--gnu/packages/xorg.scm15
-rw-r--r--gnu/services/base.scm109
-rw-r--r--gnu/services/cups.scm2
-rw-r--r--guix/channels.scm4
-rw-r--r--guix/deprecation.scm35
-rw-r--r--guix/diagnostics.scm173
-rw-r--r--guix/import/utils.scm87
-rw-r--r--guix/ui.scm152
54 files changed, 692 insertions, 1040 deletions
diff --git a/Makefile.am b/Makefile.am
index ba4528ce87..80be73e4bf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -144,6 +144,7 @@ MODULES = \
guix/svn-download.scm \
guix/colors.scm \
guix/i18n.scm \
+ guix/diagnostics.scm \
guix/ui.scm \
guix/status.scm \
guix/build/android-ndk-build-system.scm \
diff --git a/doc/guix.texi b/doc/guix.texi
index c01eb3a656..996255d9dc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4219,7 +4219,7 @@ to another like this:
@example
guix archive --export -r $(readlink -f ~/.guix-profile) | \
- ssh the-machine guix-archive --import
+ ssh the-machine guix archive --import
@end example
@noindent
@@ -12232,10 +12232,19 @@ The TCP port to listen for connections.
The host (and thus, network interface) to listen to. Use
@code{"0.0.0.0"} to listen on all the network interfaces.
-@item @code{compression-level} (default: @code{3})
-The gzip compression level at which substitutes are compressed. Use
-@code{0} to disable compression altogether, and @code{9} to get the best
-compression ratio at the expense of increased CPU usage.
+@item @code{compression} (default: @code{'(("gzip" 3))})
+This is a list of compression method/level tuple used when compressing
+substitutes. For example, to compress all substitutes with @emph{both} lzip
+at level 7 and gzip at level 9, write:
+
+@example
+'(("lzip" 7) ("gzip" 9))
+@end example
+
+Level 9 achieves the best compression ratio at the expense of increased CPU
+usage, whereas level 1 achieves fast compression.
+
+An empty list disables compression altogether.
@item @code{nar-path} (default: @code{"nar"})
The URL path at which ``nars'' can be fetched. @xref{Invoking guix
diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
index 7b20a91931..407cdd199c 100644
--- a/etc/guix-daemon.service.in
+++ b/etc/guix-daemon.service.in
@@ -7,7 +7,7 @@ Description=Build daemon for GNU Guix
[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild
-Environment=GUIX_LOCPATH='@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
+Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog
diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in
index e61a0314ce..2dc89ef600 100644
--- a/etc/guix-publish.service.in
+++ b/etc/guix-publish.service.in
@@ -7,7 +7,7 @@ Description=Publish the GNU Guix store
[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
-Environment=GUIX_LOCPATH='@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
+Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog
diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm
index a35d18ad7c..03f2ea245c 100644
--- a/gnu/build/linux-boot.scm
+++ b/gnu/build/linux-boot.scm
@@ -517,6 +517,8 @@ upon error."
(unless (pre-mount)
(error "pre-mount actions failed")))
+ (setenv "EXT2FS_NO_MTAB_OK" "1")
+
(if root
;; The "--root=SPEC" kernel command-line option always provides a
;; string, but the string can represent a device, a UUID, or a
@@ -533,6 +535,8 @@ upon error."
(for-each mount-file-system
(remove root-mount-point? mounts))
+ (setenv "EXT2FS_NO_MTAB_OK" #f)
+
(if to-load
(begin
(switch-root "/root")
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index bd2640d1ad..682e233d9f 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -1318,7 +1318,8 @@ USER-PARTITIONS, or return nothing."
(()
'())
((modules ...)
- `((initrd-modules ',modules)))))
+ `((initrd-modules (append ',modules
+ %base-initrd-modules))))))
(define (user-partitions->configuration user-partitions)
"Return the configuration field for USER-PARTITIONS."
diff --git a/gnu/local.mk b/gnu/local.mk
index d6ad896f93..0fb6a22953 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -689,7 +689,6 @@ dist_patch_DATA = \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
%D%/packages/patches/boost-fix-icu-build.patch \
- %D%/packages/patches/borg-fix-hard-link-preloading.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-bs4.patch \
@@ -983,11 +982,6 @@ dist_patch_DATA = \
%D%/packages/patches/libcroco-CVE-2017-7960.patch \
%D%/packages/patches/libcroco-CVE-2017-7961.patch \
%D%/packages/patches/libdrm-symbol-check.patch \
- %D%/packages/patches/libevent-dns-tests.patch \
- %D%/packages/patches/libevent-2.0-CVE-2016-10195.patch \
- %D%/packages/patches/libevent-2.0-CVE-2016-10196.patch \
- %D%/packages/patches/libevent-2.0-CVE-2016-10197.patch \
- %D%/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch \
%D%/packages/patches/libexif-CVE-2016-6328.patch \
%D%/packages/patches/libexif-CVE-2017-7544.patch \
%D%/packages/patches/libgcrypt-make-yat2m-reproducible.patch \
@@ -1167,7 +1161,6 @@ dist_patch_DATA = \
%D%/packages/patches/plink-endian-detection.patch \
%D%/packages/patches/plotutils-libpng-jmpbuf.patch \
%D%/packages/patches/podofo-cmake-3.12.patch \
- %D%/packages/patches/polkit-CVE-2018-19788.patch \
%D%/packages/patches/portaudio-audacity-compat.patch \
%D%/packages/patches/portmidi-modular-build.patch \
%D%/packages/patches/postgresql-disable-resolve_symlinks.patch \
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index dd006e8184..1bbe57a4ef 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2016 Christopher Andersson <christopher@8bits.nu>
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2016, 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -131,6 +132,22 @@ dictionaries, including personal ones.")
(home-page "http://aspell.net/")))
+(define-public aspell-dict-ar
+ (aspell-dictionary "ar" "Arabic"
+ #:version "1.2-0"
+ #:prefix "aspell6-"
+ #:sha256
+ (base32
+ "1avw40bp8yi5bnkq64ihm2rldgw34lk89yz281q9bmndh95a47h4")))
+
+(define-public aspell-dict-be
+ (aspell-dictionary "be" "Belarusian"
+ #:version "0.01"
+ #:prefix "aspell5-"
+ #:sha256
+ (base32
+ "1svls9p7rsfi3hs0afh0cssj006qb4v1ik2yzqgj8hm10c6as2sm")))
+
(define-public aspell-dict-ca
(aspell-dictionary "ca" "Catalan"
#:version "2.1.5-1"
@@ -145,6 +162,14 @@ dictionaries, including personal ones.")
(base32
"01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s")))
+(define-public aspell-dict-da
+ (aspell-dictionary "da" "Danish"
+ #:version "1.4.42-1"
+ #:prefix "aspell5-"
+ #:sha256
+ (base32
+ "1hfkmiyhgrx5lgrb2mffjbdn1hivrm73wcg7x0iid74p2yb0fjpp")))
+
(define-public aspell-dict-el
(aspell-dictionary "el" "Greek"
#:version "0.08-0"
@@ -174,6 +199,14 @@ dictionaries, including personal ones.")
(base32
"1k5g328ac1hdpp6fsg57d8md6i0aqcwlszp3gbmp5706wyhpydmd")))
+(define-public aspell-dict-fi
+ (aspell-dictionary "fi" "Finnish"
+ #:version "0.7-0"
+ #:prefix "aspell6-"
+ #:sha256
+ (base32
+ "07d5s08ba4dd89cmwy9icc01i6fjdykxlb9ravmhdrhi8mxz1mzq")))
+
(define-public aspell-dict-fr
(aspell-dictionary "fr" "French"
#:version "0.50-3"
@@ -196,6 +229,14 @@ dictionaries, including personal ones.")
(base32
"13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn")))
+(define-public aspell-dict-hi
+ (aspell-dictionary "hi" "Hindi"
+ #:version "0.02-0"
+ #:prefix "aspell6-"
+ #:sha256
+ (base32
+ "0drs374qz4419zx1lf2k281ydxf2750jk5ailafj1x0ncz27h1ys")))
+
(define-public aspell-dict-it
(let ((version "2.4-20070901-0")
(sha256
@@ -217,6 +258,13 @@ dictionaries, including personal ones.")
(home-page
"http://linguistico.sourceforge.net/pages/dizionario_italiano.html"))))
+(define-public aspell-dict-mi
+ (aspell-dictionary "mi" "Maori"
+ #:version "0.50-0"
+ #:sha256
+ (base32
+ "12bxplpd348yx8d2q8qvahi9dlp7qf28qmanzhziwc7np8rixvmy")))
+
(define-public aspell-dict-nl
(aspell-dictionary "nl" "Dutch"
#:version "0.50-2"
@@ -225,6 +273,13 @@ dictionaries, including personal ones.")
(base32
"0ffb87yjsh211hllpc4b9khqqrblial4pzi1h9r3v465z1yhn3j4")))
+(define-public aspell-dict-nn
+ (aspell-dictionary "nn" "Norwegian Nynorsk"
+ #:version "0.50.1-1"
+ #:sha256
+ (base32
+ "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc")))
+
(define-public aspell-dict-pt-br
(aspell-dictionary "pt-br" "Brazilian Portuguese"
#:version "20090702-0"
@@ -233,6 +288,14 @@ dictionaries, including personal ones.")
(base32
"1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p")))
+(define-public aspell-dict-pt-pt
+ (aspell-dictionary "pt-pt" "Portuguese"
+ #:version "20070510-0"
+ #:prefix "aspell6-"
+ #:sha256
+ (base32
+ "1mnr994cwlag6shy8865ky99lymysiln07mbldcncahg90dagdxq")))
+
(define-public aspell-dict-ru
(aspell-dictionary "ru" "Russian"
#:version "0.99f7-1"
@@ -248,6 +311,13 @@ dictionaries, including personal ones.")
(base32
"02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v")))
+(define-public aspell-dict-uk
+ (aspell-dictionary "uk" "Ukrainian"
+ #:version "1.4.0-0"
+ #:sha256
+ (base32
+ "137i4njvnslab6l4s291s11xijr5jsy75lbdph32f9y183lagy9m")))
+
;;;
;;; Hunspell packages made from the Aspell word lists.
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 592a1ba94c..4a8548c25b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -174,14 +174,14 @@ Filter) modules follow the convention of 1V / Octave.")
"--enable-jack"
"--enable-sndfile"
"--enable-samplerate"
- ;; TODO: enable compilation with avcodec once available.
- "--disable-avcodec")
+ "--enable-avcodec")
#:python ,python-2))
(inputs
`(("jack" ,jack-1)
("libsndfile" ,libsndfile)
("libsamplerate" ,libsamplerate)
- ("fftwf" ,fftwf)))
+ ("fftwf" ,fftwf)
+ ("ffmpeg" ,ffmpeg))) ; for libavcodec
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://aubio.org/")
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 70cc06c736..0bd894f958 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -511,15 +511,13 @@ detection, and lossless compression.")
(define-public borg
(package
(name "borg")
- (version "1.1.9")
+ (version "1.1.10")
(source
(origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
(sha256
- (base32
- "0x95nhv4h34m8cxycbwc4xdz350saaxlgh727b23bgn4ci7gh3vx"))
- (patches (search-patches "borg-fix-hard-link-preloading.patch"))
+ (base32 "1pp70p4n5kamvcbl4d8021ggrxhyykmg9isjg4yd3wags8b19d7g"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -541,7 +539,12 @@ detection, and lossless compression.")
;; Remove bundled shared libraries.
(with-directory-excursion "src/borg/algorithms"
(for-each delete-file-recursively
- (list "blake2" "lz4" "zstd")))
+ (list "blake2" "lz4" "msgpack" "zstd")))
+ ;; Purge some msgpack references from setup.py or the resulting
+ ;; sources will be unbuildable.
+ (substitute* "setup.py"
+ ((".*Extension\\('borg\\.algorithms\\.msgpack\\..*") "")
+ (("msgpack_packer_source, msgpack_unpacker_source") ""))
#t))))
(build-system python-build-system)
(arguments
@@ -565,6 +568,12 @@ detection, and lossless compression.")
;; HOME=/homeless-shelter.
(setenv "HOME" "/tmp")
#t)))
+ (add-after 'unpack 'use-system-msgpack
+ (lambda _
+ (substitute* "src/borg/helpers.py"
+ (("prefer_system_msgpack = False")
+ "prefer_system_msgpack = True"))
+ #t))
;; The tests need to be run after Borg is installed.
(delete 'check)
(add-after 'install 'check
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 1d145ef4c7..53137e90e9 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -75,7 +75,7 @@
(define-public libsodium
(package
(name "libsodium")
- (version "1.0.17")
+ (version "1.0.18")
(source (origin
(method url-fetch)
(uri (list (string-append
@@ -86,7 +86,7 @@
"releases/old/libsodium-" version ".tar.gz")))
(sha256
(base32
- "1cf2d9v1gylz1qcy2zappbf526qfmph6gd6fnn3w2b347vixmhqc"))))
+ "1h9ncvj23qbbni958knzsli8dvybcswcjbx0qjjgi922nf848l3g"))))
(build-system gnu-build-system)
(synopsis "Portable NaCl-based crypto library")
(description
diff --git a/gnu/packages/debian.scm b/gnu/packages/debian.scm
index 1b401bc946..f94f49c51b 100644
--- a/gnu/packages/debian.scm
+++ b/gnu/packages/debian.scm
@@ -154,6 +154,11 @@ contains the archive keys used for that.")
(("/usr") ubuntu))
(substitute* "debootstrap"
(("=/usr") (string-append "=" out)))
+ ;; Ensure PATH works both in guix and within the debian chroot
+ ;; workaround for: https://bugs.debian.org/929889
+ (substitute* "functions"
+ (("PATH=/sbin:/usr/sbin:/bin:/usr/bin")
+ "PATH=$PATH:/sbin:/usr/sbin:/bin:/usr/bin"))
(substitute* (find-files "scripts" ".")
(("/usr/share/zoneinfo") (string-append tzdata "/share/zoneinfo")))
#t)))
@@ -184,9 +189,5 @@ contains the archive keys used for that.")
(description "Debootstrap is used to create a Debian base system from
scratch, without requiring the availability of @code{dpkg} or @code{apt}.
It does this by downloading .deb files from a mirror site, and carefully
-unpacking them into a directory which can eventually be chrooted into.
-
-It is recommended to run @code{debootstrap --foreign --arch=...} and then
-@code{chroot} into the directory, set the PATH and run @code{debootstrap
---second-stage} after.")
+unpacking them into a directory which can eventually be chrooted into.")
(license license:gpl2)))
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 2ef50bd0f7..dcef7370bd 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -41,13 +41,13 @@
(define-public python-django
(package
(name "python-django")
- (version "1.11.20")
+ (version "1.11.21")
(source (origin
(method url-fetch)
(uri (pypi-uri "Django" version))
(sha256
(base32
- "0h90kdq8r4y8wa73hdxmyy5psnwlg61dcq3qsa098cpfiyh9vaa3"))))
+ "0adhcw8sx2mgwk9y2j760y96pqbip1ni3sf2v2ls5zxc9x93wwms"))))
(build-system python-build-system)
(arguments
'(#:modules ((srfi srfi-1)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c2b3bfddcb..e5b11e5422 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -667,6 +667,37 @@ programs.")
(define-public haskell-mode
(deprecated-package "haskell-mode" emacs-haskell-mode))
+(define-public emacs-dante
+ (let ((commit "149dded24ca9cdff09a3d859e4b62638db4aadda")
+ (revision "1"))
+ (package
+ (name "emacs-dante")
+ (version (git-version "1.5" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jyp/dante")
+ (commit commit)))
+ (sha256
+ (base32
+ "0i7kj3d6pfys6si9va5f36qzifyac9mahdl0qh40rya9m0syrkla"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-f" ,emacs-f)
+ ("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-haskell-mode" ,emacs-haskell-mode)
+ ("emacs-s" ,emacs-s)
+ ("emacs-company" ,emacs-company)
+ ("emacs-lcr" ,emacs-lcr)))
+ (home-page "https://github.com/jyp/dante")
+ (synopsis "Minor mode for interactive Haskell")
+ (description
+ "This package provides a minor mode for Haskell development that
+supports type hints, definition-jumping, completion, and more.")
+ (license license:gpl3+))))
+
(define-public emacs-flycheck
(package
(name "emacs-flycheck")
@@ -2523,6 +2554,28 @@ evaluated in the browser, just like Emacs does with an inferior Lisp process
in Lisp modes.")
(license license:unlicense)))
+(define-public emacs-litable
+ (let ((commit "b0278f3f8dcff424bfbdfdefb545b1fbff33206f"))
+ (package
+ (name "emacs-litable")
+ (version (git-version "0.1" "0" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Fuco1/litable.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0bny40hv9a024n01clxns351cs4j4ifhgcc7m4743xncqf612p7g"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)))
+ (home-page "https://github.com/Fuco1/litable/")
+ (synopsis "Dynamic evaluation replacement with Emacs")
+ (description "This packages provides dynamic evaluation in Emacs.")
+ (license license:gpl3+))))
+
(define-public emacs-string-inflection
(package
(name "emacs-string-inflection")
@@ -6969,7 +7022,7 @@ highlights quasi-quoted expressions.")
(define-public emacspeak
(package
(name "emacspeak")
- (version "49.0")
+ (version "50.0")
(source
(origin
(method url-fetch)
@@ -6978,7 +7031,7 @@ highlights quasi-quoted expressions.")
version "/emacspeak-" version ".tar.bz2"))
(sha256
(base32
- "1smf26m7201z0bk49lzbw9zhbjfi6wylidfjixb8ylp6g0wnh8dx"))))
+ "0rsj7rzfyqmyidfsjrhjnxi2d43axx6r3gac1fhv5xkkbiiqzqkb"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list (string-append "prefix="
@@ -6986,13 +7039,10 @@ highlights quasi-quoted expressions.")
#:phases
(modify-phases %standard-phases
(replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lisp (string-append out
- "/share/emacs/site-lisp/emacspeak")))
- (setenv "SHELL" (which "sh"))
- ;; Configure Emacspeak according to etc/install.org.
- (invoke "make" "config"))))
+ (lambda _
+ (setenv "SHELL" (which "sh"))
+ ;; Configure Emacspeak according to etc/install.org.
+ (invoke "make" "config")))
(add-after 'build 'build-espeak
(lambda _
(invoke "make" "espeak")))
@@ -7009,7 +7059,7 @@ highlights quasi-quoted expressions.")
(for-each
(lambda (file)
(copy-recursively file (string-append lisp "/" file)))
- '("etc" "info" "js" "lisp" "media" "scapes" "servers" "sounds"
+ '("etc" "info" "js" "lisp" "media" "servers" "sounds"
"stumpwm" "xsl"))
;; Make sure emacspeak is loaded from the correct directory.
(substitute* "etc/emacspeak.sh"
@@ -8049,6 +8099,30 @@ from within Emacs. Restclient runs queries from a plan-text query sheet,
displays results pretty-printed in XML or JSON with @code{restclient-mode}")
(license license:public-domain))))
+(define-public emacs-whitespace-cleanup-mode
+ (let ((commit "72427144b054b0238a86e1348c45d986b8830d9d")
+ (revision "1"))
+ (package
+ (name "emacs-whitespace-cleanup-mode")
+ (version (git-version "0.10" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/purcell/whitespace-cleanup-mode")
+ (commit commit)))
+ (sha256
+ (base32
+ "1zlk534jbwrsabcg3kqlzk4h4hwya60lh6q2n1v4yn4rpf5ghsag"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/purcell/whitespace-cleanup-mode")
+ (synopsis "Intelligently call @code{whitespace-cleanup} on save")
+ (description
+ "This package provides a minor mode that calls
+@code{whitespace-cleanup} before saving the current buffer only if the
+whitespace in the buffer was initially clean.")
+ (license license:gpl3+))))
+
(define-public emacs-eimp
(let ((version "1.4.0")
(commit "2e7536fe6d8f7faf1bad7a8ae37faba0162c3b4f")
@@ -8280,6 +8354,56 @@ multiplexer.")
editing RPM spec files.")
(license license:gpl2+)))
+(define-public emacs-lcr
+ (package
+ (name "emacs-lcr")
+ (version "1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jyp/lcr")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0mc55icihxqpf8b05990q1lc2nj2792wcgyr73xsiqx0963sjaj8"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)))
+ (home-page "https://github.com/jyp/lcr")
+ (synopsis "Lightweight coroutines in Emacs Lisp")
+ (description "This package provides macros that can translate code into
+equivalent continuation-passing code, as well as miscellaneous utility
+functions written in continuation-passing style.")
+ (license license:gpl3+)))
+
+(define-public emacs-attrap
+ (let ((commit "3b092bb8f6755a97e6ecb7623b9d2dde58beba4a")
+ (revision "1"))
+ (package
+ (name "emacs-attrap")
+ (version (git-version "1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jyp/attrap")
+ (commit commit)))
+ (sha256
+ (base32
+ "05d32980saji8ja1pcv65l0s3dq7w0n5hpikbf246hciy1x067pp"))
+ (file-name (git-file-name name version))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-dash" ,emacs-dash)
+ ("emacs-f" ,emacs-f)
+ ("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-s" ,emacs-s)))
+ (home-page "https://github.com/jyp/attrap")
+ (synopsis "Fix coding error at point")
+ (description "This package provides a command to fix the Flycheck error
+at point.")
+ (license license:gpl3+))))
+
(define-public emacs-git-messenger
(package
(name "emacs-git-messenger")
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index c3177a0b1c..e6b713465c 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1321,24 +1321,15 @@ a 2D editor view.")
(define-public guile-chickadee
(package
(name "guile-chickadee")
- (version "0.3.0")
+ (version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
- "0jl223dybsj5gvs7z4q60gnafj1b7kgi5mx0kj58m5knrp8qwg5h"))))
+ "1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
(build-system gnu-build-system)
- (arguments
- '(#:make-flags '("GUILE_AUTO_COMPILE=0")
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'patch-godir
- (lambda _
- ;; Install compiled '.go' files into the site directory.
- (substitute* "Makefile.in"
- (("/ccache") "/site-ccache")))))))
(propagated-inputs
`(("guile-opengl" ,guile-opengl)
("guile-sdl2" ,guile-sdl2)))
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index bac5f9d008..cfa392191a 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -447,7 +447,7 @@ from software emulation to complete hardware acceleration for modern GPUs.")
'("src/xdemos/glxdemo" "src/xdemos/glxgears"
"src/xdemos/glxinfo" "src/xdemos/glxheads"))
#t))))))
- (home-page "http://mesa3d.org/")
+ (home-page "https://mesa3d.org/")
(synopsis "Utility tools for Mesa")
(description
"The mesa-utils package contains several utility tools for Mesa: glxdemo,
@@ -619,7 +619,7 @@ OpenGL graphics API.")
`(("unzip" ,unzip)))
(inputs
`(("mesa" ,mesa)))
- (home-page "http://www.lonesock.net/soil.html")
+ (home-page "https://www.lonesock.net/soil.html")
(synopsis "OpenGL texture loading library")
(description
"SOIL is a tiny C library used primarily for uploading textures into
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index f1952be840..43b8934fb2 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4320,15 +4320,15 @@ work and the interface is well tested.")
(define-public eolie
(package
(name "eolie")
- (version "0.9.60")
+ (version "0.9.62")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.gnome.org/World/eolie/"
- "uploads/3b2ceb7eb15860587db6886bfdd8a91e/"
+ "uploads/bb4aad19272cc636bd17f2f6602127fe/"
"eolie-" version ".tar.xz"))
(sha256
(base32
- "1s9gkzxa6457v6bh0q8n1ijq1chd2jwgvhk5kppsnya7kxvsx8qh"))))
+ "06v76hg87fnhw45dil5vvl20myvaa38n1jqsl0lmkkq6af4mk8wx"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
@@ -5881,6 +5881,9 @@ devices using the GNOME desktop.")
(("\"nm-connection-editor")
(string-append "\"" nm-applet
"/bin/nm-connection-editor")))
+ (substitute* '("panels/user-accounts/run-passwd.c")
+ (("/usr/bin/passwd")
+ "/run/setuid-programs/passwd"))
#t))))))
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
index 2ee65015a6..ba8d31eb25 100644
--- a/gnu/packages/gnupg.scm
+++ b/gnu/packages/gnupg.scm
@@ -224,14 +224,14 @@ compatible to GNU Pth.")
(define-public gnupg
(package
(name "gnupg")
- (version "2.2.15")
+ (version "2.2.16")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2"))
(sha256
(base32
- "0m6lyphbb20i84isdxzfhcbzyc682hdrdv4aqkzmhrdksycf536b"))))
+ "1jqlzp9b3kpfp1dkjqskm67jjrhvf9nh3lzf45321p7m9d2qvgkc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 825678bfc6..c2356f2a44 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -426,7 +426,7 @@ from forcing GEXP-PROMISE."
#:system system
#:guile-for-build guile)))
-(define %icecat-version "60.7.0-guix1")
+(define %icecat-version "60.7.0-guix2")
;; 'icecat-source' is a "computed" origin that generates an IceCat tarball
;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat'
@@ -450,7 +450,7 @@ from forcing GEXP-PROMISE."
(base32
"08x0nijh0ja5jza95a8y030ibk756bn7zlw3a3c4750yilfhqpqa"))))
- (upstream-icecat-base-version "60.3.0") ; maybe older than base-version
+ (upstream-icecat-base-version "60.7.0") ; maybe older than base-version
(upstream-icecat-gnu-version "1")
(upstream-icecat-version (string-append upstream-icecat-base-version
"-gnu"
@@ -463,7 +463,7 @@ from forcing GEXP-PROMISE."
"/icecat-" upstream-icecat-version ".tar.bz2"))
(sha256
(base32
- "0icnl64nxcyf7dprpdpygxhabsvyhps8c3ixysj9bcdlj9q34ib1"))))
+ "09xqdfd8rwbn2n6m7n059qf1psbrj5v5kfzm7gg5xng22ddxawv8"))))
(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
(gnuzilla-source
@@ -475,7 +475,7 @@ from forcing GEXP-PROMISE."
(file-name (git-file-name "gnuzilla" upstream-icecat-base-version))
(sha256
(base32
- "19wal7hkbb4wvk40hs6d7a5paal2bfday08hwssm02srcbv48fj0"))))
+ "1vqhb0py28hnwcynbaad304ziciz1kn5bv1qg2q4f7g13js3b1hf"))))
(makeicecat-patch
(local-file (search-patch "icecat-makeicecat.patch"))))
@@ -545,10 +545,6 @@ from forcing GEXP-PROMISE."
#$upstream-icecat-gnu-version "\n"))
(("^DATA=.*")
"DATA=/tmp/gnuzilla/data\n")
- (("^sed .* debian/" all)
- (string-append "echo warning: skipped: " all))
- (("^debian/rules " all)
- (string-append "echo warning: skipped: " all))
(("^find extensions/gnu/ ")
"find extensions/gnu/ | sort ")
(("/bin/sed")
@@ -560,21 +556,19 @@ from forcing GEXP-PROMISE."
(rename-file firefox-dir icecat-dir)
(with-directory-excursion icecat-dir
- (for-each mkdir-p '("l10n" "debian/config"))
- (call-with-output-file "debian/control" (const #t))
+ (mkdir "l10n")
(format #t "Running makeicecat script...~%")
(force-output)
(invoke "bash" "/tmp/gnuzilla/makeicecat")
- (for-each delete-file-recursively '("l10n" "debian")))
+ (delete-file-recursively "l10n"))
- (format #t (string-append "Unpacking l10n/* and debian/* from"
+ (format #t (string-append "Unpacking l10n/* from"
" upstream IceCat tarball...~%"))
(force-output)
(unless (string=? icecat-dir old-icecat-dir)
(symlink icecat-dir old-icecat-dir))
(invoke "tar" "xf" #+upstream-icecat-source
- (string-append old-icecat-dir "/l10n")
- (string-append old-icecat-dir "/debian"))
+ (string-append old-icecat-dir "/l10n"))
(format #t "Packing new IceCat tarball...~%")
(force-output)
@@ -899,43 +893,16 @@ from forcing GEXP-PROMISE."
(add-before 'configure 'install-desktop-entry
(lambda* (#:key outputs #:allow-other-keys)
;; Install the '.desktop' file.
- (define (swallow-%%-directives input output)
- ;; Interpret '%%ifdef' directives found in the '.desktop' file.
- (let loop ((state 'top))
- (match (read-line input 'concat)
- ((? eof-object?)
- #t)
- ((? string? line)
- (cond ((string-prefix? "%%ifdef" line)
- (loop 'ifdef))
- ((string-prefix? "%%else" line)
- (loop 'else))
- ((string-prefix? "%%endif" line)
- (loop 'top))
- (else
- (case state
- ((top else)
- (display line output)
- (loop state))
- (else
- (loop state)))))))))
-
- (let* ((out (assoc-ref outputs "out"))
+ (let* ((desktop-file "taskcluster/docker/icecat-snap/icecat.desktop")
+ (out (assoc-ref outputs "out"))
(applications (string-append out "/share/applications")))
- (call-with-input-file "debian/icecat.desktop.in"
- (lambda (input)
- (call-with-output-file "debian/icecat.desktop"
- (lambda (output)
- (swallow-%%-directives input output)))))
-
- (substitute* "debian/icecat.desktop"
- (("@MOZ_DISPLAY_NAME@")
- "GNU IceCat")
- (("^Exec=@MOZ_APP_NAME@")
- (string-append "Exec=" out "/bin/icecat"))
- (("@MOZ_APP_NAME@")
- "icecat"))
- (install-file "debian/icecat.desktop" applications)
+ (substitute* desktop-file
+ (("^Exec=icecat") (string-append "Exec=" out "/bin/icecat"))
+ (("IceCat") "GNU IceCat")
+ (("Icon=.*") "Icon=icecat\n")
+ (("NewWindow") "new-window")
+ (("NewPrivateWindow") "new-private-window"))
+ (install-file desktop-file applications)
#t)))
(add-after 'install-desktop-entry 'install-icons
(lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 18013a4450..2f5396dd1e 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -1914,7 +1914,7 @@ values.")
(define-public go-github-com-mattn-go-isatty
(package
(name "go-github-com-mattn-go-isatty")
- (version "0.0.4")
+ (version "0.0.7")
(source
(origin
(method git-fetch)
@@ -1924,8 +1924,10 @@ values.")
(file-name (git-file-name name version))
(sha256
(base32
- "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
+ "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"))))
(build-system go-build-system)
+ (propagated-inputs
+ `(("go-golang-org-x-sys-unix" ,go-golang-org-x-sys-unix)))
(arguments
'(#:import-path "github.com/mattn/go-isatty"))
(home-page "https://github.com/mattn/go-isatty")
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 43bdcab263..aee908a6f5 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2238,20 +2238,20 @@ list of components. This module takes care of that for you.")
(license license:lgpl3+)))
(define-public guile-gi
- (let ((commit "91753258892c4a1fbf7ed43ff793a00ac0f77cf6")
- (revision "0"))
+ (let ((commit "26e885219ae6b31a83766564a2ecfe8c4532346f")
+ (revision "1"))
(package
(name "guile-gi")
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/janneke/guile-gi.git")
+ (url "https://github.com/spk121/guile-gi.git")
(commit commit)))
(file-name (string-append name "-" version))
(sha256
(base32
- "1i76jfs90p8pbx0bfrjd4sias9380pmjb9x387rx7hav4kvnsd1b"))))
+ "1prbzhr4sqqihb34l6yfrz6sd8nghwd3q9wvbm36jnl2n3z2nxj8"))))
(build-system gnu-build-system)
(native-inputs `(("autoconf" ,autoconf)
("automake" ,automake)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 822b0499b6..06e255fdcf 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
+;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -6951,7 +6952,7 @@ upon it.")
(define-public ghc-conduit-extra
(package
(name "ghc-conduit-extra")
- (version "1.3.0")
+ (version "1.3.1.1")
(source
(origin
(method url-fetch)
@@ -6960,7 +6961,7 @@ upon it.")
version ".tar.gz"))
(sha256
(base32
- "1bi2b6kdzy5f9glq46jzsk02has95jkxqz0cchpbmnakzhjwjh9c"))))
+ "0jaj350vv6mbb26gdwcqz4gwzfzrjydv5pis2da49wz1npbakcfw"))))
(build-system haskell-build-system)
(inputs
`(("ghc-conduit" ,ghc-conduit)
diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm
index bb96fd6abf..7982a12dfd 100644
--- a/gnu/packages/libevent.scm
+++ b/gnu/packages/libevent.scm
@@ -58,7 +58,7 @@
`(("python" ,python-2))) ; for 'event_rpcgen.py'
(native-inputs
`(("which" ,which)))
- (home-page "http://libevent.org/")
+ (home-page "https://libevent.org/")
(synopsis "Event notification library")
(description
"The libevent API provides a mechanism to execute a callback
@@ -72,27 +72,6 @@ then add or remove events dynamically without having to change the event
loop.")
(license bsd-3)))
-(define-public libevent-2.0
- (package
- (inherit libevent)
- (version "2.0.22")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/libevent/libevent/releases/download/release-"
- version "-stable/libevent-" version "-stable.tar.gz"))
- (sha256
- (base32
- "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki"))
- (patches
- (search-patches
- "libevent-dns-tests.patch"
- "libevent-2.0-CVE-2016-10195.patch"
- "libevent-2.0-CVE-2016-10196.patch"
- "libevent-2.0-CVE-2016-10197.patch"
- "libevent-2.0-evbuffer-add-use-last-with-datap.patch"))))
- (arguments '())))
-
(define-public libev
(package
(name "libev")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 62f9b12ae5..6368359969 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -430,8 +430,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
It has been modified to remove all non-free binary blobs.")
(license license:gpl2)))
-(define %linux-libre-version "5.1.6")
-(define %linux-libre-hash "0m7yi23wlgrh16z5z9dxb7dd64i2irrkdwxi71i88mradn55iq42")
+(define %linux-libre-version "5.1.7")
+(define %linux-libre-hash "0hr4sbapdpgdkb6xg1f7bpc31242yiqdvy5sfpymsrzfslr8vwy1")
(define %linux-libre-5.1-patches
(list %boot-logo-patch
@@ -448,8 +448,8 @@ It has been modified to remove all non-free binary blobs.")
(make-linux-libre-headers %linux-libre-version
%linux-libre-hash))
-(define %linux-libre-4.19-version "4.19.47")
-(define %linux-libre-4.19-hash "155rn6f555d2r1bqzi74zdif44ay7gk25xxjgw36s9n26dml8wf7")
+(define %linux-libre-4.19-version "4.19.48")
+(define %linux-libre-4.19-hash "04jwwzc9wbhx33i4bhm3vbs52vxlb8kjdmfjpfild94xbk8m2wy4")
(define %linux-libre-4.19-patches
(list %boot-logo-patch
@@ -957,7 +957,7 @@ slabtop, and skill.")
(define-public e2fsprogs
(package
(name "e2fsprogs")
- (version "1.44.5")
+ (version "1.45.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -966,7 +966,7 @@ slabtop, and skill.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1ff56h6h1h17sj2zvlddv5c88nmbx46p1fcbh6b0s5k9kl3b6pms"))))
+ "02g0cm72sgz709s9pkg4mvj56m7bgs7rwnyc2cp7cvg3j6pcjlj9"))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(native-inputs `(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 114ef32a9d..4edc62ed1d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -351,14 +351,14 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.11.4")
+ (version "1.12.0")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
"mutt-" version ".tar.gz"))
(sha256
(base32
- "0098pr4anmq2a0id8wfi2vci3cgcfwf9k4q411w22xn8lrz3aldn"))
+ "13zr2fpql33sdbsjsiaa952js5bvphc1x4lqsj36qyzdhj3l84na"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 4741a0d5ec..a0a077cf99 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2760,7 +2760,7 @@ to BMP, JPEG or PNG image formats.")
(define-public maxima
(package
(name "maxima")
- (version "5.42.2")
+ (version "5.43.0")
(source
(origin
(method url-fetch)
@@ -2768,7 +2768,7 @@ to BMP, JPEG or PNG image formats.")
version "-source/" name "-" version ".tar.gz"))
(sha256
(base32
- "0kdncy6137sg3rradirxzj10mkcvafxd892zlclwhr9sa7b12zhn"))
+ "0xyahp4c6509haxh4n1swiqm3421gplkdisa0zypclh3252sbzfw"))
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
(build-system gnu-build-system)
(inputs
@@ -2802,11 +2802,18 @@ to BMP, JPEG or PNG image formats.")
(let* ((sed (string-append (assoc-ref inputs "sed") "/bin/sed"))
(coreutils (assoc-ref inputs "coreutils"))
(dirname (string-append coreutils "/bin/dirname"))
- (head (string-append coreutils "/bin/head")))
+ (head (string-append coreutils "/bin/head"))
+ (perl (string-append (assoc-ref inputs "perl") "/bin/perl"))
+ (python (string-append (assoc-ref inputs "python")
+ "/bin/python3")))
(substitute* "src/maxima.in"
(("sed ") (string-append sed " "))
(("dirname") dirname)
(("head") head))
+ (substitute* "doc/info/Makefile.in"
+ (("/usr/bin/env perl") perl))
+ (substitute* "doc/info/build_html.sh.in"
+ (("python") python))
#t)))
(add-before 'check 'pre-check
(lambda _
@@ -2838,9 +2845,6 @@ to BMP, JPEG or PNG image formats.")
(mkdir-p "share/emacs")
(mkdir-p "share/doc")
(symlink
- (string-append datadir "/emacs/")
- (string-append out "/share/emacs/site-lisp"))
- (symlink
(string-append datadir "/doc/")
(string-append out "/share/doc/maxima"))
(with-atomic-file-replacement
@@ -2871,7 +2875,7 @@ point numbers.")
(define-public wxmaxima
(package
(name "wxmaxima")
- (version "19.03.1")
+ (version "19.05.7")
(source
(origin
(method git-fetch)
@@ -2881,7 +2885,7 @@ point numbers.")
(file-name (git-file-name name version))
(sha256
(base32
- "1qkf4jg86xnn3wk3782ffmfz12axb92dkjagcz3ffzw2wi1rclml"))))
+ "0zaz71fh156b9inrxf86scnix247al5pl9v18cxhjxcm0lanqxdp"))))
(build-system cmake-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)))
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index f631dbd7c6..1d75592795 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -91,7 +91,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
- (version "0.21.8")
+ (version "0.21.9")
(source (origin
(method url-fetch)
(uri
@@ -100,7 +100,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "0mwpkbjsljj1khlnnjanvw3pgxbhsdl0bh2k9bxnpijn2gqq7q13"))))
+ "0ghda8g9q0bi6nrvl6n756d8f45spqpblkh77mnb4k9gmiv57qir"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=true") ; The default is 'false'...
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index bb11154978..2ea65f270c 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -1485,15 +1485,15 @@ procedure calls (RPCs).")
(define-public openvswitch
(package
(name "openvswitch")
- (version "2.10.1")
+ (version "2.11.1")
(source (origin
(method url-fetch)
(uri (string-append
- "http://openvswitch.org/releases/openvswitch-"
+ "https://www.openvswitch.org/releases/openvswitch-"
version ".tar.gz"))
(sha256
(base32
- "103wi6k8xal0z1pyy680gms56skagh6jawa2ja588ljr55jcg4sg"))))
+ "1p5mv44jaslvrr1ym15smqna19y0gi4vqcsyj58625vv9bj6laf1"))))
(build-system gnu-build-system)
(arguments
'(;; FIXME: many tests fail with:
@@ -1529,7 +1529,7 @@ procedure calls (RPCs).")
`(("libcap-ng" ,libcap-ng)
("openssl" ,openssl)))
(synopsis "Virtual network switch")
- (home-page "http://www.openvswitch.org/")
+ (home-page "https://www.openvswitch.org/")
(description
"Open vSwitch is a multilayer virtual switch. It is designed to enable
massive network automation through programmatic extension, while still
diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm
index 19595a2a62..ed890f73c3 100644
--- a/gnu/packages/password-utils.scm
+++ b/gnu/packages/password-utils.scm
@@ -310,6 +310,15 @@ and vice versa.")
(sha256
(base32 "1rimpjsdnmw8f5b7k558cic41p2qy2n2yrlqp5vh7mp4162hk0py"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-dict
+ (lambda* (#:key make-flags #:allow-other-keys)
+ (begin
+ (chmod (string-append "util/cracklib-format") #o755)
+ (apply invoke "make" "dict" make-flags)
+ #t))))))
(synopsis "Password checking library")
(home-page "https://github.com/cracklib/cracklib")
(description
diff --git a/gnu/packages/patches/borg-fix-hard-link-preloading.patch b/gnu/packages/patches/borg-fix-hard-link-preloading.patch
deleted file mode 100644
index 92a4e22674..0000000000
--- a/gnu/packages/patches/borg-fix-hard-link-preloading.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-Fix a bug that would cause the test suite to hang:
-
-https://github.com/borgbackup/borg/issues/4350
-
-Patch copied from upstream source repository:
-
-https://github.com/borgbackup/borg/commit/18242ab9e2f26c450b8507aa1d5eceadab8ad027
-
-From 18242ab9e2f26c450b8507aa1d5eceadab8ad027 Mon Sep 17 00:00:00 2001
-From: Thomas Waldmann <tw@waldmann-edv.de>
-Date: Thu, 2 May 2019 21:02:26 +0200
-Subject: [PATCH] preload chunks for hardlink slaves w/o preloaded master,
- fixes #4350
-
-also split the hardlink extraction test into 2 tests.
-
-(cherry picked from commit f33f318d816505161d1449a02ddfdeb97d6fe80a)
----
- src/borg/archive.py | 42 +++++++++++++++++++++++++++++-----
- src/borg/archiver.py | 5 ++--
- src/borg/testsuite/archiver.py | 20 +++++++++-------
- 3 files changed, 51 insertions(+), 16 deletions(-)
-
-diff --git a/src/borg/archive.py b/src/borg/archive.py
-index adc1f42c..0793672a 100644
---- a/src/borg/archive.py
-+++ b/src/borg/archive.py
-@@ -192,7 +192,7 @@ def __init__(self, repository, key):
- self.repository = repository
- self.key = key
-
-- def unpack_many(self, ids, filter=None, preload=False):
-+ def unpack_many(self, ids, filter=None, partial_extract=False, preload=False, hardlink_masters=None):
- """
- Return iterator of items.
-
-@@ -209,12 +209,40 @@ def unpack_many(self, ids, filter=None, preload=False):
- for item in items:
- if 'chunks' in item:
- item.chunks = [ChunkListEntry(*e) for e in item.chunks]
-+
-+ def preload(chunks):
-+ self.repository.preload([c.id for c in chunks])
-+
- if filter:
- items = [item for item in items if filter(item)]
-+
- if preload:
-- for item in items:
-- if 'chunks' in item:
-- self.repository.preload([c.id for c in item.chunks])
-+ if filter and partial_extract:
-+ # if we do only a partial extraction, it gets a bit
-+ # complicated with computing the preload items: if a hardlink master item is not
-+ # selected (== not extracted), we will still need to preload its chunks if a
-+ # corresponding hardlink slave is selected (== is extracted).
-+ # due to a side effect of the filter() call, we now have hardlink_masters dict populated.
-+ masters_preloaded = set()
-+ for item in items:
-+ if 'chunks' in item: # regular file, maybe a hardlink master
-+ preload(item.chunks)
-+ # if this is a hardlink master, remember that we already preloaded it:
-+ if 'source' not in item and hardlinkable(item.mode) and item.get('hardlink_master', True):
-+ masters_preloaded.add(item.path)
-+ elif 'source' in item and hardlinkable(item.mode): # hardlink slave
-+ source = item.source
-+ if source not in masters_preloaded:
-+ # we only need to preload *once* (for the 1st selected slave)
-+ chunks, _ = hardlink_masters[source]
-+ preload(chunks)
-+ masters_preloaded.add(source)
-+ else:
-+ # easy: we do not have a filter, thus all items are selected, thus we need to preload all chunks.
-+ for item in items:
-+ if 'chunks' in item:
-+ preload(item.chunks)
-+
- for item in items:
- yield item
-
-@@ -433,8 +461,10 @@ def item_filter(self, item, filter=None):
- return False
- return filter(item) if filter else True
-
-- def iter_items(self, filter=None, preload=False):
-- for item in self.pipeline.unpack_many(self.metadata.items, preload=preload,
-+ def iter_items(self, filter=None, partial_extract=False, preload=False, hardlink_masters=None):
-+ assert not (filter and partial_extract and preload) or hardlink_masters is not None
-+ for item in self.pipeline.unpack_many(self.metadata.items, partial_extract=partial_extract,
-+ preload=preload, hardlink_masters=hardlink_masters,
- filter=lambda item: self.item_filter(item, filter)):
- yield item
-
-diff --git a/src/borg/archiver.py b/src/borg/archiver.py
-index 957959d6..dcc20455 100644
---- a/src/borg/archiver.py
-+++ b/src/borg/archiver.py
-@@ -755,7 +755,8 @@ def peek_and_store_hardlink_masters(item, matched):
- else:
- pi = None
-
-- for item in archive.iter_items(filter, preload=True):
-+ for item in archive.iter_items(filter, partial_extract=partial_extract,
-+ preload=True, hardlink_masters=hardlink_masters):
- orig_path = item.path
- if strip_components:
- item.path = os.sep.join(orig_path.split(os.sep)[strip_components:])
-@@ -997,7 +998,7 @@ def item_to_tarinfo(item, original_path):
- return None, stream
- return tarinfo, stream
-
-- for item in archive.iter_items(filter, preload=True):
-+ for item in archive.iter_items(filter, preload=True, hardlink_masters=hardlink_masters):
- orig_path = item.path
- if strip_components:
- item.path = os.sep.join(orig_path.split(os.sep)[strip_components:])
-diff --git a/src/borg/testsuite/archiver.py b/src/borg/testsuite/archiver.py
-index c35ad800..935b3d79 100644
---- a/src/borg/testsuite/archiver.py
-+++ b/src/borg/testsuite/archiver.py
-@@ -823,7 +823,18 @@ def test_mount_hardlinks(self):
- assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
-
- @requires_hardlinks
-- def test_extract_hardlinks(self):
-+ def test_extract_hardlinks1(self):
-+ self._extract_hardlinks_setup()
-+ with changedir('output'):
-+ self.cmd('extract', self.repository_location + '::test')
-+ assert os.stat('input/source').st_nlink == 4
-+ assert os.stat('input/abba').st_nlink == 4
-+ assert os.stat('input/dir1/hardlink').st_nlink == 4
-+ assert os.stat('input/dir1/subdir/hardlink').st_nlink == 4
-+ assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
-+
-+ @requires_hardlinks
-+ def test_extract_hardlinks2(self):
- self._extract_hardlinks_setup()
- with changedir('output'):
- self.cmd('extract', self.repository_location + '::test', '--strip-components', '2')
-@@ -839,13 +850,6 @@ def test_extract_hardlinks(self):
- assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
- assert os.stat('input/dir1/aaaa').st_nlink == 2
- assert os.stat('input/dir1/source2').st_nlink == 2
-- with changedir('output'):
-- self.cmd('extract', self.repository_location + '::test')
-- assert os.stat('input/source').st_nlink == 4
-- assert os.stat('input/abba').st_nlink == 4
-- assert os.stat('input/dir1/hardlink').st_nlink == 4
-- assert os.stat('input/dir1/subdir/hardlink').st_nlink == 4
-- assert open('input/dir1/subdir/hardlink', 'rb').read() == b'123456'
-
- def test_extract_include_exclude(self):
- self.cmd('init', '--encryption=repokey', self.repository_location)
---
-2.21.0
-
diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch
index 2a11bf0b70..7d4f774c83 100644
--- a/gnu/packages/patches/icecat-makeicecat.patch
+++ b/gnu/packages/patches/icecat-makeicecat.patch
@@ -3,10 +3,10 @@ in a snippet without network access. After this patch is applied, some
additional changes will be made using 'substitute*'.
diff --git a/makeicecat b/makeicecat
-index aa46b94..db27a86 100644
+index 5a4390b..fcfa143 100644
--- a/makeicecat
+++ b/makeicecat
-@@ -36,75 +36,75 @@ export DEBFULLNAME="Ruben Rodriguez"
+@@ -29,55 +29,55 @@ SOURCEDIR=icecat-$FFVERSION
DATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/data
@@ -25,6 +25,7 @@ index aa46b94..db27a86 100644
-wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
-gpg --recv-keys --keyserver keyserver.ubuntu.com 24C6F355
-gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
+-echo -n 0a5f0c1d8d1e9443d85083d37fec32e5cc15c1001ea992d49745490065b4a023 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
-
-echo Extracting Firefox tarball
-tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -36,6 +37,7 @@ index aa46b94..db27a86 100644
+# wget -N https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FFVERSION}esr/source/firefox-${FFVERSION}esr.source.tar.xz.asc
+# gpg --recv-keys --keyserver keyserver.ubuntu.com 24C6F355
+# gpg --verify firefox-${FFVERSION}esr.source.tar.xz.asc
++# echo -n 0a5f0c1d8d1e9443d85083d37fec32e5cc15c1001ea992d49745490065b4a023 firefox-${FFVERSION}esr.source.tar.xz |sha256sum -c -
+#
+# echo Extracting Firefox tarball
+# tar -xf firefox-${FFVERSION}esr.source.tar.xz
@@ -43,43 +45,6 @@ index aa46b94..db27a86 100644
+# mv firefox-${FFVERSION} $SOURCEDIR
###############################################################################
- # Retrieve /debian from Ubuntu
- ###############################################################################
-
--rm -rf firefox.$CODENAME
--bzr branch https://code.launchpad.net/~mozillateam/firefox/firefox.$CODENAME
--cd firefox.$CODENAME
--bzr revert -r$REVISION
--echo '3.0 (native)' > debian/source/format
--
--for PATCH in ubuntu-bookmarks.patch ubuntu-ua-string-changes.patch unity-menubar.patch ubuntu-search-defaults.patch fix-make-package-tests-without-webrtc.patch revert-upstream-search-engine-changes.patch
--do
-- rm debian/patches/$PATCH
-- sed "/$PATCH/d" -i debian/patches/series
--done
--sed "/test-/d" -i debian/patches/series
--cd ..
--
--mv firefox.$CODENAME/debian $SOURCEDIR
--rm -rf firefox.$CODENAME
-+# rm -rf firefox.$CODENAME
-+# bzr branch https://code.launchpad.net/~mozillateam/firefox/firefox.$CODENAME
-+# cd firefox.$CODENAME
-+# bzr revert -r$REVISION
-+# echo '3.0 (native)' > debian/source/format
-+#
-+# for PATCH in ubuntu-bookmarks.patch ubuntu-ua-string-changes.patch unity-menubar.patch ubuntu-search-defaults.patch fix-make-package-tests-without-webrtc.patch revert-upstream-search-engine-changes.patch
-+# do
-+# rm debian/patches/$PATCH
-+# sed "/$PATCH/d" -i debian/patches/series
-+# done
-+# sed "/test-/d" -i debian/patches/series
-+# cd ..
-+#
-+# mv firefox.$CODENAME/debian $SOURCEDIR
-+# rm -rf firefox.$CODENAME
-
- ###############################################################################
# Retrieve l10n
###############################################################################
@@ -133,19 +98,10 @@ index aa46b94..db27a86 100644
#for patch in $DATA/patches/*; do
# echo Patching with file: $patch
-@@ -720,7 +720,7 @@ debian/rules debian/control
- touch -d "yesterday" debian/control
- debian/rules debian/control
-
--echo | dch -b -D stable -v "$ICECATVERSION" "Converted into IceCat (http://www.gnu.org/software/gnuzilla/)"
-+# echo | dch -b -D stable -v "$ICECATVERSION" "Converted into IceCat (http://www.gnu.org/software/gnuzilla/)"
- sed "1s/firefox/icecat/" -i debian/changelog
-
- touch configure js/src/configure
-@@ -734,6 +734,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
+@@ -590,6 +590,6 @@ sed 's/777/755/;' -i toolkit/crashreporter/google-breakpad/Makefile.in
+ # Fix CVE-2012-3386
/bin/sed 's/chmod a+w/chmod u+w/' -i ./js/src/ctypes/libffi/Makefile.in ./toolkit/crashreporter/google-breakpad/Makefile.in ./toolkit/crashreporter/google-breakpad/src/third_party/glog/Makefile.in || true
-
-cd ..
-echo Packaging tarball
-tar cfj icecat-$ICECATVERSION.tar.bz2 $SOURCEDIR
diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch
deleted file mode 100644
index bffe2c454c..0000000000
--- a/gnu/packages/patches/libevent-2.0-CVE-2016-10195.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fix CVE-2016-10195 (buffer overread in libevent's DNS code):
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10195
-https://github.com/libevent/libevent/issues/317
-
-Patch copied from upstream source repository:
-
-https://github.com/libevent/libevent/commit/96f64a022014a208105ead6c8a7066018449d86d
-
-From 3c570970516f48da35f42fef98276531fcc0abaa Mon Sep 17 00:00:00 2001
-From: Azat Khuzhin <a3at.mail@gmail.com>
-Date: Mon, 1 Feb 2016 17:32:09 +0300
-Subject: [PATCH] evdns: name_parse(): fix remote stack overread
-
----
- evdns.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/evdns.c b/evdns.c
-index 60b10485..137c24ea 100644
---- a/evdns.c
-+++ b/evdns.c
-@@ -960,7 +960,6 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) {
-
- for (;;) {
- u8 label_len;
-- if (j >= length) return -1;
- GET8(label_len);
- if (!label_len) break;
- if (label_len & 0xc0) {
-@@ -981,6 +980,7 @@ name_parse(u8 *packet, int length, int *idx, char *name_out, int name_out_len) {
- *cp++ = '.';
- }
- if (cp + label_len >= end) return -1;
-+ if (j + label_len > length) return -1;
- memcpy(cp, packet + j, label_len);
- cp += label_len;
- j += label_len;
---
-2.11.0
-
diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch
deleted file mode 100644
index 03f96e938b..0000000000
--- a/gnu/packages/patches/libevent-2.0-CVE-2016-10196.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fix CVE-2016-10196 (buffer overflow in evutil):
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10196
-https://github.com/libevent/libevent/issues/318
-
-Patch copied from upstream source repository:
-
-https://github.com/libevent/libevent/commit/329acc18a0768c21ba22522f01a5c7f46cacc4d5
-
-From 28bdc2f3f62259d21ccaf7be2b60ef0a53e6f342 Mon Sep 17 00:00:00 2001
-From: Azat Khuzhin <a3at.mail@gmail.com>
-Date: Sun, 31 Jan 2016 00:57:16 +0300
-Subject: [PATCH] evutil_parse_sockaddr_port(): fix buffer overflow
-
----
- evutil.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/evutil.c b/evutil.c
-index 33445170..e2dfe6e4 100644
---- a/evutil.c
-+++ b/evutil.c
-@@ -1808,12 +1808,12 @@ evutil_parse_sockaddr_port(const char *ip_as_string, struct sockaddr *out, int *
-
- cp = strchr(ip_as_string, ':');
- if (*ip_as_string == '[') {
-- int len;
-+ size_t len;
- if (!(cp = strchr(ip_as_string, ']'))) {
- return -1;
- }
-- len = (int) ( cp-(ip_as_string + 1) );
-- if (len > (int)sizeof(buf)-1) {
-+ len = ( cp-(ip_as_string + 1) );
-+ if (len > sizeof(buf)-1) {
- return -1;
- }
- memcpy(buf, ip_as_string+1, len);
---
-2.11.0
-
diff --git a/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch b/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch
deleted file mode 100644
index c62a328627..0000000000
--- a/gnu/packages/patches/libevent-2.0-CVE-2016-10197.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Fix CVE-2016-10197 (out of bounds read on empty hostnames in evdns):
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10197
-https://github.com/libevent/libevent/issues/332
-
-Patch copied from upstream source repository:
-
-https://github.com/libevent/libevent/commit/ec65c42052d95d2c23d1d837136d1cf1d9ecef9e
-
-From a0305cec166a5bc89f1eb362510cc4cd25ecc0bc Mon Sep 17 00:00:00 2001
-From: Azat Khuzhin <a3at.mail@gmail.com>
-Date: Fri, 25 Mar 2016 00:33:47 +0300
-Subject: [PATCH] evdns: fix searching empty hostnames
-
----
- evdns.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/evdns.c b/evdns.c
-index 137c24ea..6191c677 100644
---- a/evdns.c
-+++ b/evdns.c
-@@ -3122,9 +3122,12 @@ search_set_from_hostname(struct evdns_base *base) {
- static char *
- search_make_new(const struct search_state *const state, int n, const char *const base_name) {
- const size_t base_len = strlen(base_name);
-- const char need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1;
-+ char need_to_append_dot;
- struct search_domain *dom;
-
-+ if (!base_len) return NULL;
-+ need_to_append_dot = base_name[base_len - 1] == '.' ? 0 : 1;
-+
- for (dom = state->head; dom; dom = dom->next) {
- if (!n--) {
- /* this is the postfix we want */
---
-2.11.0
-
diff --git a/gnu/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch b/gnu/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch
deleted file mode 100644
index 0253700bf6..0000000000
--- a/gnu/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From a8769ef12d7e223e33fc47bed03fba2bfa2f3536 Mon Sep 17 00:00:00 2001
-From: Marcus Sundberg <marcus@marcussundberg.com>
-Date: Sat, 26 Mar 2016 20:11:43 +0100
-Subject: [PATCH] evbuffer_add: Use last_with_datap if set, not last.
-
-evbuffer_add() would always put data in the last chain, even if there
-was available space in a previous chain, and in doing so it also
-failed to update last_with_datap, causing subsequent calls to other
-functions that do look at last_with_datap to add data in the middle
-of the evbuffer instead of at the end.
-
-Fixes the evbuffer_add() part of issue #335, and the evbuffer/add2 and
-evbuffer/add3 tests, and also prevents wasting space available in the
-chain pointed to by last_with_datap.
----
- buffer.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/buffer.c b/buffer.c
-index 7cca0e8a..f378b731 100644
---- a/buffer.c
-+++ b/buffer.c
-@@ -1732,7 +1732,11 @@ evbuffer_add(struct evbuffer *buf, const void *data_in, size_t datlen)
- goto done;
- }
-
-- chain = buf->last;
-+ if (*buf->last_with_datap == NULL) {
-+ chain = buf->last;
-+ } else {
-+ chain = *buf->last_with_datap;
-+ }
-
- /* If there are no chains allocated for this buffer, allocate one
- * big enough to hold all the data. */
---
-2.12.0
-
diff --git a/gnu/packages/patches/libevent-dns-tests.patch b/gnu/packages/patches/libevent-dns-tests.patch
deleted file mode 100644
index 6ff8aaaa7b..0000000000
--- a/gnu/packages/patches/libevent-dns-tests.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Disable tests that rely on usable DNS lookups, which aren't available
-in build chroots.
-
---- libevent-2.0.21-stable/test/regress_dns.c 2013-01-20 22:32:09.000000000 +0100
-+++ libevent-2.0.21-stable/test/regress_dns.c 2013-01-20 22:32:30.000000000 +0100
-@@ -1827,10 +1827,6 @@ end:
-
- struct testcase_t dns_testcases[] = {
- DNS_LEGACY(server, TT_FORK|TT_NEED_BASE),
-- DNS_LEGACY(gethostbyname, TT_FORK|TT_NEED_BASE|TT_NEED_DNS),
-- DNS_LEGACY(gethostbyname6, TT_FORK|TT_NEED_BASE|TT_NEED_DNS),
-- DNS_LEGACY(gethostbyaddr, TT_FORK|TT_NEED_BASE|TT_NEED_DNS),
-- { "resolve_reverse", dns_resolve_reverse, TT_FORK, NULL, NULL },
- { "search", dns_search_test, TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
- { "search_cancel", dns_search_cancel_test,
- TT_FORK|TT_NEED_BASE, &basic_setup, NULL },
diff --git a/gnu/packages/patches/polkit-CVE-2018-19788.patch b/gnu/packages/patches/polkit-CVE-2018-19788.patch
deleted file mode 100644
index 58cde6c5dc..0000000000
--- a/gnu/packages/patches/polkit-CVE-2018-19788.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-Fix CVE-2018-19788:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-19788
-https://gitlab.freedesktop.org/polkit/polkit/issues/74
-
-Patch copied from upstream source repository:
-
-https://gitlab.freedesktop.org/polkit/polkit/commit/2cb40c4d5feeaa09325522bd7d97910f1b59e379
-
-From 2cb40c4d5feeaa09325522bd7d97910f1b59e379 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
-Date: Mon, 3 Dec 2018 10:28:58 +0100
-Subject: [PATCH] Allow negative uids/gids in PolkitUnixUser and Group objects
-
-(uid_t) -1 is still used as placeholder to mean "unset". This is OK, since
-there should be no users with such number, see
-https://systemd.io/UIDS-GIDS#special-linux-uids.
-
-(uid_t) -1 is used as the default value in class initialization.
-
-When a user or group above INT32_MAX is created, the numeric uid or
-gid wraps around to negative when the value is assigned to gint, and
-polkit gets confused. Let's accept such gids, except for -1.
-
-A nicer fix would be to change the underlying type to e.g. uint32 to
-not have negative values. But this cannot be done without breaking the
-API, so likely new functions will have to be added (a
-polkit_unix_user_new variant that takes a unsigned, and the same for
-_group_new, _set_uid, _get_uid, _set_gid, _get_gid, etc.). This will
-require a bigger patch.
-
-Fixes https://gitlab.freedesktop.org/polkit/polkit/issues/74.
----
- src/polkit/polkitunixgroup.c | 15 +++++++++++----
- src/polkit/polkitunixprocess.c | 12 ++++++++----
- src/polkit/polkitunixuser.c | 13 ++++++++++---
- 3 files changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/src/polkit/polkitunixgroup.c b/src/polkit/polkitunixgroup.c
-index c57a1aa..309f689 100644
---- a/src/polkit/polkitunixgroup.c
-+++ b/src/polkit/polkitunixgroup.c
-@@ -71,6 +71,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixGroup, polkit_unix_group, G_TYPE_OBJECT,
- static void
- polkit_unix_group_init (PolkitUnixGroup *unix_group)
- {
-+ unix_group->gid = -1; /* (git_t) -1 is not a valid GID under Linux */
- }
-
- static void
-@@ -100,11 +101,14 @@ polkit_unix_group_set_property (GObject *object,
- GParamSpec *pspec)
- {
- PolkitUnixGroup *unix_group = POLKIT_UNIX_GROUP (object);
-+ gint val;
-
- switch (prop_id)
- {
- case PROP_GID:
-- unix_group->gid = g_value_get_int (value);
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ unix_group->gid = val;
- break;
-
- default:
-@@ -131,9 +135,9 @@ polkit_unix_group_class_init (PolkitUnixGroupClass *klass)
- g_param_spec_int ("gid",
- "Group ID",
- "The UNIX group ID",
-- 0,
-+ G_MININT,
- G_MAXINT,
-- 0,
-+ -1,
- G_PARAM_CONSTRUCT |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
-@@ -166,9 +170,10 @@ polkit_unix_group_get_gid (PolkitUnixGroup *group)
- */
- void
- polkit_unix_group_set_gid (PolkitUnixGroup *group,
-- gint gid)
-+ gint gid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_GROUP (group));
-+ g_return_if_fail (gid != -1);
- group->gid = gid;
- }
-
-@@ -183,6 +188,8 @@ polkit_unix_group_set_gid (PolkitUnixGroup *group,
- PolkitIdentity *
- polkit_unix_group_new (gint gid)
- {
-+ g_return_val_if_fail (gid != -1, NULL);
-+
- return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_GROUP,
- "gid", gid,
- NULL));
-diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c
-index 972b777..b02b258 100644
---- a/src/polkit/polkitunixprocess.c
-+++ b/src/polkit/polkitunixprocess.c
-@@ -159,9 +159,14 @@ polkit_unix_process_set_property (GObject *object,
- polkit_unix_process_set_pid (unix_process, g_value_get_int (value));
- break;
-
-- case PROP_UID:
-- polkit_unix_process_set_uid (unix_process, g_value_get_int (value));
-+ case PROP_UID: {
-+ gint val;
-+
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ polkit_unix_process_set_uid (unix_process, val);
- break;
-+ }
-
- case PROP_START_TIME:
- polkit_unix_process_set_start_time (unix_process, g_value_get_uint64 (value));
-@@ -239,7 +244,7 @@ polkit_unix_process_class_init (PolkitUnixProcessClass *klass)
- g_param_spec_int ("uid",
- "User ID",
- "The UNIX user ID",
-- -1,
-+ G_MININT,
- G_MAXINT,
- -1,
- G_PARAM_CONSTRUCT |
-@@ -303,7 +308,6 @@ polkit_unix_process_set_uid (PolkitUnixProcess *process,
- gint uid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_PROCESS (process));
-- g_return_if_fail (uid >= -1);
- process->uid = uid;
- }
-
-diff --git a/src/polkit/polkitunixuser.c b/src/polkit/polkitunixuser.c
-index 8bfd3a1..234a697 100644
---- a/src/polkit/polkitunixuser.c
-+++ b/src/polkit/polkitunixuser.c
-@@ -72,6 +72,7 @@ G_DEFINE_TYPE_WITH_CODE (PolkitUnixUser, polkit_unix_user, G_TYPE_OBJECT,
- static void
- polkit_unix_user_init (PolkitUnixUser *unix_user)
- {
-+ unix_user->uid = -1; /* (uid_t) -1 is not a valid UID under Linux */
- unix_user->name = NULL;
- }
-
-@@ -112,11 +113,14 @@ polkit_unix_user_set_property (GObject *object,
- GParamSpec *pspec)
- {
- PolkitUnixUser *unix_user = POLKIT_UNIX_USER (object);
-+ gint val;
-
- switch (prop_id)
- {
- case PROP_UID:
-- unix_user->uid = g_value_get_int (value);
-+ val = g_value_get_int (value);
-+ g_return_if_fail (val != -1);
-+ unix_user->uid = val;
- break;
-
- default:
-@@ -144,9 +148,9 @@ polkit_unix_user_class_init (PolkitUnixUserClass *klass)
- g_param_spec_int ("uid",
- "User ID",
- "The UNIX user ID",
-- 0,
-+ G_MININT,
- G_MAXINT,
-- 0,
-+ -1,
- G_PARAM_CONSTRUCT |
- G_PARAM_READWRITE |
- G_PARAM_STATIC_NAME |
-@@ -182,6 +186,7 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
- gint uid)
- {
- g_return_if_fail (POLKIT_IS_UNIX_USER (user));
-+ g_return_if_fail (uid != -1);
- user->uid = uid;
- }
-
-@@ -196,6 +201,8 @@ polkit_unix_user_set_uid (PolkitUnixUser *user,
- PolkitIdentity *
- polkit_unix_user_new (gint uid)
- {
-+ g_return_val_if_fail (uid != -1, NULL);
-+
- return POLKIT_IDENTITY (g_object_new (POLKIT_TYPE_UNIX_USER,
- "uid", uid,
- NULL));
---
-2.18.1
-
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 2bf53d1c1e..b2e3edca18 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -132,14 +132,14 @@ data as produced by digital cameras.")
(define-public libgphoto2
(package
(name "libgphoto2")
- (version "2.5.22")
+ (version "2.5.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
version "/libgphoto2-" version ".tar.bz2"))
(sha256
(base32
- "0n6f6nagys775ib483nka1sbclhkm1dz3n5z3lgaz1m9m5x35mqm"))))
+ "0bc5x2bkqbfi4hbkz8ab5xc0bkks9vvks1vygxhdh3x498v27byq"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
@@ -163,14 +163,14 @@ from digital cameras.")
(define-public gphoto2
(package
(name "gphoto2")
- (version "2.5.20")
+ (version "2.5.23")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
"/gphoto2-" version ".tar.bz2"))
(sha256
(base32
- "1xj80abkzvqrd6g1j1q946lhbp03gyapyxdwbhc0y14g1ash6vx3"))))
+ "1laqwhxr0xhbykmp0dhd3j4rr2lhj5y228s31afnqxp700hhk1yz"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index ccb8ebf8f8..ac24adef43 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -43,16 +43,15 @@
(define-public polkit
(package
(name "polkit")
- (version "0.115")
+ (version "0.116")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.freedesktop.org/software/polkit/releases/"
name "-" version ".tar.gz"))
- (patches (search-patches "polkit-CVE-2018-19788.patch"))
(sha256
(base32
- "0c91y61y4gy6p91cwbzg32dhavw4b7fflg370rimqhdxpzdfr1rg"))
+ "1c9lbpndh5zis22f154vjrhnqw65z8s85nrgl42v738yf6g0q5w8"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -90,7 +89,7 @@
`(("expat" ,expat)
("linux-pam" ,linux-pam)
("elogind" ,elogind)
- ("mozjs" ,mozjs-52)
+ ("mozjs" ,mozjs-60)
("nspr" ,nspr)))
(propagated-inputs
`(("glib" ,glib))) ; required by polkit-gobject-1.pc
@@ -101,6 +100,9 @@
("gobject-introspection" ,gobject-introspection)))
(arguments
`(#:configure-flags '("--sysconfdir=/etc"
+ ;; XXX: MozJS 60 requires the C++11 ABI or higher.
+ ;; Remove when the default compiler is >= GCC 6.
+ "CXXFLAGS=-std=gnu++11"
"--enable-man-pages")
#:phases
(modify-phases %standard-phases
diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm
index 6248be0c9b..d9065e8b15 100644
--- a/gnu/packages/python-crypto.scm
+++ b/gnu/packages/python-crypto.scm
@@ -357,14 +357,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
- (version "2.6.1")
+ (version "2.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography_vectors" version))
(sha256
(base32
- "1bsqcv3h49dzqnyn29ijq8r7k1ra8ikl1y9qcpcns9nbvhaq3wq3"))))
+ "1g38zw90510azyfrj6mxbslx2gp9yrnv5dac0w2819k9ssdznbgi"))))
(build-system python-build-system)
(home-page "https://github.com/pyca/cryptography")
(synopsis "Test vectors for the cryptography package")
@@ -379,14 +379,14 @@ is used by the Requests library to verify HTTPS requests.")
(define-public python-cryptography
(package
(name "python-cryptography")
- (version "2.6.1")
+ (version "2.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(sha256
(base32
- "19iwz5avym5zl6jrrrkym1rdaa9h61j20ph4cswsqgv8xg5j3j16"))))
+ "1inlnr36kl36551c9rcad99jmhk81v33by3glkadwdcgmi17fd76"))))
(build-system python-build-system)
(inputs
`(("openssl" ,openssl)))
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 3a022c66ce..a7c88e9187 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -3163,7 +3163,7 @@ provides additional functionality on the produced Mallard documents.")
(replace 'check
(lambda _
(invoke "python" "runtests.py" "-vv"))))))
- (home-page "http://cython.org/")
+ (home-page "https://cython.org/")
(synopsis "C extensions for Python")
(description "Cython is an optimising static compiler for both the Python
programming language and the extended Cython programming language. It makes
@@ -5381,14 +5381,14 @@ libxml2 and libxslt.")
(define-public python-beautifulsoup4
(package
(name "python-beautifulsoup4")
- (version "4.6.3")
+ (version "4.7.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "beautifulsoup4" version))
(sha256
(base32
- "041dhalzjciw6qyzzq7a2k4h1yvyk76xigp35hv5ibnn448ydy4h"))))
+ "0j2kycz2dxgx68xzjm7rxg5xn6v61gq5ifvxyg99slmqkybnal4l"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -5400,6 +5400,8 @@ libxml2 and libxslt.")
;; distribution.
(replace 'check
(lambda _ (invoke "./convert-py3k"))))))
+ (propagated-inputs
+ `(("python-soupsieve" ,python-soupsieve)))
(home-page
"https://www.crummy.com/software/BeautifulSoup/bs4/")
(synopsis
@@ -5443,14 +5445,17 @@ Soup 4. It aims to provide selecting, matching, and filtering using modern
CSS selectors. Soup Sieve currently provides selectors from the CSS level 1
specifications up through the latest CSS level 4 drafts and beyond (though
some are not yet implemented).")
+ (properties `((python2-variant . ,(delay python2-soupsieve))))
(license license:expat)))
(define-public python2-soupsieve
- (let ((base (package-with-python2 python-soupsieve)))
+ (let ((base (package-with-python2 (strip-python2-variant python-soupsieve))))
(package
(inherit base)
(propagated-inputs
- `(("python2-backports-functools-lru-cache" ,python2-backports-functools-lru-cache))))))
+ `(("python2-backports-functools-lru-cache"
+ ,python2-backports-functools-lru-cache)
+ ,@(package-propagated-inputs base))))))
(define-public python-netifaces
(package
@@ -12180,7 +12185,7 @@ current test, while only declaring the test-specific fields")
;; 'parse_funcs'
;; during test setup.
`(#:tests? #f))
- (home-page "http://toolkit.translatehouse.org")
+ (home-page "https://toolkit.translatehouse.org")
(synopsis "Tools and API for translation and localization engineering")
(description
"Tools and API for translation and localization engineering. It contains
diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm
index f37fb064a2..a64944080b 100644
--- a/gnu/packages/regex.scm
+++ b/gnu/packages/regex.scm
@@ -30,7 +30,7 @@
(define-public re2
(package
(name "re2")
- (version "2019-04-01")
+ (version "2019-06-01")
(home-page "https://github.com/google/re2")
(source (origin
(method git-fetch)
@@ -38,7 +38,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "018b8z3fgcr02rmhxdz80r363k40938cbgmk1c9b46k6xkc4q0hd"))))
+ "01613z66wgiffdngbq3031rwd92jf87j93h7y5mn8hlx19gg5k4j"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index 2e8cec8ffb..b6b28b7d06 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -6,7 +6,7 @@
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
@@ -523,15 +523,14 @@ sound and device input (keyboards, joysticks, mice, etc.).")
(define-public guile-sdl2
(package
(name "guile-sdl2")
- (version "0.3.1")
+ (version "0.4.0")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://files.dthompson.us/guile-sdl2/guile-sdl2-"
- version ".tar.gz"))
+ (uri (string-append "https://files.dthompson.us/guile-sdl2/"
+ "guile-sdl2-" version ".tar.gz"))
(sha256
(base32
- "0bw7x2lx90k4banc5k7yfkn3as93y25gr1xdr225ll7lmij21k64"))))
+ "0zcxwgyadwpbhq6h5mv2569c3kalgra26zc186y9fqiyyzmh1v9s"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0")
diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index acc9eda152..cd3dd0de54 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -30,7 +30,7 @@
(define-public syncthing
(package
(name "syncthing")
- (version "1.1.2")
+ (version "1.1.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing"
@@ -38,7 +38,7 @@
"/syncthing-source-v" version ".tar.gz"))
(sha256
(base32
- "0x2203xa4fxadj7ra7l2ac285j3gi1qgghpkssl4hkcq0kjmxqrk"))
+ "0pkb9vdb10lnlk6sgg6hxgkdjnvxx90cfdf8vgrc5sljzm5qhr6l"))
(modules '((guix build utils)))
;; Delete bundled ("vendored") free software source code.
(snippet '(begin
@@ -418,7 +418,7 @@ address of the default LAN gateway.")
(define-public go-github-com-lib-pq
(package
(name "go-github-com-lib-pq")
- (version "1.0.0")
+ (version "1.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -427,7 +427,7 @@ address of the default LAN gateway.")
(file-name (git-file-name name version))
(sha256
(base32
- "1zqnnyczaf00xi6xh53vq758v5bdlf0iz7kf22l02cal4i6px47i"))))
+ "0g64wlg1l1ybq4x44idksl4pgm055s58jxc6r6x4qhqm5q76h0km"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/lib/pq"
@@ -443,7 +443,7 @@ database/sql package.")
(define-public go-github-com-oschwald-geoip2-golang
(package
(name "go-github-com-oschwald-geoip2-golang")
- (version "1.1.0")
+ (version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -452,7 +452,7 @@ database/sql package.")
(file-name (git-file-name name version))
(sha256
(base32
- "0v698bzs8lb59cqpsa9cf4sl8rdsvnnmaravhbfn6g6i511ppclr"))))
+ "0jivzl15jb8n16rm1b2w97kf7vna5dd3kcz865wfi233qay075j2"))))
(build-system go-build-system)
(propagated-inputs
`(("go-github-com-oschwald-maxminddb-golang"
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index bb82efba5d..8e20101e51 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -410,7 +410,7 @@ required structures.")
(package
(inherit openssl)
(name "openssl")
- (version "1.1.1b")
+ (version "1.1.1c")
(source (origin
(method url-fetch)
(uri (list (string-append "https://www.openssl.org/source/openssl-"
@@ -423,7 +423,7 @@ required structures.")
(patches (search-patches "openssl-1.1-c-rehash-in.patch"))
(sha256
(base32
- "0jza8cmznnyiia43056dij1jdmz62dx17wsn0zxksh9h6817nmaw"))))
+ "142c7zdlz06hjrrvinb9f276czc78bnkyhd9xma621qmmmwk1yzn"))))
(outputs '("out"
"doc" ; 6.8 MiB of man3 pages and full HTML documentation
"static")) ; 6.4 MiB of .a files
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 8789060b3c..aa543b68d0 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -730,7 +730,7 @@ are detected, the user is notified.")))
(define-public neovim
(package
(name "neovim")
- (version "0.3.5")
+ (version "0.3.7")
(source
(origin
(method git-fetch)
@@ -740,7 +740,7 @@ are detected, the user is notified.")))
(file-name (git-file-name name version))
(sha256
(base32
- "113lrr9gwimvvzlkwlishm4cjqcf30xq9jfxn7vh41ckgnbiwf3w"))))
+ "1j6w5jvq5v7kf7diad91qs1acr427nidnk9s24yyrz0hwdd1c2lh"))))
(build-system cmake-build-system)
(arguments
`(#:modules ((srfi srfi-26)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index ae28e38adb..27966f038a 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5067,7 +5067,7 @@ over Xlib, including:
(define-public xorg-server
(package
(name "xorg-server")
- (version "1.20.4")
+ (version "1.20.5")
(source
(origin
(method url-fetch)
@@ -5076,7 +5076,7 @@ over Xlib, including:
"xorg-server-" version ".tar.bz2"))
(sha256
(base32
- "1vk6j7hmigfill9x8m7a6vvgb3s50ji2yf6yprbgqfz9xf9x83zy"))
+ "17dc3g8cc55nbkx3np64dsz04n621dnzjmcc9wys0xbyyd1q47d8"))
(patches
(list
;; See:
@@ -5198,7 +5198,16 @@ draggable titlebars and borders.")
(define-public xorg-server-for-tests
(hidden-package
(package
- (inherit xorg-server))))
+ (inherit xorg-server)
+ (version "1.20.4")
+ (source (origin
+ (inherit (package-source xorg-server))
+ (uri (string-append
+ "mirror://xorg/individual/xserver/"
+ "xorg-server-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "1vk6j7hmigfill9x8m7a6vvgb3s50ji2yf6yprbgqfz9xf9x83zy")))))))
(define-public xorg-server-xwayland
(package
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f709ca5519..c88a6ddec6 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -142,7 +142,8 @@
guix-publish-configuration-guix
guix-publish-configuration-port
guix-publish-configuration-host
- guix-publish-configuration-compression-level
+ guix-publish-configuration-compression
+ guix-publish-configuration-compression-level ;deprecated
guix-publish-configuration-nar-path
guix-publish-configuration-cache
guix-publish-configuration-ttl
@@ -1748,8 +1749,12 @@ archive' public keys, with GUIX."
(default 80))
(host guix-publish-configuration-host ;string
(default "localhost"))
- (compression-level guix-publish-configuration-compression-level ;integer
- (default 3))
+ (compression guix-publish-configuration-compression
+ (thunked)
+ (default (default-compression this-record
+ (current-source-location))))
+ (compression-level %guix-publish-configuration-compression-level ;deprecated
+ (default #f))
(nar-path guix-publish-configuration-nar-path ;string
(default "nar"))
(cache guix-publish-configuration-cache ;#f | string
@@ -1759,42 +1764,68 @@ archive' public keys, with GUIX."
(ttl guix-publish-configuration-ttl ;#f | integer
(default #f)))
-(define guix-publish-shepherd-service
- (match-lambda
- (($ <guix-publish-configuration> guix port host compression
- nar-path cache workers ttl)
- (list (shepherd-service
- (provision '(guix-publish))
- (requirement '(guix-daemon))
- (start #~(make-forkexec-constructor
- (list #$(file-append guix "/bin/guix")
- "publish" "-u" "guix-publish"
- "-p" #$(number->string port)
- "-C" #$(number->string compression)
- (string-append "--nar-path=" #$nar-path)
- (string-append "--listen=" #$host)
- #$@(if workers
- #~((string-append "--workers="
- #$(number->string
- workers)))
- #~())
- #$@(if ttl
- #~((string-append "--ttl="
- #$(number->string ttl)
- "s"))
- #~())
- #$@(if cache
- #~((string-append "--cache=" #$cache))
- #~()))
-
- ;; Make sure we run in a UTF-8 locale so we can produce
- ;; nars for packages that contain UTF-8 file names such
- ;; as 'nss-certs'. See <https://bugs.gnu.org/26948>.
- #:environment-variables
- (list (string-append "GUIX_LOCPATH="
- #$glibc-utf8-locales "/lib/locale")
- "LC_ALL=en_US.utf8")))
- (stop #~(make-kill-destructor)))))))
+(define-deprecated (guix-publish-configuration-compression-level config)
+ "Return a compression level, the old way."
+ (match (guix-publish-configuration-compression config)
+ (((_ level) _ ...) level)))
+
+(define (default-compression config properties)
+ "Return the default 'guix publish' compression according to CONFIG, and
+raise a deprecation warning if the 'compression-level' field was used."
+ (match (%guix-publish-configuration-compression-level config)
+ (#f
+ '(("gzip" 3)))
+ (level
+ (warn-about-deprecation 'compression-level properties
+ #:replacement 'compression)
+ `(("gzip" ,level)))))
+
+(define (guix-publish-shepherd-service config)
+ (define (config->compression-options config)
+ (match (guix-publish-configuration-compression config)
+ (() ;empty list means "no compression"
+ '("-C0"))
+ (lst
+ (append-map (match-lambda
+ ((type level)
+ `("-C" ,(string-append type ":"
+ (number->string level)))))
+ lst))))
+
+ (match-record config <guix-publish-configuration>
+ (guix port host nar-path cache workers ttl)
+ (list (shepherd-service
+ (provision '(guix-publish))
+ (requirement '(guix-daemon))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append guix "/bin/guix")
+ "publish" "-u" "guix-publish"
+ "-p" #$(number->string port)
+ #$@(config->compression-options config)
+ (string-append "--nar-path=" #$nar-path)
+ (string-append "--listen=" #$host)
+ #$@(if workers
+ #~((string-append "--workers="
+ #$(number->string
+ workers)))
+ #~())
+ #$@(if ttl
+ #~((string-append "--ttl="
+ #$(number->string ttl)
+ "s"))
+ #~())
+ #$@(if cache
+ #~((string-append "--cache=" #$cache))
+ #~()))
+
+ ;; Make sure we run in a UTF-8 locale so we can produce
+ ;; nars for packages that contain UTF-8 file names such
+ ;; as 'nss-certs'. See <https://bugs.gnu.org/26948>.
+ #:environment-variables
+ (list (string-append "GUIX_LOCPATH="
+ #$glibc-utf8-locales "/lib/locale")
+ "LC_ALL=en_US.utf8")))
+ (stop #~(make-kill-destructor))))))
(define %guix-publish-accounts
(list (user-group (name "guix-publish") (system? #t))
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index 9125139ef3..9d21b6e70c 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2016 Andy Wingo <wingo@pobox.com>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -895,6 +896,7 @@ IPP specifications.")
(mkdir-p/perms "/var/spool/cups" user #o755)
(mkdir-p/perms "/var/spool/cups/tmp" user #o755)
(mkdir-p/perms "/var/log/cups" user #o755)
+ (mkdir-p/perms "/var/cache/cups" user #o770)
(mkdir-p/perms "/etc/cups" user #o755)
(mkdir-p/perms "/etc/cups/ssl" user #o700)
;; This certificate is used for HTTPS connections to the CUPS web
diff --git a/guix/channels.scm b/guix/channels.scm
index e93879e1b4..e7278c6060 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -27,7 +27,7 @@
#:use-module (guix profiles)
#:use-module (guix derivations)
#:use-module (guix combinators)
- #:use-module (guix deprecation)
+ #:use-module (guix diagnostics)
#:use-module (guix store)
#:use-module (guix i18n)
#:use-module ((guix utils)
@@ -280,7 +280,7 @@ package modules under SOURCE using CORE, an instance of Guix."
;; Disable deprecation warnings; it's OK for SCRIPT to
;; use deprecated APIs and the user doesn't have to know
;; about it.
- (parameterize ((deprecation-warning-port
+ (parameterize ((guix-warning-port
(%make-void-port "w")))
(primitive-load script))))))
;; BUILD must be a monadic procedure of at least one argument: the
diff --git a/guix/deprecation.scm b/guix/deprecation.scm
index 2f7c058940..468b2e9b7b 100644
--- a/guix/deprecation.scm
+++ b/guix/deprecation.scm
@@ -18,39 +18,26 @@
(define-module (guix deprecation)
#:use-module (guix i18n)
- #:use-module (ice-9 format)
+ #:use-module (guix diagnostics)
+ #:autoload (guix utils) (source-properties->location)
#:export (define-deprecated
define-deprecated/alias
- deprecation-warning-port))
+ warn-about-deprecation))
;;; Commentary:
;;;
;;; Provide a mechanism to mark bindings as deprecated.
;;;
-;;; We don't reuse (guix ui) mostly to avoid pulling in too many things.
-;;;
;;; Code:
-(define deprecation-warning-port
- ;; Port where deprecation warnings go.
- (make-parameter (current-error-port)))
-
-(define (source-properties->location-string properties)
- "Return a human-friendly, GNU-standard representation of PROPERTIES, a
-source property alist."
- (let ((file (assq-ref properties 'filename))
- (line (assq-ref properties 'line))
- (column (assq-ref properties 'column)))
- (if (and file line column)
- (format #f "~a:~a:~a" file (+ 1 line) column)
- (G_ "<unknown location>"))))
-
(define* (warn-about-deprecation variable properties
#:key replacement)
- (format (deprecation-warning-port)
- (G_ "~a: warning: '~a' is deprecated~@[, use '~a' instead~]~%")
- (source-properties->location-string properties)
- variable replacement))
+ (let ((location (and properties (source-properties->location properties))))
+ (if replacement
+ (warning location (G_ "'~a' is deprecated, use '~a' instead~%")
+ variable replacement)
+ (warning location (G_ "'~a' is deprecated~%")
+ variable))))
(define-syntax define-deprecated
(lambda (s)
@@ -59,7 +46,7 @@ source property alist."
(define-deprecated foo bar 42)
(define-deprecated (baz x y) qux (qux y x))
-This will write a deprecation warning to DEPRECATION-WARNING-PORT."
+This will write a deprecation warning to GUIX-WARNING-PORT."
(syntax-case s ()
((_ (proc formals ...) replacement body ...)
#'(define-deprecated proc replacement
@@ -96,7 +83,7 @@ these lines:
where 'nix-server?' is the deprecated name for 'store-connection?'.
-This will write a deprecation warning to DEPRECATION-WARNING-PORT."
+This will write a deprecation warning to GUIX-WARNING-PORT."
(define-syntax deprecated
(lambda (s)
(warn-about-deprecation 'deprecated (syntax-source s)
diff --git a/guix/diagnostics.scm b/guix/diagnostics.scm
new file mode 100644
index 0000000000..380cfbb613
--- /dev/null
+++ b/guix/diagnostics.scm
@@ -0,0 +1,173 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix diagnostics)
+ #:use-module (guix colors)
+ #:use-module (guix i18n)
+ #:autoload (guix utils) (<location>)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 format)
+ #:use-module (ice-9 match)
+ #:export (warning
+ info
+ report-error
+ leave
+
+ location->string
+
+ guix-warning-port
+ program-name))
+
+;;; Commentary:
+;;;
+;;; This module provides the tools to report diagnostics to the user in a
+;;; consistent way: errors, warnings, and notes.
+;;;
+;;; Code:
+
+(define-syntax highlight-argument
+ (lambda (s)
+ "Given FMT and ARG, expand ARG to a call that highlights it, provided FMT
+is a trivial format string."
+ (define (trivial-format-string? fmt)
+ (define len
+ (string-length fmt))
+
+ (let loop ((start 0))
+ (or (>= (+ 1 start) len)
+ (let ((tilde (string-index fmt #\~ start)))
+ (or (not tilde)
+ (case (string-ref fmt (+ tilde 1))
+ ((#\a #\A #\%) (loop (+ tilde 2)))
+ (else #f)))))))
+
+ ;; Be conservative: limit format argument highlighting to cases where the
+ ;; format string contains nothing but ~a escapes. If it contained ~s
+ ;; escapes, this strategy wouldn't work.
+ (syntax-case s ()
+ ((_ "~a~%" arg) ;don't highlight whole messages
+ #'arg)
+ ((_ fmt arg)
+ (trivial-format-string? (syntax->datum #'fmt))
+ #'(%highlight-argument arg))
+ ((_ fmt arg)
+ #'arg))))
+
+(define* (%highlight-argument arg #:optional (port (guix-warning-port)))
+ "Highlight ARG, a format string argument, if PORT supports colors."
+ (cond ((string? arg)
+ (highlight arg port))
+ ((symbol? arg)
+ (highlight (symbol->string arg) port))
+ (else arg)))
+
+(define-syntax define-diagnostic
+ (syntax-rules ()
+ "Create a diagnostic macro (i.e., NAME), which will prepend PREFIX to all
+messages."
+ ((_ name (G_ prefix) colors)
+ (define-syntax name
+ (lambda (x)
+ (syntax-case x ()
+ ((name location (underscore fmt) args (... ...))
+ (and (string? (syntax->datum #'fmt))
+ (free-identifier=? #'underscore #'G_))
+ #'(begin
+ (print-diagnostic-prefix prefix location
+ #:colors colors)
+ (format (guix-warning-port) (gettext fmt %gettext-domain)
+ (highlight-argument fmt args) (... ...))))
+ ((name location (N-underscore singular plural n)
+ args (... ...))
+ (and (string? (syntax->datum #'singular))
+ (string? (syntax->datum #'plural))
+ (free-identifier=? #'N-underscore #'N_))
+ #'(begin
+ (print-diagnostic-prefix prefix location
+ #:colors colors)
+ (format (guix-warning-port)
+ (ngettext singular plural n %gettext-domain)
+ (highlight-argument singular args) (... ...))))
+ ((name (underscore fmt) args (... ...))
+ (free-identifier=? #'underscore #'G_)
+ #'(name #f (underscore fmt) args (... ...)))
+ ((name (N-underscore singular plural n)
+ args (... ...))
+ (free-identifier=? #'N-underscore #'N_)
+ #'(name #f (N-underscore singular plural n)
+ args (... ...)))))))))
+
+;; XXX: This doesn't work well for right-to-left languages.
+;; TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
+;; "~a" is a placeholder for that phrase.
+(define-diagnostic warning (G_ "warning: ") %warning-color) ;emit a warning
+(define-diagnostic info (G_ "") %info-color)
+(define-diagnostic report-error (G_ "error: ") %error-color)
+
+(define-syntax-rule (leave args ...)
+ "Emit an error message and exit."
+ (begin
+ (report-error args ...)
+ (exit 1)))
+
+(define %warning-color (color BOLD MAGENTA))
+(define %info-color (color BOLD))
+(define %error-color (color BOLD RED))
+
+(define* (print-diagnostic-prefix prefix #:optional location
+ #:key (colors (color)))
+ "Print PREFIX as a diagnostic line prefix."
+ (define color?
+ (color-output? (guix-warning-port)))
+
+ (define location-color
+ (if color?
+ (cut colorize-string <> (color BOLD))
+ identity))
+
+ (define prefix-color
+ (if color?
+ (lambda (prefix)
+ (colorize-string prefix colors))
+ identity))
+
+ (let ((prefix (if (string-null? prefix)
+ prefix
+ (gettext prefix %gettext-domain))))
+ (if location
+ (format (guix-warning-port) "~a: ~a"
+ (location-color (location->string location))
+ (prefix-color prefix))
+ (format (guix-warning-port) "~:[~*~;guix ~a: ~]~a"
+ (program-name) (program-name)
+ (prefix-color prefix)))))
+
+(define (location->string loc)
+ "Return a human-friendly, GNU-standard representation of LOC."
+ (match loc
+ (#f (G_ "<unknown location>"))
+ (($ <location> file line column)
+ (format #f "~a:~a:~a" file line column))))
+
+
+(define guix-warning-port
+ (make-parameter (current-warning-port)))
+
+(define program-name
+ ;; Name of the command-line program currently executing, or #f.
+ (make-parameter #f))
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index 516c0cfaa2..d0dffe9b04 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -378,57 +379,35 @@ separated by PRED."
#:allow-other-keys)
"Generate a stream of package expressions for PACKAGE-NAME and all its
dependencies."
- (receive (package . dependencies)
- (repo->guix-package package-name repo)
- (if (not package)
- stream-null
-
- ;; Generate a lazy stream of package expressions for all unknown
- ;; dependencies in the graph.
- (let* ((make-state (lambda (queue done)
- (cons queue done)))
- (next (match-lambda
- (((next . rest) . done) next)))
- (imported (match-lambda
- ((queue . done) done)))
- (done? (match-lambda
- ((queue . done)
- (zero? (length queue)))))
- (unknown? (lambda* (dependency #:optional (done '()))
- (and (not (member dependency
- done))
- (null? (find-packages-by-name
- (guix-name dependency))))))
- (update (lambda (state new-queue)
- (match state
- (((head . tail) . done)
- (make-state (lset-difference
- equal?
- (lset-union equal? new-queue tail)
- done)
- (cons head done)))))))
- (stream-cons
- package
- (stream-unfold
- ;; map: produce a stream element
- (lambda (state)
- (repo->guix-package (next state) repo))
-
- ;; predicate
- (negate done?)
-
- ;; generator: update the queue
- (lambda (state)
- (receive (package . dependencies)
- (repo->guix-package (next state) repo)
- (if package
- (update state (filter (cut unknown? <>
- (cons (next state)
- (imported state)))
- (car dependencies)))
- ;; TODO: Try the other archives before giving up
- (update state (imported state)))))
-
- ;; initial state
- (make-state (filter unknown? (car dependencies))
- (list package-name))))))))
+ (define (exists? dependency)
+ (not (null? (find-packages-by-name (guix-name dependency)))))
+ (define initial-state (list #f (list package-name) (list)))
+ (define (step state)
+ (match state
+ ((prev (next . rest) done)
+ (define (handle? dep)
+ (and
+ (not (equal? dep next))
+ (not (member dep done))
+ (not (exists? dep))))
+ (receive (package . dependencies) (repo->guix-package next repo)
+ (list
+ (if package package '()) ;; default #f on failure would interrupt
+ (if package
+ (lset-union equal? rest (filter handle? (car dependencies)))
+ rest)
+ (cons next done))))
+ ((prev '() done)
+ (list #f '() done))))
+
+ ;; Generate a lazy stream of package expressions for all unknown
+ ;; dependencies in the graph.
+ (stream-unfold
+ ;; map: produce a stream element
+ (match-lambda ((latest queue done) latest))
+ ;; predicate
+ (match-lambda ((latest queue done) latest))
+ ;; generator: update the queue
+ step
+ ;; initial state
+ (step initial-state)))
diff --git a/guix/ui.scm b/guix/ui.scm
index 529401eea8..0b4fe144b6 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -32,6 +32,7 @@
(define-module (guix ui)
#:use-module (guix i18n)
#:use-module (guix colors)
+ #:use-module (guix diagnostics)
#:use-module (guix gexp)
#:use-module (guix sets)
#:use-module (guix utils)
@@ -70,10 +71,14 @@
#:use-module (texinfo)
#:use-module (texinfo plain-text)
#:use-module (texinfo string-utils)
- #:re-export (G_ N_ P_) ;backward compatibility
- #:export (report-error
- display-hint
- leave
+
+ ;; Re-exports for backward compatibility.
+ #:re-export (G_ N_ P_ ;now in (guix i18n)
+
+ warning info report-error leave ;now in (guix diagnostics)
+ location->string
+ guix-warning-port program-name)
+ #:export (display-hint
make-user-module
load*
warn-about-load-error
@@ -93,7 +98,6 @@
read/eval
read/eval-package-expression
check-available-space
- location->string
fill-paragraph
%text-width
texi->plain-text
@@ -115,10 +119,6 @@
delete-generation*
run-guix-command
run-guix
- program-name
- guix-warning-port
- warning
- info
guix-main))
;;; Commentary:
@@ -127,124 +127,6 @@
;;;
;;; Code:
-(define-syntax highlight-argument
- (lambda (s)
- "Given FMT and ARG, expand ARG to a call that highlights it, provided FMT
-is a trivial format string."
- (define (trivial-format-string? fmt)
- (define len
- (string-length fmt))
-
- (let loop ((start 0))
- (or (>= (+ 1 start) len)
- (let ((tilde (string-index fmt #\~ start)))
- (or (not tilde)
- (case (string-ref fmt (+ tilde 1))
- ((#\a #\A #\%) (loop (+ tilde 2)))
- (else #f)))))))
-
- ;; Be conservative: limit format argument highlighting to cases where the
- ;; format string contains nothing but ~a escapes. If it contained ~s
- ;; escapes, this strategy wouldn't work.
- (syntax-case s ()
- ((_ "~a~%" arg) ;don't highlight whole messages
- #'arg)
- ((_ fmt arg)
- (trivial-format-string? (syntax->datum #'fmt))
- #'(%highlight-argument arg))
- ((_ fmt arg)
- #'arg))))
-
-(define* (%highlight-argument arg #:optional (port (guix-warning-port)))
- "Highlight ARG, a format string argument, if PORT supports colors."
- (cond ((string? arg)
- (highlight arg port))
- ((symbol? arg)
- (highlight (symbol->string arg) port))
- (else arg)))
-
-(define-syntax define-diagnostic
- (syntax-rules ()
- "Create a diagnostic macro (i.e., NAME), which will prepend PREFIX to all
-messages."
- ((_ name (G_ prefix) colors)
- (define-syntax name
- (lambda (x)
- (syntax-case x ()
- ((name location (underscore fmt) args (... ...))
- (and (string? (syntax->datum #'fmt))
- (free-identifier=? #'underscore #'G_))
- #'(begin
- (print-diagnostic-prefix prefix location
- #:colors colors)
- (format (guix-warning-port) (gettext fmt %gettext-domain)
- (highlight-argument fmt args) (... ...))))
- ((name location (N-underscore singular plural n)
- args (... ...))
- (and (string? (syntax->datum #'singular))
- (string? (syntax->datum #'plural))
- (free-identifier=? #'N-underscore #'N_))
- #'(begin
- (print-diagnostic-prefix prefix location
- #:colors colors)
- (format (guix-warning-port)
- (ngettext singular plural n %gettext-domain)
- (highlight-argument singular args) (... ...))))
- ((name (underscore fmt) args (... ...))
- (free-identifier=? #'underscore #'G_)
- #'(name #f (underscore fmt) args (... ...)))
- ((name (N-underscore singular plural n)
- args (... ...))
- (free-identifier=? #'N-underscore #'N_)
- #'(name #f (N-underscore singular plural n)
- args (... ...)))))))))
-
-;; XXX: This doesn't work well for right-to-left languages.
-;; TRANSLATORS: The goal is to emit "warning:" followed by a short phrase;
-;; "~a" is a placeholder for that phrase.
-(define-diagnostic warning (G_ "warning: ") %warning-color) ;emit a warning
-(define-diagnostic info (G_ "") %info-color)
-(define-diagnostic report-error (G_ "error: ") %error-color)
-
-(define-syntax-rule (leave args ...)
- "Emit an error message and exit."
- (begin
- (report-error args ...)
- (exit 1)))
-
-(define %warning-color (color BOLD MAGENTA))
-(define %info-color (color BOLD))
-(define %error-color (color BOLD RED))
-(define %hint-color (color BOLD CYAN))
-
-(define* (print-diagnostic-prefix prefix #:optional location
- #:key (colors (color)))
- "Print PREFIX as a diagnostic line prefix."
- (define color?
- (color-output? (guix-warning-port)))
-
- (define location-color
- (if color?
- (cut colorize-string <> (color BOLD))
- identity))
-
- (define prefix-color
- (if color?
- (lambda (prefix)
- (colorize-string prefix colors))
- identity))
-
- (let ((prefix (if (string-null? prefix)
- prefix
- (gettext prefix %gettext-domain))))
- (if location
- (format (guix-warning-port) "~a: ~a"
- (location-color (location->string location))
- (prefix-color prefix))
- (format (guix-warning-port) "~:[~*~;guix ~a: ~]~a"
- (program-name) (program-name)
- (prefix-color prefix)))))
-
(define (print-unbound-variable-error port key args default-printer)
;; Print unbound variable errors more nicely, and in the right language.
(match args
@@ -393,6 +275,8 @@ VARIABLE and return it, or #f if none was found."
(('gnu _ ...) head) ;must be that one
(_ (loop next (cons head suggestions) visited)))))))))))
+(define %hint-color (color BOLD CYAN))
+
(define* (display-hint message #:optional (port (current-error-port)))
"Display MESSAGE, a l10n message possibly containing Texinfo markup, to
PORT."
@@ -1192,13 +1076,6 @@ replacement if PORT is not Unicode-capable."
(lambda ()
body ...)))))
-(define (location->string loc)
- "Return a human-friendly, GNU-standard representation of LOC."
- (match loc
- (#f (G_ "<unknown location>"))
- (($ <location> file line column)
- (format #f "~a:~a:~a" file line column))))
-
(define* (fill-paragraph str width #:optional (column 0))
"Fill STR such that each line contains at most WIDTH characters, assuming
that the first character is at COLUMN.
@@ -1720,10 +1597,6 @@ Run COMMAND with ARGS.\n"))
string<?))
(show-bug-report-information))
-(define program-name
- ;; Name of the command-line program currently executing, or #f.
- (make-parameter #f))
-
(define (run-guix-command command . args)
"Run COMMAND with the given ARGS. Report an error when COMMAND is not
found."
@@ -1783,9 +1656,6 @@ and signal handling has already been set up."
(string->symbol command)
args))))
-(define guix-warning-port
- (make-parameter (current-warning-port)))
-
(define (guix-main arg0 . args)
(initialize-guix)
(apply run-guix args))