gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / emacs-xyz.scm
index a757703..9c293b1 100644 (file)
@@ -29,7 +29,7 @@
 ;;; Copyright © 2017, 2018, 2019, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
 ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
-;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
 ;;; Copyright © 2017, 2018, 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
 ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
 ;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
 ;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
-;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
+;;; Copyright © 2018, 2019, 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2018, 2019, 2020, 2021 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
 ;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
 ;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
 ;;; Copyright © 2019 Gabriel Hondet <gabrielhondet@gmail.com>
-;;; Copyright © 2019, 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
+;;; Copyright © 2019, 2020, 2021 Joseph LaFreniere <joseph@lafreniere.xyz>
 ;;; Copyright © 2019 Amar Singh <nly@disroot.org>
 ;;; Copyright © 2019 Baptiste Strazzulla <bstrazzull@hotmail.fr>
 ;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
@@ -60,7 +60,7 @@
 ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
 ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
 ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
-;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
+;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo>
 ;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net>
 ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
 ;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
 ;;; Copyright © 2020 Noah Landis <noahlandis@posteo.net>
-;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
+;;; Copyright © 2020, 2021 Nicolò Balzarotti <nicolo@nixo.xyz>
 ;;; Copyright © 2020 André A. Gomes <andremegafone@gmail.com>
 ;;; Copyright © 2020 Jonathan Rostran <rostranjj@gmail.com>
 ;;; Copyright © 2020, 2021 Noah Evans <noah@nevans.me>
 ;;; Copyright © 2020 Brit Butler <brit@kingcons.io>
+;;; Copyright © 2021 Alexandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Yurii Kholodkov <urist.mckorobochka@gmail.com>
+;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
+;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2021 Eugene Klimov <lipklim@mailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages djvu)
   #:use-module (gnu packages ebook)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages haskell-apps)
   #:use-module (gnu packages ibus)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
@@ -384,14 +393,13 @@ when typing parentheses directly or commenting out code line by line.")
 (define-public emacs-project
   (package
     (name "emacs-project")
-    (version "0.5.3")
+    (version "0.5.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/"
-                           "project-" version ".el"))
+       (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar"))
        (sha256
-        (base32 "0cpf69m41h8gfcqnq72h11925zdk35b7hw7bfy83xm83xwp12rxx"))))
+        (base32 "0arjvhzzcf8b80w94yvpgfdlhsjwf5jk1r7vcai5a4dg3bi9cxyb"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-xref" ,emacs-xref)))
     (home-page "http://elpa.gnu.org/packages/project.html")
@@ -804,6 +812,30 @@ theme and apply them to the rest of Linux with Pywal.  Pywal only applies your
 theme to the current session.")
       (license license:gpl3+))))
 
+(define-public emacs-theme-sorcery
+  (let ((revision "0")
+        (commit "5a1c4445b9e6e09589a299a9962a6973272a0c2f"))
+    (package
+      (name "emacs-theme-sorcery")
+      (version "1.0")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mtreca/emacs-theme-sorcery")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1b858049n6nw4qf60fmszjrhl80x7ssh32f7glj722kwy7404kdh"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-autothemer" ,emacs-autothemer)))
+      (home-page "https://github.com/mtreca/emacs-theme-sorcery")
+      (synopsis "Dark and low-contrast Emacs theme")
+      (description "Sorcery is a dark and low-contrast Emacs theme inspired by
+Apprentice and Sourcerer.")
+      (license license:gpl3+))))
+
 (define-public emacs-treepy
   (package
     (name "emacs-treepy")
@@ -908,6 +940,29 @@ Files with the @file{.graphql} and @file{.gql} extensions are
 automatically opened with this mode.")
       (license license:gpl3+))))
 
+(define-public emacs-ghq
+  (package
+    (name "emacs-ghq")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/rcoedo/emacs-ghq")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0rh2k93c3a0vl073a3s3a3h6gkw454v1lyd7y8l3pd24vw9hc628"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("ghq" ,ghq)))
+    (home-page "https://github.com/rcoedo/emacs-ghq")
+    (synopsis "Emacs interface for @code{ghq} tool")
+    (description
+     "This package provides a set of functions wrapping @code{ghq}, a tool for
+organizing remote Go repository clones.")
+    (license license:gpl3+)))
+
 (define-public emacs-ghub
   (package
     (name "emacs-ghub")
@@ -1277,8 +1332,8 @@ provides an optional IDE-like error list.")
 
 (define-public emacs-flymake-shellcheck
   ;; No tag, version grabbed from source .el file.
-  (let ((commit "78956f0e5bb9c4d35989657a55929e8e3f5691e6")
-        (revision "0"))
+  (let ((commit "ac534e9ef15c82ac86ae65fe5004d29dbc8c92c7")
+        (revision "1"))
     (package
       (name "emacs-flymake-shellcheck")
       (version (git-version "0.1" revision commit))
@@ -1290,7 +1345,7 @@ provides an optional IDE-like error list.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "068mx5p4drwgppy4ry1rfq6qi79w6d82b4rnpl2jm37grsg94lix"))))
+          (base32 "04yfb4sy41spjzk9mhm4gy0h8vnjx09p2g6nm1yzgd9a5ph9sqgl"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/federicotdn/flymake-shellcheck")
       (synopsis "Flymake backend for Bash/Sh powered by ShellCheck")
@@ -1374,13 +1429,13 @@ in certain cases.  It also enables recursion for anonymous functions.")
 (define-public emacs-xr
   (package
     (name "emacs-xr")
-    (version "1.20")
+    (version "1.21")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/xr-" version ".tar"))
        (sha256
-        (base32 "0i3vfsp110z60gabn9x9rv21fvm7nnr234mvmpp7gx4l4hpadvzy"))))
+        (base32 "0mc10d33lsqs0ihcja8w78jzh2pk0dfm9m86kap6r3hi6wkr1cmi"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/xr.html")
     (synopsis "Convert string regexp to rx notation")
@@ -1496,6 +1551,46 @@ reformat the current buffer using a command-line program, together with an
 optional minor mode which can apply this command automatically on save.")
     (license license:gpl3+)))
 
+(define-public emacs-relative-buffers
+  (let ((release "0.0.1")
+        (revision "0")
+        (commit "9762fe268e9ff150dcec2e2e45d862d82d5c4008"))
+    (package
+      (name "emacs-relative-buffers")
+      (version (git-version release revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsattic/relative-buffers")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0fzhwbpyndwrmxip9zlcwkrr675l5pzwcygi45hv7w1hn39w0hxp"))
+         (snippet
+          '(begin
+             ;; Delete the Cask test runners.
+             (for-each delete-file '("Cask" "test/test-helper.el"))
+             #t))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:tests? #t
+         #:test-command '("ert-runner")))
+      (native-inputs
+       `(("ert-runner" ,emacs-ert-runner)))
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-f" ,emacs-f)
+         ("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/emacsattic/relative-buffers")
+      (synopsis "Minor mode to rename buffers by project structure")
+      (description
+       "This package provides a minor mode for renaming buffers according to
+project structure.  For Python buffers, that will be the whole module name.
+For temporary files and directories, that will be the relative path from the
+project root.")
+      (license license:gpl3+))))
+
 (define-public emacs-relint
   (package
     (name "emacs-relint")
@@ -1713,14 +1808,14 @@ incrementally confined in Isearch manner.")
 (define emacs-emms-print-metadata
   (package
     (name "emacs-emms-print-metadata")
-    (version "6.3")
+    (version "7.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "emms-" version ".tar"))
        (sha256
-        (base32 "12cfq503li0gcqmm5bmqz8yjvfdif5xvz0l9vx3g5jl6ljygwgmf"))))
+        (base32 "1dng8dy0w0wsdvvnjnrllwv5a8wq3kj20jik994b7prdx5dn6y52"))))
     (build-system gnu-build-system)
     (arguments
      `(#:make-flags '("emms-print-metadata")
@@ -1927,21 +2022,22 @@ mode, Rmail, Gnus, MH-E, and VM).  BBDB is fully customizable.")
 
 (define-public emacs-counsel-bbdb
   (package
-  (name "emacs-counsel-bbdb")
-  (version "20181128.1320")
-  (source
-    (origin
-      (method url-fetch)
-      (uri (string-append "https://melpa.org/packages/counsel-bbdb-"
-                          version ".el"))
-      (sha256
-        (base32
-          "03g3lk8hz9a17vf5r16x054bhyk8xsbnfq0div8ig13fmhqi159q"))))
-  (build-system emacs-build-system)
-  (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
-  (home-page "https://github.com/redguard/counsel-bbdb")
-  (synopsis "Ivy interface for BBDB")
-  (description "This Ivy extension enables the use of @code{ivy-mode} to input
+    (name "emacs-counsel-bbdb")
+    (version "0.0.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/redguardtoo/counsel-bbdb")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
+    (build-system emacs-build-system)
+    (propagated-inputs `(("emacs-ivy" ,emacs-ivy)))
+    (home-page "https://github.com/redguardtoo/counsel-bbdb")
+    (synopsis "Ivy interface for BBDB")
+    (description "This Ivy extension enables the use of @code{ivy-mode} to input
 email addresses from BBDB efficiently.  The main functions are:
 @table @code
 @item counsel-bbdb-complete-mail to input email addresses;
@@ -1951,7 +2047,7 @@ email addresses from BBDB efficiently.  The main functions are:
 Since @code{counsel-bbdb} is based on @code{ivy-mode}, all Ivy key bindings
 are supported.  For example, after @samp{C-u M-x counsel-bbdb-complete-mail},
 you can press @samp{C-M-n} to input multiple email addresses.")
-  (license license:gpl3+)))
+    (license license:gpl3+)))
 
 (define-public emacs-bluetooth
   (package
@@ -2028,7 +2124,7 @@ is set.")
 (define-public emacs-ctrlf
   (package
     (name "emacs-ctrlf")
-    (version "1.2")
+    (version "1.3")
     (source
      (origin
        (method git-fetch)
@@ -2037,7 +2133,7 @@ is set.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1f0k3432brc96am6az6xr1nks1vacqzixhdgwfn2xklb8if9a5xi"))))
+        (base32 "06wq6scqy2ax0h6aahy2r7hn3bbmkzl4w99bkrc3cqd4ij78sc8g"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/raxod502/ctrlf/")
     (synopsis "Single-buffer text search in Emacs")
@@ -2180,14 +2276,14 @@ as a library for other Emacs packages.")
 (define-public emacs-auctex
   (package
     (name "emacs-auctex")
-    (version "13.0.4")
+    (version "13.0.7")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "auctex-" version ".tar"))
        (sha256
-        (base32 "1362dqb8mcaddda9849gqsj6rzlfq18xprddb74j02884xl7hq65"))))
+        (base32 "02jhaahdz462ncplnmzvl0zrzsmrhir4wijfwmdrm65f36iif5pc"))))
     (build-system emacs-build-system)
     ;; We use 'emacs' because AUCTeX requires dbus at compile time
     ;; ('emacs-minimal' does not provide dbus).
@@ -2362,7 +2458,7 @@ Lock key.")
 (define-public emacs-chronometrist
   (package
     (name "emacs-chronometrist")
-    (version "0.6.4")
+    (version "0.6.5")
     (source
      (origin
        (method git-fetch)
@@ -2371,7 +2467,7 @@ Lock key.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1wlvc73qrz3i8d2r37pyp5f2m1vb779li7z19wp6nrfs9hn6jd8i"))))
+        (base32 "1k7r5rc6vzrnhp9j5bkv45yzqz7zbqrkiry4fzc8w6f36pcw862f"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -2492,15 +2588,15 @@ into mode hooks and is intended to be used that way.")
 (define-public emacs-ggtags
   (package
     (name "emacs-ggtags")
-    (version "0.8.13")
+    (version "0.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/ggtags-"
-                           version ".el"))
+                           version ".tar"))
        (sha256
         (base32
-         "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg"))))
+         "0p79x9g94jynl83ndvqp9349vhgkzxzhnc517r8hn44iqxqf6ghg"))))
     (build-system emacs-build-system)
     (inputs
      `(("global" ,global)))
@@ -2645,9 +2741,9 @@ using the DOT syntax, and use Graphviz to convert these files to diagrams.")
     (license license:gpl2+)))
 
 (define-public emacs-imenu-list
-  (let ((commit "46008738f8fef578a763c308cf6695e5b4d4aa77")
-        (revision "0")
-        (version "0.8"))
+  (let ((commit "b50222378412fbe321622a84cb2b036e084c697a")
+        (revision "1")
+        (version "0.9"))
     (package
       (name "emacs-imenu-list")
       (version (git-version version revision commit))
@@ -2660,7 +2756,7 @@ using the DOT syntax, and use Graphviz to convert these files to diagrams.")
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "14l3yw9y1nk103s7z5i1fmd6kvlb2p6ayi6sf9l1x1ydg9glrpl8"))))
+          (base32 "1936dd41fa05ndzf2bwhllvjz97iz0rflkazjipr7dvz5q072wj2"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/bmag/imenu-list")
       (synopsis
@@ -2880,7 +2976,7 @@ and stored in memory.")
 (define-public emacs-dash
   (package
     (name "emacs-dash")
-    (version "2.17.0")
+    (version "2.18.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2889,11 +2985,9 @@ and stored in memory.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "153f55dqkhs8w2xlf6b88wp5vlkap7h8vjd9wxh4jp2ram5g4l1n"))))
+                "1cvfd36vv0wqb16bnqqxh99hy2yks0j2i4l8qjkg3bxjgk7ldmva"))))
     (build-system emacs-build-system)
-    (arguments
-     `(#:tests? #t
-       #:test-command '("./run-tests.sh")))
+    (arguments `(#:tests? #t))
     (home-page "https://github.com/magnars/dash.el")
     (synopsis "Modern list library for Emacs")
     (description "This package provides a modern list API library for Emacs.")
@@ -3123,6 +3217,36 @@ depicting stroke orders for all Kanji.  The collection is a slightly modified
 and limited version of the images provided by the KanjiVG project.")
       (license license:gpl3+))))
 
+(define-public emacs-kbd
+  ;; Package has no release.  Version is extracted from "Version:" keyword in
+  ;; main file.
+  (let ((commit "a7f4c9b9770fa6a58895c5f121df82652bb1b737")
+        (revision "0"))
+    (package
+      (name "emacs-kbd")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/slotThe/kbd-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0jv9yfsncgf96308c041hvps3jlc151xb0aipm0vasbma3x83ygm"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'enter-lisp-directory
+             (lambda _ (chdir "lisp") #t)))))
+      (home-page "https://github.com/slotThe/kbd-mode")
+      (synopsis "Minor mode for syntax highlighting kmonad's @file{.kbd} files")
+      (description
+       "This minor mode provides syntax highlighting for Lisp-like DSL used in
+kmonad's configuration files (@file{.kbd}).")
+      (license license:gpl3+))))
+
 (define-public emacs-keycast
   (package
     (name "emacs-keycast")
@@ -3196,7 +3320,7 @@ in the center.")
        (sha256
         (base32 "00admi87gqm0akhfqm4dcp9fw8ihpygy030955jswkha4zs7lw2p"))))
     (build-system emacs-build-system)
-    (home-page "http://www.dr-qubit.org/emacs.php")
+    (home-page "https://www.dr-qubit.org/undo-tree.html")
     (synopsis "Treat undo history as a tree")
     (description
      "Tree-like interface to Emacs undo system, providing
@@ -3477,7 +3601,7 @@ representation.")
 (define-public emacs-git-gutter
   (package
     (name "emacs-git-gutter")
-    (version "0.90")
+    (version "0.91")
     (source
      (origin
        (method git-fetch)
@@ -3486,7 +3610,7 @@ representation.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1abagq0psip7cgsqbfjv72qy60ywsny0ibsfcn74ldj6a9v17mz5"))))
+        (base32 "0zc9f73app1d7j4yb10sy4xidh5252ncyxlvr5kh0kiqk88ck6j9"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/syohex/emacs-git-gutter")
     (synopsis "See and manage hunks of text in a version control system")
@@ -3510,7 +3634,7 @@ display and behaviour is easily customisable.")
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/syohex/git-gutter-fringe")
+               (url "https://github.com/emacsorphanage/git-gutter-fringe")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -3519,7 +3643,7 @@ display and behaviour is easily customisable.")
       (propagated-inputs
        `(("emacs-git-gutter" ,emacs-git-gutter)
          ("emacs-fringe-helper" ,emacs-fringe-helper)))
-      (home-page "https://github.com/syohex/git-gutter-fringe")
+      (home-page "https://github.com/emacsorphanage/git-gutter-fringe")
       (synopsis "See and manage hunks of text in a version control system")
       (description
        "This package extends @code{git-gutter} to use the fringe area of a
@@ -3529,7 +3653,7 @@ window.")
 (define-public emacs-git-link
   (package
     (name "emacs-git-link")
-    (version "0.7.5")
+    (version "0.8.3")
     (source
      (origin
        (method git-fetch)
@@ -3538,7 +3662,7 @@ window.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "04xa6lp8wkjb6zs096bf4sz124grcjj15xv1h009bmn2j95rggj6"))))
+        (base32 "0l7xmvmj5s93hc39wjjv75f22zbhahnmcxpmvx3dfvsbig9pmk75"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -3673,6 +3797,37 @@ syntax.  Most commonly Emacs Lisp Mock is used in conjunction with Emacs Lisp
 Expectations, but it can be used in other contexts.")
     (license license:gpl3+)))
 
+(define-public emacs-ecukes
+  (package
+    (name "emacs-ecukes")
+    (version "0.6.17")
+    (home-page "https://github.com/ecukes/ecukes")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url home-page)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1isscwz4h3nx62lwfrj899lp2yc27zk1ndgr441d848495ccmshn"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:include (cons* "^feature/" "^reporters/" "^templates/" %default-include)))
+    (propagated-inputs
+     `(("emacs-ansi" ,emacs-ansi)
+       ("emacs-commander" ,emacs-commander)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-espuds" ,emacs-espuds)
+       ("emacs-f" ,emacs-f)
+       ("emacs-s" ,emacs-s)))
+    (synopsis "Cucumber for Emacs")
+    (description
+     "This package provides Ecukes, a Cucumber-inspired integration testing
+tool for Emacs.  Ecukes is not a complete clone of Cucumber and is not
+intended to be.")
+    (license license:gpl3+)))
+
 (define-public emacs-espuds
   (package
     (name "emacs-espuds")
@@ -4550,6 +4705,32 @@ Also included are keybindings for spec files and Dired buffers, as well as
 snippets for yasnippet.")
       (license license:gpl3+))))
 
+(define-public emacs-mode-line-idle
+  ;; Package has no release.  Version is extracted from "Version:" keyword in
+  ;; main file.
+  (let ((commit "02b1da6278e43cc9cc0356110cc6bfbb37eb8241")
+       (revision "1"))
+    (package
+      (name "emacs-mode-line-idle")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (file-name (git-file-name name version))
+         (uri (git-reference
+               (url "https://gitlab.com/ideasman42/emacs-mode-line-idle")
+               (commit commit)))
+         (sha256
+          (base32 "0ky330b2sfbzkbxbfp9b21hdywsjw26bllspglz08hrbni7jmry8"))))
+      (build-system emacs-build-system)
+      (home-page "https://gitlab.com/ideasman42/emacs-mode-line-idle")
+      (synopsis "Simple delayed text evaluation for the mode-line")
+      (description
+       "Mode Line Idle provides a convenient way to defer text evaluation
+which integrates into existing mode-line without requiring a minor mode or
+configuration.")
+      (license license:gpl3+))))
+
 (define-public emacs-smart-mode-line
   (package
     (name "emacs-smart-mode-line")
@@ -5224,6 +5405,28 @@ view the build status of those servers' build jobs, and possibly to trigger
 build jobs.")
     (license license:gpl3+)))
 
+(define-public emacs-tup-mode
+  (package
+    (name "emacs-tup-mode")
+    (version "1.3.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ejmr/tup-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0asd024n5v23wdsg1959sszq568wg3a1bp4jrk0cllfji1z0n78y"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/ejmr/tup-mode")
+    (synopsis "Major mode for editing ``tupfiles'' used by the Tup build system")
+    (description
+     "Tup mode provides syntax highlighting for all of the elements of
+tupfiles, such as rule definitions, user-defined variables, macros, flags, bin
+variables, and so on.  The mode also allows you to execute Tup commands.")
+    (license license:gpl3+)))
+
 (define-public emacs-company
   (package
     (name "emacs-company")
@@ -5693,6 +5896,33 @@ interactive searches to move multiple fake cursors.")
 simultaneous cursors.")
     (license license:gpl3+)))
 
+(define-public emacs-multifiles
+  ;; There is no tag and no "Version:" keyword.  Using the latest release
+  ;; instead.
+  (let ((commit "dddfe64b8e1c1cd1f9ccc1f03405477fc0d53897")
+        (revision "1"))
+    (package
+      (name "emacs-multifiles")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/magnars/multifiles.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "065l04ylplng1vgykkbn2vnkcs3sn1k2cikx1ha2q8wmgx6bkvai"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)))
+      (home-page "https://github.com/magnars/multifiles.el")
+      (synopsis "Edit multiple files in a single Emacs buffer")
+      (description
+       "This package allows one to view and edit parts of multiple files in
+one Emacs buffer.")
+      (license license:gpl3+))))
+
 (define-public emacs-mc-extras
   (let ((commit "053abc52181b8718559d7361a587bbb795faf164")
         (revision "1"))
@@ -6511,7 +6741,7 @@ cards created in Org mode.")
        (sha256
         (base32 "0vchyd80ybvr6317dwm50nxcgxfrpc0bz6259vnrh24p5sb8shbj"))))
     (build-system emacs-build-system)
-    (home-page "http://github.com/org-mime/org-mime")
+    (home-page "https://github.com/org-mime/org-mime")
     (synopsis "Send HTML email using Org mode HTML export")
     (description
      "This program sends HTML email using Org-mode HTML export.
@@ -6520,10 +6750,36 @@ useful for sending tables, fontified source code, and inline images in
 email.")
     (license license:gpl3+)))
 
+(define-public emacs-org-msg
+  ;; No git tags.  The commit below corresponds to the release of version 3.3.
+  (let ((commit "89e746c0a864031eef940758230bc7263a6f2289"))
+    (package
+      (name "emacs-org-msg")
+      (version "3.3")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jeremy-compostella/org-msg")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "15gd5zbxvdallyra9lmpb9i1r2mmwz0j0i0ra7j9imnbfiz3ln9r"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-htmlize" ,emacs-htmlize)))
+      (home-page "https://github.com/jeremy-compostella/org-msg")
+      (synopsis "Mix Org mode and Message mode to compose emails")
+      (description
+       "OrgMsg is a GNU Emacs global minor mode mixing up Org mode and your
+Mail User Agent Mode (Message, mu4e, or Notmuch) to compose and reply to
+emails in a Outlook HTML friendly style.")
+      (license license:gpl3+))))
+
 (define-public emacs-org-superstar
   (package
     (name "emacs-org-superstar")
-    (version "1.4.0")
+    (version "1.5.0")
     (source
      (origin
        (method git-fetch)
@@ -6532,7 +6788,7 @@ email.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1aklp6nk05ghpq7ybsbvn28wrygfwqvq58k1hjll97nbhd7h0gyb"))))
+        (base32 "12inin2p6pm6vbv3yc06fx343dsp0vp07fjb35w088akhikmqh2a"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-org" ,emacs-org)))
@@ -7097,7 +7353,7 @@ include installing, removing or visiting the homepage.")
 (define-public emacs-prescient
   (package
     (name "emacs-prescient")
-    (version "5.0")
+    (version "5.1")
     (source
      (origin
        (method git-fetch)
@@ -7106,7 +7362,7 @@ include installing, removing or visiting the homepage.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "001q4l730bhw4d508jxlpzh1z459qzpg6rbncp12jrfm5yidksix"))))
+        (base32 "0d6kbczkamhhcmc8bf01q6k1x0g7dwjihwllzsldgga3dclyh4ks"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-company" ,emacs-company)
@@ -7122,7 +7378,7 @@ for Ivy and Company that make use of the library.")
 (define-public emacs-selectrum
   (package
     (name "emacs-selectrum")
-    (version "3.0")
+    (version "3.1")
     (source
      (origin
        (method git-fetch)
@@ -7131,7 +7387,7 @@ for Ivy and Company that make use of the library.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0j10yxlikyg7qxcmp4fnddyd5nc3hlz080d1zcbijq020a08k86g"))))
+        (base32 "02jrki6vzyfyi1bbslki5pk2348flh9dz18jkc4y7p60bvbr52cb"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/raxod502/selectrum/")
     (synopsis "Incremental narrowing in Emacs")
@@ -7171,7 +7427,7 @@ style, or as multiple word prefixes.")
 (define-public emacs-consult
   (package
     (name "emacs-consult")
-    (version "0.4")
+    (version "0.6")
     (source
      (origin
        (method git-fetch)
@@ -7179,7 +7435,7 @@ style, or as multiple word prefixes.")
              (url "https://github.com/minad/consult")
              (commit version)))
        (sha256
-        (base32 "0rn98xkf1agyjiq7jqmc7cdq5zd9x9ym7r02wyd70xshvh7gm1rf"))
+        (base32 "09n3q3dyi83s4fk4z7csnjicbxd69ws4zp4371c1lbxcvvq2fdnd"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
@@ -7188,14 +7444,14 @@ style, or as multiple word prefixes.")
     (home-page "https://github.com/minad/consult")
     (synopsis "Consulting completing-read")
     (description "This package provides various handy commands based on the
-Emacs completion function completing-read, which allows to quickly select from a
+Emacs completion function completing-read, which allows quickly selecting from a
 list of candidates.")
     (license license:gpl3+)))
 
 (define-public emacs-marginalia
   (package
     (name "emacs-marginalia")
-    (version "0.2")
+    (version "0.4")
     (source
      (origin
        (method git-fetch)
@@ -7204,7 +7460,7 @@ list of candidates.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0lbng4l5h3c61m9pbgnwzp89y40b71l8ygf5r98m8yagqzvxjaj1"))))
+        (base32 "0piwzxp1zmwp876kyca0xcgyxgn8bn4wh5fnn88dkvdzi8mcgmkh"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/minad/marginalia")
     (synopsis "Marginalia in the minibuffer completions")
@@ -7664,13 +7920,13 @@ hydras with one column per group of heads.")))
 (define-public emacs-ivy
   (package
     (name "emacs-ivy")
-    (version "0.13.1")
+    (version "0.13.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/ivy-" version ".tar"))
        (sha256
-        (base32 "0n0ixhdykbdpis4krkqq6zncbby28p34742q96n0l91w0p19slcx"))))
+        (base32 "0qpza1c45mr8fcpnm32cck4v22fnzz1yb7kww05rzgq1k9iivx5v"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-hydra" ,emacs-hydra)))
@@ -7688,14 +7944,14 @@ expression.")
 (define-public emacs-counsel
   (package
     (name "emacs-counsel")
-    (version "0.13.1")
+    (version "0.13.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
-                           "counsel-" version ".el"))
+                           "counsel-" version ".tar"))
        (sha256
-        (base32 "1y3hr3j5bh5mbyh1cqzxx04181qpvj4xyv1gym2gxcjd30nfllli"))))
+        (base32 "094zfapfn1l8wjf3djkipk0d9nks0g77sbk107pfsbr3skkzh031"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-swiper" ,emacs-swiper)))
@@ -7721,14 +7977,13 @@ The following completions are currently available:
 (define-public emacs-swiper
   (package
     (name "emacs-swiper")
-    (version "0.13.1")
+    (version "0.13.4")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://elpa.gnu.org/packages/"
-                           "swiper-" version ".el"))
+       (uri (string-append "https://elpa.gnu.org/packages/swiper-" version ".tar"))
        (sha256
-        (base32 "06ild7kck0x5ry8bf0al24nh04q01q3jhj6jjl4xz8n2s6jnn70y"))))
+        (base32 "197pq2cvvskib87aky907wv2am55vilr7y5dabmmm07a8vr9py0v"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)))
@@ -7825,30 +8080,35 @@ use it, call @code{M-x ivy-yasnippet} (but make sure you have enabled
 @code{yas-minor-mode} first).")
       (license license:gpl3+))))
 
+;; The 0.1.6 release is incompatible with newer ivy versions, so we instead
+;; pick a more recent snapshot of the repository, see
+;; https://github.com/Yevgnen/ivy-rich/pull/80.
 (define-public emacs-ivy-rich
-  (package
-    (name "emacs-ivy-rich")
-    (version "0.1.6")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/Yevgnen/ivy-rich")
-             (commit version)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "1ra18v6lgz3m6asm6d5b92zn1x22yiz4cwxd9b54dnvwi11121m7"))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-ivy" ,emacs-ivy)))
-    (home-page "https://github.com/Yevgnen/ivy-rich")
-    (synopsis "More friendly interface for @code{ivy}")
-    (description
-     "This package extends Ivy by showing more information in the minibuffer
+  (let ((commit "7b9b7b20c3ead81da90232cd6707dfad3c1f1eb3")
+        (revision "1"))
+    (package
+      (name "emacs-ivy-rich")
+      (version (git-version "0.1.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Yevgnen/ivy-rich")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03p13z609ighdq4axls93alqfl7pclx12g4vdd7lwpcy0r0cgyf8"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-ivy" ,emacs-ivy)))
+      (home-page "https://github.com/Yevgnen/ivy-rich")
+      (synopsis "More friendly interface for @code{ivy}")
+      (description
+       "This package extends Ivy by showing more information in the minibuffer
 for each candidate.  It adds columns showing buffer modes, file sizes,
 docstrings, etc.  If @code{emacs-all-the-icons} is installed, it can show
 icons as well.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-avy
   (package
@@ -8340,7 +8600,7 @@ builtin JavaScript mode.")
                (base32
                 "0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
     (build-system emacs-build-system)
-    (home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
+    (home-page "https://www.dr-qubit.org/emacs_data-structures.html")
     (synopsis "Queue data structure for Emacs")
     (description
      "This Emacs library provides queue data structure.  These queues can be
@@ -8528,6 +8788,69 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
 programming language.")
       (license license:expat)))
 
+(define-public emacs-julia-repl
+  (package
+    (name "emacs-julia-repl")
+    (version "1.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/tpapp/julia-repl")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "11vpqqnxqj9nxh8kccj4y6h3f8lib6jxnsk6vxc2j2fqw6alnafm"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/tpapp/julia-repl")
+    (synopsis "Minor mode for interacting with a Julia REPL")
+    (description "This package provides a minor mode for interacting with a
+Julia REPL running inside Emacs.  The julia process is started in an ANSI
+terminal (term), which allows text formatting and colors, and interaction with
+the help system and the debugger.  It is recommended that you use this minor
+mode with the package emacs-julia-mode.")
+    (license license:expat)))
+
+(define-public emacs-julia-snail
+  (package
+    (name "emacs-julia-snail")
+    (version "1.0.0rc4")               ;rc5 requires CSTParser (julia package)
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gcv/julia-snail")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "065ix3jycsx3wvkq7a6060i93caxisdvgxgqb1l6rq15n4qln78y"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'JuliaSnail-jl
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "JuliaSnail.jl"
+                             (string-append out "/share/emacs/site-lisp/")))
+             #t)))))
+    (inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-s" ,emacs-s)
+       ("emacs-spinner" ,emacs-spinner)
+       ("emacs-xref" ,emacs-xref)))
+    (propagated-inputs
+     `(("libvterm" ,libvterm)
+       ("emacs-julia-mode" ,emacs-julia-mode) ;required by parser
+       ("emacs-parsec" ,emacs-parsec)         ;required by parser
+       ("emacs-vterm" ,emacs-vterm)))
+    (home-page "https://github.com/gcv/julia-snail")
+    (synopsis "Development environment and REPL interaction package for Julia")
+    (description "This package provides a development environment and REPL
+interaction package for Julia in the spirit of Common Lisp’s SLIME and
+Clojure’s CIDER.  It enables convenient and dynamic REPL-driven development.")
+    (license license:gpl3)))
+
 (define-public emacs-smex
   (package
     (name "emacs-smex")
@@ -8911,12 +9234,64 @@ duplicated a lot.  Org-mode makes the book keeping of tags and feeds
 much easier.")
       (license license:gpl3+))))
 
-(define-public emacs-el-x
+(define-public emacs-elfeed-protocol
   (package
-    (name "emacs-el-x")
-    (version "0.3.1")
-    (source (origin
-              (method git-fetch)
+    (name "emacs-elfeed-protocol")
+    (version "0.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fasheng/elfeed-protocol")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "07r1qlldgd0kfikd0y737y5n42ab3nkw2s5jx7frimj41yandbdp"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-elfeed" ,emacs-elfeed)))
+    (home-page "https://github.com/fasheng/elfeed-protocol")
+    (synopsis "Fever/NewsBlur/ownCloud/tt-RSS protocols for Elfeed")
+    (description
+     "Elfeed-protocol provides extra protocols to make self-hosting RSS
+readers like Fever, NewsBlur, ownCloud News and Tiny TIny RSS work
+with Elfeed.")
+    (license license:gpl3+)))
+
+(define-public emacs-elfeed-score
+  (package
+    (name "emacs-elfeed-score")
+    (version "0.7.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sp1ff/elfeed-score")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07xid0a31ghknbfwj8dxzbqkg4sfayjhlqvp17p2bzlf1mj0zjyd"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-elfeed" ,emacs-elfeed)))
+    (home-page "https://github.com/sp1ff/elfeed-score")
+    (synopsis "Gnus-style scoring for Elfeed")
+    (description
+     "Elfeed-score is an add-on for Elfeed, an RSS reader for Emacs.  It
+brings Gnus-style scoring to your RSS feeds.  Elfeed, by default, displays
+feed entries by date.  This package allows you to setup rules for assigning
+numeric scores to entries, and sorting entries with higher scores ahead of
+those with lower, regardless of date.  The idea is to prioritize content
+important to you.")
+    (license license:gpl3+)))
+
+(define-public emacs-el-x
+  (package
+    (name "emacs-el-x")
+    (version "0.3.1")
+    (source (origin
+              (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/sigma/el-x")
                     (commit (string-append "v" version))))
@@ -9108,6 +9483,15 @@ indentation guides in Emacs:
      `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-ffip-project-search-call
+           (lambda _
+             ;; Since version 6.0.0 of find-file-in-project,
+             ;; ffip-project-search doesn't accept a third argument anymore
+             ;; (see: https://github.com/jorgenschaefer/elpy/issues/1889).
+             (substitute* "elpy.el"
+               (("\\((ffip-project-search nil nil) project-root\\)" _ signature)
+                (format #f "(let ((ffip-project-root project-root)) (~a))"
+                        signature)))))
          ;; The default environment of the RPC uses Virtualenv to install
          ;; Python dependencies from PyPI.  We don't want/need this in Guix.
          (add-before 'check 'do-not-use-virtualenv
@@ -9448,7 +9832,7 @@ client/server side engines).  Web mode is compatible with many template
 engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
 Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
 Dust.js, React/JSX, Angularjs, ejs, etc.")
-    (home-page "http://web-mode.org/")
+    (home-page "https://web-mode.org/")
     (license license:gpl3+)))
 
 (define-public emacs-templatel
@@ -9767,12 +10151,12 @@ CIDER).")
 
 (define-public emacs-sly
   ;; Update together with sbcl-slynk.
-  (let ((commit "0f46f91a9542599d62c0c332b39636b2941ea372"))
+  (let ((commit "fb84318c08f59bc786e047006fc81e2ace568309"))
     ;; Versions are not always tagged.  Besides, latest master contains
     ;; important fixes.
     (package
       (name "emacs-sly")
-      (version (git-version "1.0.43" "3" commit))
+      (version (git-version "1.0.43" "4" commit))
       (source
        (origin
          (method git-fetch)
@@ -9782,7 +10166,7 @@ CIDER).")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0p3j0zylacy6vms8ngis2hx2351xnwfzsw3zy043q6vmqd14wrf1"))))
+           "0z123k9ak7yjb9bxb5qx48f33ma8066rhkqh8xc14z7shk75jybj"))))
       (build-system emacs-build-system)
       (native-inputs
        `(("texinfo" ,texinfo)))
@@ -10092,7 +10476,7 @@ Lua programming language}.")
 (define-public emacs-ebuild-mode
   (package
     (name "emacs-ebuild-mode")
-    (version "1.51")
+    (version "1.52")
     (source
      (origin
        (method url-fetch)
@@ -10101,7 +10485,7 @@ Lua programming language}.")
              "ebuild-mode-" version ".tar.xz"))
        (file-name (string-append name "-" version ".tar.xz"))
        (sha256
-        (base32 "0sfmd6ns2qdmybcynlvc4fqzkbkzmm54rn87wyirdcqnpy0x03i2"))))
+        (base32 "10nikbbwh612qlnms2i31963a0h3ccyg85vrxlizdpsqs4cjpg6h"))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
@@ -10700,13 +11084,13 @@ passive voice.")
     (name "emacs-org")
     ;; emacs-org-contrib inherits from this package.  Please update it as
     ;; well.
-    (version "9.4.4")
+    (version "9.4.5")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/org-" version ".tar"))
        (sha256
-        (base32 "05ma8n6hr10323d85ay8ai0xrpc9q2m93n8avqh7j9fmmb3bhr0b"))))
+        (base32 "0h5qhrd984vf17qc227wz68191xfgbpq32dyhw0lcz2d9i0pl3xk"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -10727,7 +11111,7 @@ passive voice.")
                     (doc-dir (string-append share "/doc/" ,name "-" ,version)))
                (install-file "org.info" info-dir)
                (install-file "orgguide.info" info-dir)
-               ;; XXX: "orgcard.pdf" is not built in Org 9.4.4.
+               ;; XXX: "orgcard.pdf" is not built in Org 9.4.5.
                ;; (install-file "orgcard.pdf" doc-dir)
                )
              #t)))))
@@ -10743,14 +11127,14 @@ programming and reproducible research.")
   (package
     (inherit emacs-org)
     (name "emacs-org-contrib")
-    (version "20201222")
+    (version "20210329")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://orgmode.org/elpa/"
                            "org-plus-contrib-" version ".tar"))
        (sha256
-        (base32 "1pa8h5dpi5yj3j7v0aaby8sjwxvmgnbip2ilyl5pac1rlbz0jn40"))
+        (base32 "1l0ycz77hwmjb4sffhabb0d0hg1c9ypxbpbyv8xj5ib4nbi87f2h"))
        ;; ob-sclang.el is packaged separately to avoid the dependency on
        ;; SuperCollider and qtwebengine.
        (modules '((guix build utils)))
@@ -11913,14 +12297,14 @@ performance-oriented and tidy.")
 (define-public emacs-leaf
   (package
     (name "emacs-leaf")
-    (version "4.3.2")
+    (version "4.4.4")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "leaf-" version ".tar"))
        (sha256
-        (base32 "190sfnnii9jnj8amjkdabd8w9k2xyalhg4h488a5gzjxdzz2s6zi"))))
+        (base32 "1npg06zmy21kg2qsqgfm03l7vjib697i96awypcdb0hw5mvmc1a1"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/conao3/leaf.el")
     (synopsis "Simplify your init.el configuration, extended use-package")
@@ -12165,7 +12549,7 @@ using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
 (define-public emacs-php-mode
   (package
     (name "emacs-php-mode")
-    (version "1.23.0")
+    (version "1.24.0")
     (source
      (origin
        (method git-fetch)
@@ -12174,8 +12558,15 @@ using Imenu, and Compilation mode support for MSBuild, devenv and xbuild.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0wnkcxg6djy4jvxhshiy1iw6b5cf79pjwjhfd1a060cavhfm4v5c"))))
+        (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
     (build-system emacs-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-source-directory
+           (lambda _
+             (chdir "lisp"))))))
+    (propagated-inputs `(("emacs-projectile" ,emacs-projectile)))
     (home-page "https://github.com/ejmr/php-mode")
     (synopsis "Major mode for editing PHP code")
     (description
@@ -12235,16 +12626,13 @@ containing words from the Rime project.")
 (define-public emacs-pyim
   (package
     (name "emacs-pyim")
-    (version "2.0")
+    (version "3.2")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/tumashu/pyim")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
        (sha256
-        (base32 "06ahzyi2h353xj17mzsm9fxmkc6cyzd1mjzmvqfw8cyv538nijc0"))))
+        (base32 "1rr9mq334dqf7mx1ii7910zkigw7chl63iws4sw0qsn014kjlb0a"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -12254,21 +12642,22 @@ containing words from the Rime project.")
        ("emacs-xr" ,emacs-xr)))
     (home-page "https://github.com/tumashu/pyim")
     (synopsis "Chinese input method")
-    (description "Chinese input method which supports quanpin, shuangpin, wubi
-and cangjie.")
+    (description
+     "This package provides a Chinese input method which supports quanpin,
+shuangpin, wubi and cangjie.")
     (license license:gpl2+)))
 
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "0.8.5")
+    (version "1.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "posframe-" version ".tar"))
        (sha256
-        (base32 "0rls0rsj9clx4wd0gbdi5jzwyslparlf7phib649637gq6gs90ds"))))
+        (base32 "17znlh5xkk57imbblnfndwvld9m02h5fkr9gys89n2skdbxw9c7r"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
@@ -12627,15 +13016,16 @@ and supports the use of a mouse.")
 (define-public emacs-transpose-frame
   (package
     (name "emacs-transpose-frame")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
-       (method url-fetch)
-       (uri "https://www.emacswiki.org/emacs/download/transpose-frame.el")
-       (file-name (string-append "transpose-frame-" version ".el"))
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacsorphanage/transpose-frame")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1f67yksgw9s6j0033hmqzaxx2a93jm11sd5ys7cc3li5gfh680m4"))))
+        (base32 "01j4ci0c52r2c31hc9r4p7nsb6s8blmvg50g9n5v5h3afjl1c35v"))))
     (build-system emacs-build-system)
     (home-page "https://www.emacswiki.org/emacs/TransposeFrame")
     (synopsis "Transpose window arrangement in current frame")
@@ -12780,7 +13170,8 @@ Emacs.")
         (base32 "1zvs144hxq2mmq1h0ynx9hy7yyccb46f3pjg9mgq8v9cw5y678vk"))))
     (build-system emacs-build-system)
     (propagated-inputs
-     `(("emacs-jsonrpc" ,emacs-jsonrpc)
+     `(("emacs-eldoc" ,emacs-eldoc)
+       ("emacs-jsonrpc" ,emacs-jsonrpc)
        ("emacs-project" ,emacs-project)))
     (home-page "https://github.com/joaotavora/eglot")
     (synopsis "Client for Language Server Protocol (LSP) servers")
@@ -12791,6 +13182,30 @@ for the current file, using the major mode as a hint.  It prompts you to enter
 one if it fails.")
     (license license:gpl3+)))
 
+(define-public emacs-eldoc
+  (package
+    (name "emacs-eldoc")
+    (version "1.11.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/eldoc-" version ".el"))
+       (sha256
+        (base32 "1py9l1vl7s90y5kfpglhy11jswam2gcrqap09h6wb5ldnyb8cgq2"))))
+    (build-system emacs-build-system)
+    (home-page "http://elpa.gnu.org/packages/eldoc.html")
+    (synopsis "Show function arglist or variable docstring in echo area")
+    (description
+     "This program was inspired by the behavior of the ``mouse documentation
+window'' on many Lisp Machine systems; as you type a function's symbol name as
+part of a sexp, it will print the argument list for that function.  Behavior
+is not identical; for example, you need not actually type the function name,
+you need only move point around in a sexp that calls it.  Also, if point is
+over a documented variable, it will print the one-line documentation for that
+variable instead, to remind you of that variable's meaning.")
+    (license license:gpl3+)))
+
 ;; Tests for ert-runner have a circular dependency with ecukes, and therefore
 ;; cannot be run
 (define-public emacs-ert-runner
@@ -13519,6 +13934,32 @@ query them from the comfort of your editor.")
     (home-page "https://github.com/hrs/engine-mode")
     (license license:gpl3+)))
 
+(define-public emacs-envrc
+  (package
+    (name "emacs-envrc")
+    (version "0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/envrc")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0ssf9i6iym2rb530k2w5aj392qa73i6p5y0vwrs5qhkv9lagqq7p"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/purcell/envrc")
+    (synopsis "Support for Direnv which operates buffer-locally")
+    (description
+     "This is library which uses Direnv to set environment variables on
+a per-buffer basis.  This means that when you work across multiple projects
+which have @file{.envrc} files, all processes launched from the buffers ``in''
+those projects will be executed with the environment variables specified in
+those files.  This allows different versions of linters and other tools to be
+used in each project if desired.")
+    (license license:gpl3+)))
+
 (define-public emacs-prop-menu
   (package
     (name "emacs-prop-menu")
@@ -13789,14 +14230,14 @@ write applications that use WebSockets, and is not useful by itself.")
 (define-public emacs-oauth2
   (package
     (name "emacs-oauth2")
-    (version "0.15")
+    (version "0.16")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
-                           "oauth2-" version ".el"))
+                           "oauth2-" version ".tar"))
        (sha256
-        (base32 "0ij17g6i8d4cyzc8v6sy2qglwhzd767331gavll6d507krdh3ca3"))))
+        (base32 "1rzly2nwjywrfgcmp8zidbmjl2ahyd8l8507lb1mxm4xqryvf316"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/oauth2.html")
     (synopsis "OAuth 2.0 authorization protocol implementation")
@@ -13945,7 +14386,7 @@ messaging service.")
            ;; HOME needs to exist for source compilation.
            (add-before 'build 'set-HOME
              (lambda _ (setenv "HOME" "/tmp") #t)))))
-      (propagated-inputs `(("emacs-slack"emacs-slack)))
+      (propagated-inputs `(("emacs-slack" ,emacs-slack)))
       (home-page "https://github.com/yuya373/helm-slack")
       (synopsis "Helm extension for emacs-slack")
       (description "This package provides an helm extension for emacs-slack
@@ -13991,14 +14432,14 @@ and shell-command prompts that are based on Bash completion.")
 (define-public emacs-easy-kill
   (package
     (name "emacs-easy-kill")
-    (version "0.9.3")
+    (version "0.9.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
                                   version ".tar"))
               (sha256
                (base32
-                "17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
+                "1pqqv4dhfm00wqch4wy3n2illsvxlz9r6r64925cvq3i7wq4la1x"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/leoliu/easy-kill")
     (synopsis "Kill and mark things easily in Emacs")
@@ -14010,14 +14451,14 @@ let users kill or mark things easily.")
 (define-public emacs-csv-mode
   (package
     (name "emacs-csv-mode")
-    (version "1.14")
+    (version "1.15")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "csv-mode-" version ".tar"))
        (sha256
-        (base32 "1jz4134pk8dwzsqih9wybx4l9yl244cgcilw8rdnnqmm8i6vxgrp"))))
+        (base32 "0pigqhqg5mfza6jdskcr9yvrzdxnd68iyp3vyb8p8wskdacmbiyx"))))
     (build-system emacs-build-system)
     (home-page "https://elpa.gnu.org/packages/csv-mode.html")
     (synopsis "Major mode for editing comma/char separated values")
@@ -14372,6 +14813,32 @@ navigation with the grails mode.")
 from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
       (license license:gpl3+))))
 
+(define-public emacs-kotlin-mode
+  (let ((commit "0e4bafb31d1fc2a0a420a521c2723d5526646c0b")
+        (revision "1"))
+    (package
+      (name "emacs-kotlin-mode")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "09inpgwmnnqaakyn4r4xs8kax8b89dw94kvl521x6d43h9zl5i70"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:tests? #t
+         #:test-command '("ert-runner" "-L" "." "-L" "test")))
+      (native-inputs `(("emacs-ert-runner" ,emacs-ert-runner)))
+      (home-page "https://github.com/Emacs-Kotlin-Mode-Maintainers/kotlin-mode")
+      (synopsis "Major major-mode for editing Kotlin files")
+      (description
+       "This package provides a @code{kotlin-mode} for editing Kotlin files.")
+      (license license:gpl3+))))
+
 (define-public emacs-org-tree-slide
   (let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
         (revision "2"))
@@ -14397,42 +14864,40 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
       (license license:gpl3+))))
 
 (define-public emacs-scratch-el
-  (let ((commit "2cdf2b841ce7a0987093f65b0cc431947549f897")
-        (revision "1"))
-    (package
-      (name "emacs-scratch-el")
-      (version (git-version "1.2" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/ieure/scratch-el")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0wscsndynjmnliajqaz28r1ww81j8wh84zwaaswx51abhwgl0idf"))))
-      (build-system emacs-build-system)
-      (native-inputs
-       `(("texinfo" ,texinfo)))
-      (arguments
-       '(#:phases
-         (modify-phases %standard-phases
-           (add-after 'install 'install-doc
-             (lambda* (#:key outputs #:allow-other-keys)
-               (unless (invoke "makeinfo" "scratch.texi")
-                 (error "makeinfo failed"))
-               (install-file "scratch.info"
-                             (string-append (assoc-ref outputs "out")
-                                            "/share/info"))
-               #t)))))
-      (home-page "https://github.com/ieure/scratch-el/")
-      (synopsis "Create scratch buffers with the same mode as current buffer")
-      (description "Scratch is an extension to Emacs that enables one to create
+  (package
+    (name "emacs-scratch-el")
+    (version "1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/ieure/scratch-el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0yiwq2gc4gdgfhaagpawhb7yrzc4fsnyb10w5d0q4whv64cj8555"))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'install-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (unless (invoke "makeinfo" "scratch.texi")
+               (error "makeinfo failed"))
+             (install-file "scratch.info"
+                           (string-append (assoc-ref outputs "out")
+                                          "/share/info"))
+             #t)))))
+    (home-page "https://github.com/ieure/scratch-el/")
+    (synopsis "Create scratch buffers with the same mode as current buffer")
+    (description "Scratch is an extension to Emacs that enables one to create
 scratch buffers that are in the same mode as the current buffer.  This is
 notably useful when working on code in some language; you may grab code into a
 scratch buffer, and, by virtue of this extension, do so using the Emacs
 formatting rules for that language.")
-      (license license:bsd-2))))
+    (license license:bsd-2)))
 
 (define-public emacs-kv
   (package
@@ -14661,10 +15126,10 @@ functionality is inherited from @code{hcl-mode}.")
          "1ga8bpxngd3ph2hdiik92c612ki71qxw818i6rgx6f6a5r0sbf3p"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/exec-path-from-shell")
-    (synopsis "Get environment variables such as @var{PATH} from the shell")
+    (synopsis "Get environment variables such as @env{PATH} from the shell")
     (description
-     "This library allows the user to set Emacs @var{exec-path} and @var{PATH}
-from the shell @var{PATH}, so that @code{shell-command}, @code{compile} and
+     "This library allows the user to set Emacs @code{exec-path} and @env{PATH}
+from the shell's @env{PATH}, so that @code{shell-command}, @code{compile} and
 the like work as expected on systems on which Emacs is not guaranteed to
 inherit a login shell's environment variables.  It also allows other
 environment variables to be retrieved from the shell, so that Emacs will see
@@ -14836,39 +15301,71 @@ close, copy, cut, paste, undo, redo.")
       (license license:gpl3+))))
 
 (define-public emacs-password-store
+  (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
+        (revision "1"))
+    (package
+      (name "emacs-password-store")
+      ;; The emacs package version does not match the password-store version,
+      ;; even though it is part of the same repository.  When updating, look
+      ;; at the version declared in password-store.el.
+      (version (git-version "2.1.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "git://git.zx2c4.com/password-store")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))
+                (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'extract-el-file
+             (lambda _
+               (copy-file "contrib/emacs/password-store.el" "password-store.el")
+               (delete-file-recursively "contrib")
+               (delete-file-recursively "man")
+               (delete-file-recursively "src")
+               (delete-file-recursively "tests"))))))
+      (propagated-inputs
+       `(("emacs-auth-source-pass" ,emacs-auth-source-pass)
+         ("emacs-s" ,emacs-s)
+         ("emacs-with-editor" ,emacs-with-editor)
+         ("password-store" ,password-store)))
+      (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
+      (synopsis "Password store (pass) support for Emacs")
+      (description
+       "This package provides functions for working with pass (\"the
+standard Unix password manager\").")
+      (license license:gpl2+))))
+
+(define-public emacs-password-store-otp
   (package
-    (name "emacs-password-store")
-    (version "1.7.3")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "https://git.zx2c4.com/password-store/snapshot/"
-                              "password-store-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1x53k5dn3cdmvy8m4fqdld4hji5n676ksl0ql4armkmsds26av1b"))))
+    (name "emacs-password-store-otp")
+    (version "0.1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/volrath/password-store-otp.el")
+             (commit version)))
+       (sha256
+        (base32 "0gb48blvnn6ci2wl45z81p41ny7vbgl610hqy6b2hyr2171qjd60"))
+       (file-name (git-file-name name version))))
     (build-system emacs-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'extract-el-file
-           (lambda _
-             (copy-file "contrib/emacs/password-store.el" "password-store.el")
-             (delete-file-recursively "contrib")
-             (delete-file-recursively "man")
-             (delete-file-recursively "src")
-             (delete-file-recursively "tests"))))))
     (propagated-inputs
-     `(("emacs-f" ,emacs-f)
-       ("emacs-s" ,emacs-s)
-       ("emacs-with-editor" ,emacs-with-editor)
-       ("password-store" ,password-store)))
-    (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
-    (synopsis "Password store (pass) support for Emacs")
-    (description
-     "This package provides functions for working with pass (\"the
-standard Unix password manager\").")
-    (license license:gpl2+)))
+     `(("emacs-password-store" ,emacs-password-store)
+       ("emacs-s" ,emacs-s)))
+    (home-page "https://github.com/volrath/password-store-otp.el")
+    (synopsis
+     "Interact with the @code{pass-otp} extension for @code{pass} from Emacs")
+    (description "This package provides Emacs functions to interact with the
+@code{pass-otp} extension for @code{pass}.  It includes functions to import
+OTP URIs from screenshots of QR codes, and to export them back to QR codes if
+needed.")
+    (license license:gpl3+)))
 
 (define-public emacs-auth-source-pass
   (let ((commit "847a1f54ed48856b4dfaaa184583ef2c84173edf")
@@ -15220,7 +15717,7 @@ Emacs.")
 (define-public emacs-elisp-slime-nav
   (package
     (name "emacs-elisp-slime-nav")
-    (version "0.9")
+    (version "0.10")
     (source
      (origin
        (method git-fetch)
@@ -15229,7 +15726,7 @@ Emacs.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "11vyy0bvzbs1h1kggikrvhd658j7c730w0pdp6qkm60rigvfi1ih"))))
+        (base32 "08k4zlawjkb0ldn4lgrhih8nzln398x7dwzpipqfyrmp0xziywma"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/purcell/elisp-slime-nav")
     (synopsis "Make @code{M-.} and @code{M-,} work for elisp like they do in SLIME")
@@ -15585,7 +16082,7 @@ according to a parsing expression grammar.")
 (define-public emacs-eldev
   (package
     (name "emacs-eldev")
-    (version "0.7.2")
+    (version "0.8.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -15594,7 +16091,7 @@ according to a parsing expression grammar.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1xxcxgycn0a03irjcdq2pcb4p1bddhfjspni7lliwpv6zjqgkyhb"))))
+                "19s45hdhcg5l608awfxvmhd61xzp7dd5pvviv89xzzksx74l1188"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -15607,6 +16104,12 @@ according to a parsing expression grammar.")
              (make-file-writable
               "test/project-i/project-i-autoloads.el")
              #t))
+         (add-after 'unpack 'skip-failing-tests
+           ;; FIXME: 10 tests are failing.  Skip them for now.
+           (lambda _
+             (substitute* '("test/init.el" "test/targets.el")
+               (("(targets-project-e-[34]|init-[1-8]).*" line)
+                (string-append line "(skip-unless nil)\n")))))
          (add-after 'install 'install-eldev-executable
            ;; This constructs the eldev executable from templates and
            ;; installs it in the specified directory.
@@ -15747,7 +16250,7 @@ files to be expanded upon opening them.")
 (define-public emacs-parsebib
   (package
     (name "emacs-parsebib")
-    (version "2.3.3")
+    (version "2.4.1")
     (source
      (origin
        (method git-fetch)
@@ -15756,7 +16259,7 @@ files to be expanded upon opening them.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
+        (base32 "1d3ysh82gh5mg07hlz3ll782lldnaj0xmyabv18jln4y2xd7ncni"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/joostkremers/parsebib")
     (synopsis "Library for parsing @file{.bib} files")
@@ -16404,7 +16907,7 @@ mode.")
 (define-public emacs-edit-server
   (package
     (name "emacs-edit-server")
-    (version "1.15")
+    (version "1.16")
     (source
      (origin
        (method git-fetch)
@@ -16413,7 +16916,7 @@ mode.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0xxby3ghs38i1l7kag12rnzlzcg9297pm8k6kqq3aqzsg9d2950y"))))
+        (base32 "0m7gj224sqxjjw5sxky92fnrxg9jy4nf33kwf0aqxnfhqlgh545k"))))
     (build-system emacs-build-system)
     (arguments
      `(#:phases
@@ -16422,6 +16925,7 @@ mode.")
            ;; Elisp directory is not in root of the source.
            (lambda _
              (chdir "servers"))))))
+    (propagated-inputs `(("emacs-ert-async" ,emacs-ert-async)))
     (home-page "https://github.com/stsquad/emacs_chrome")
     (synopsis "Server that responds to edit requests from Chromium")
     (description
@@ -16785,29 +17289,27 @@ within Emacs.")
       (license license:gpl3+))))
 
 (define-public emacs-ibuffer-projectile
-  (let ((commit "76496214144687cee0b5139be2e61b1e400cac87")
-        (revision "2"))
-    (package
-      (name "emacs-ibuffer-projectile")
-      (version (git-version "0.2" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/purcell/ibuffer-projectile")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0vv9xwb1qd5x8zhqmmsn1nrpd11cql9hxb7483nsdhcfwl4apqav"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-projectile" ,emacs-projectile)))
-      (home-page "https://github.com/purcell/ibuffer-projectile")
-      (synopsis "Group ibuffer's list by projectile root")
-      (description "Adds functionality to Emacs @code{ibuffer} for
+  (package
+    (name "emacs-ibuffer-projectile")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/purcell/ibuffer-projectile")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "18cqxnwzzbkcj9jcaw89b210432yzhrl1dwsv48p0jbhfnr17k41"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-projectile" ,emacs-projectile)))
+    (home-page "https://github.com/purcell/ibuffer-projectile")
+    (synopsis "Group ibuffer's list by projectile root")
+    (description "Adds functionality to Emacs @code{ibuffer} for
 grouping buffers by their projectile root directory.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-elm-mode
   (package
@@ -17056,7 +17558,7 @@ powerful Org contents.")
 (define-public emacs-org-re-reveal
   (package
     (name "emacs-org-re-reveal")
-    (version "3.1.1")
+    (version "3.7.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -17065,7 +17567,7 @@ powerful Org contents.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0an799lxy1j48zlg00982d1rhg46ls4fz4v7r7qdh6228icq5hij"))))
+                "1vzn0l8ig4rzh5h8j7kxn8kslqrij97qqv98fbnlwmrw4z87v8dr"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-htmlize" ,emacs-htmlize)
@@ -17380,32 +17882,31 @@ Emacs.")
       (license license:gpl3+))))
 
 (define-public emacs-magit-org-todos-el
-  (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
-    (package
-      (name "emacs-magit-org-todos-el")
-      (version (git-version "0.1.1" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/danielma/magit-org-todos.el")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
-      (propagated-inputs
-       `(("magit" ,emacs-magit)))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/danielma/magit-org-todos.el")
-      (synopsis "Get todo.org into Emacs Magit status")
-      (description "This package allows you to get @file{todo.org} into your
+  (package
+    (name "emacs-magit-org-todos-el")
+    (version "0.1.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/danielma/magit-org-todos.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07r5x256k1fjjxs1yfg41kc94nwvnjlk2vvknkra3j8v9p0j88m7"))))
+    (propagated-inputs
+     `(("magit" ,emacs-magit)))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/danielma/magit-org-todos.el")
+    (synopsis "Get todo.org into Emacs Magit status")
+    (description "This package allows you to get @file{todo.org} into your
 magit status.
 
 If you have a @file{todo.org} file with @code{TODO} items in the root of your
 repository, @code{magit-org-todos} will create a section in your Magit status
 buffer with each of your todos.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-vcsh
   (package
@@ -17634,55 +18135,47 @@ interactive behavior should be different.")
     (license license:gpl3+)))
 
 (define-public emacs-default-text-scale
-  (let ((commit "968e985e219235f3e744d6d967e592acbaf6e0a8")
-        (revision "1"))
-    (package
-      (name "emacs-default-text-scale")
-      (version (string-append "0.1" "-" revision "."
-                              (string-take commit 7)))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/purcell/default-text-scale")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0zds01c3q5yny6ab1fxfkzzgn1kgl3q23lxxap905f4qd70v922h"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/purcell/default-text-scale")
-      (synopsis "Adjust the font size in all Emacs frames")
-      (description "This package provides commands for increasing or
+  (package
+    (name "emacs-default-text-scale")
+    (version "0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/purcell/default-text-scale")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0h42jiwxrxjmk7ccwh3h25n7dy2rq61ncm5wx27jhkncc5jdm4h6"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/purcell/default-text-scale")
+    (synopsis "Adjust the font size in all Emacs frames")
+    (description "This package provides commands for increasing or
 decreasing the default font size in all GUI Emacs frames.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-mixed-pitch
-  ;; This commit contains fixes for visual alignment of line numbers and
-  ;; org-indent-mode.
-  (let ((commit "d305108f9520e196b533f05d1dcc284cf535faaf")
-        (tag "1.1.0")
-        (revision "0"))
-    (package
-      (name "emacs-mixed-pitch")
-      (version (git-version tag revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://gitlab.com/jabranham/mixed-pitch.git")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0yx89is3g2m8af8vfsz5rgjmfmx7mfrxlffb1x6y4b8lh9l0k6dj"))))
-      (build-system emacs-build-system)
-      (home-page "https://gitlab.com/jabranham/mixed-pitch")
-      (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
-      (description
-       "@code{mixed-pitch-mode} is a minor mode that enables mixing
+  (package
+    (name "emacs-mixed-pitch")
+    (version "1.1.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/jabranham/mixed-pitch.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dhljrh44dsnixd8hbb11k6dgap8r8n7jknhfy2afdzq889fih74"))))
+    (build-system emacs-build-system)
+    (home-page "https://gitlab.com/jabranham/mixed-pitch")
+    (synopsis "Mix variable- and fixed-pitch fonts in the same Emacs buffer")
+    (description
+     "@code{mixed-pitch-mode} is a minor mode that enables mixing
 variable-pitch and fixed-pitch fonts in the same buffer.  The list
 @code{mixed-pitch-fixed-pitch-faces} defines the faces that are kept
 fixed-pitch,everything else becomes variable-pitch.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-visual-regexp
   (package
@@ -17791,29 +18284,26 @@ compilation/grep buffers.  Works with @code{wgrep}, @code{ack}, @code{ag},
       (license license:gpl3+))))
 
 (define-public emacs-helm-firefox
-  (let ((commit "0ad34b7b5abc485a86cae6920c14de861cbeb085")
-        (revision "1"))
-    (package
-      (name "emacs-helm-firefox")
-      (version (string-append "0.0.1" "-" revision "."
-                              (string-take commit 7)))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/emacs-helm/helm-firefox")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/emacs-helm/helm-firefox")
-      (synopsis "Display firefox bookmarks with Emacs Helm interface")
-      (description "Display firefox bookmarks with Emacs Helm interface")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-helm-firefox")
+    (version "1.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-helm/helm-firefox")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/emacs-helm/helm-firefox")
+    (synopsis "Display firefox bookmarks with Emacs Helm interface")
+    (description "Display firefox bookmarks with Emacs Helm interface")
+    (license license:gpl3+)))
 
 (define-public emacs-interactive-align
   (package
@@ -17972,6 +18462,27 @@ bookmarks and history.")
      "This package provides an Emacs interface for IETF RFC document.")
     (license license:gpl3+)))
 
+(define-public emacs-ido-at-point
+  (package
+    (name "emacs-ido-at-point")
+    (version "1.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/katspaugh/ido-at-point")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1bii7vj8pmmijcpvq3a1scky4ais7k6d7zympb3m9dmz355m9rpp"))))
+    (build-system emacs-build-system)
+    (synopsis "Ido-style completion at point")
+    (description
+     "This package is an alternative frontend for @code{completion-at-point}.
+It replaces the standard completions buffer with Ido prompt.")
+    (home-page "https://github.com/katspaugh/ido-at-point")
+    (license license:gpl3+)))
+
 (define-public emacs-ido-vertical-mode
   (package
     (name "emacs-ido-vertical-mode")
@@ -18092,7 +18603,7 @@ sections for bookmarks, projectil projects, org-agenda and more. ")
 (define-public emacs-slime-company
   (package
     (name "emacs-slime-company")
-    (version "1.1")
+    (version "1.6")
     (source
      (origin
        (method git-fetch)
@@ -18101,7 +18612,7 @@ sections for bookmarks, projectil projects, org-agenda and more. ")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hl1hqkc1pxga9k2k8k15d7dip7sfsmwf4wm4sh346m6nj606q8g"))))
+        (base32 "05dnnc4ms5c9yp9h65k2gbkg3pw9k38nx5wzlwdlfr4shqmw54w0"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-slime" ,emacs-slime)
@@ -18483,7 +18994,7 @@ matching regexps.")
 (define-public emacs-esh-autosuggest
   (package
     (name "emacs-esh-autosuggest")
-    (version "2.0.0")
+    (version "2.0.1")
     (source
      (origin
        (method git-fetch)
@@ -18493,7 +19004,7 @@ matching regexps.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw"))))
+         "0l2nnlr3b6df1xn0qjf5d5ryy1wcs1jczyfy795vsasd5gm3g0xh"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-company" ,emacs-company)))
     (home-page "https://github.com/dieggsy/esh-autosuggest")
@@ -18512,7 +19023,7 @@ autosuggestions with:
 (define-public emacs-desktop-environment
   (package
     (name "emacs-desktop-environment")
-    (version "0.3.0")
+    (version "0.4.0")
     (source
      (origin
        (method git-fetch)
@@ -18522,7 +19033,7 @@ autosuggestions with:
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "195n99xvxyh4cfxjpfa1h1maalqrxf7nyi0bh3lqa1z6z5bdb6x2"))))
+         "0s33jncjg8c2xlr90qjk1ishwmwxm9yg0z6n3kzilawcilpxidsh"))))
     (build-system emacs-build-system)
     (home-page "https://gitlab.petton.fr/DamienCassou/desktop-environment")
     (synopsis "Control your GNU/Linux desktop environment from Emacs")
@@ -18565,16 +19076,16 @@ calendar.")
 (define-public emacs-zotxt
   (package
     (name "emacs-zotxt")
-    (version "20180518")
+    (version "5.0.5")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/egh/zotxt-emacs")
-             (commit "23a4a9f74a658222027d53a9a83cd4bcc583ca8b")))
+             (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "09fq3w9yk9kn6bz7y9kgpiw612dvj3yzsdk734js6zgb0p8lfd2c"))))
+        (base32 "1zr67h0w49rsi84mgf6jdili28h8782q6vjl8za0iq1hcx9zqxyf"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-deferred" ,emacs-deferred)
@@ -18842,7 +19353,7 @@ try completing.  See @code{fish-completion-fallback-on-bash-p}.")
 (define-public emacs-gif-screencast
   (package
     (name "emacs-gif-screencast")
-    (version "1.1")
+    (version "1.2")
     (source
      (origin
        (method git-fetch)
@@ -18852,7 +19363,7 @@ try completing.  See @code{fish-completion-fallback-on-bash-p}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1g1by8lvf8c9vzm4wwsi5kp285kaj0ahsl54048ympin4pi0njw9"))))
+         "1yf6yipvhhna29mzaan5vb3d5qvbrkp2awr5diyf381mvxgk8akh"))))
     (build-system emacs-build-system)
     (inputs
      `(("scrot" ,scrot)
@@ -19118,7 +19629,7 @@ e.g: @code{from:Peter to:Anne flag:attach search term}.")
 (define-public emacs-helm-pass
   (package
     (name "emacs-helm-pass")
-    (version "0.3")
+    (version "0.4")
     (source
      (origin
        (method git-fetch)
@@ -19128,7 +19639,7 @@ e.g: @code{from:Peter to:Anne flag:attach search term}.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0vglaknmir3yv4iwibwn8r40ran8d04gcyp99hx73ldmf3zqpnxv"))))
+         "19w24isddzamkikq17vbv3y7ha22i7wc09d2nqw1j0qwhrrfkng9"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-helm" ,emacs-helm)
@@ -19186,10 +19697,14 @@ image, rotate it, save modified images, and more.")
       (license license:gpl3+))))
 
 (define-public emacs-package-lint
-  (let ((commit "69bb89d00ba212b734c676ad056aa793c450b288"))
+  ;; The commit below includes a fix for a missing file, "stdlib-changes",
+  ;; preventing build.
+  (let ((commit "14c216f4889e71eec2a9da64e36ab8990337e82d")
+        (version "0.13")
+        (revision "0"))
     (package
       (name "emacs-package-lint")
-      (version (git-version "0.5" "1" commit))
+      (version (git-version version revision commit))
       (source
        (origin
          (method git-fetch)
@@ -19199,7 +19714,9 @@ image, rotate it, save modified images, and more.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1hfricsgmy3x9snnd2p4xq6vnnv94qdsxxnxp07b3hqc9bhw31rq"))))
+           "1zifiqmpj9j14fnrm3jxapady25m1nlm514nfry0jfrhhikvj6i8"))))
+      (arguments
+       '(#:include (cons "^data/" %default-include)))
       (build-system emacs-build-system)
       (home-page "https://github.com/purcell/package-lint")
       (synopsis "Linting library for elisp package authors")
@@ -19420,7 +19937,7 @@ text in neighboring sections.")
 (define-public emacs-pandoc-mode
   (package
     (name "emacs-pandoc-mode")
-    (version "2.27.2")
+    (version "2.30.1")
     (source
      (origin
        (method git-fetch)
@@ -19430,7 +19947,7 @@ text in neighboring sections.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "04bqc7mhgkfks3nsvimd3rrriv4nqbksmv5ahlbbd03aqa2b0vrv"))))
+         "1k31pkvd9m798i6phcr0y3wd34fgq6ii41hx3lszmikvxb1yvm2y"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -19468,8 +19985,8 @@ Pandoc, the document-conversion tool.")
       (license license:expat))))
 
 (define-public emacs-ccls
-  (let ((commit "aab3e31fd716daf59f9794e62d473357263e8cc0")
-        (revision "4"))
+  (let ((commit "675a5704c14a27931e835a431beea3631d92e8e6")
+        (revision "5"))
     (package
       (name "emacs-ccls")
       (version (git-version "0.1" revision commit))
@@ -19482,12 +19999,11 @@ Pandoc, the document-conversion tool.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1ykgw21ypyhwlyflppjcgqrj1xw4d9rld4z65qvwhk3f12cv113j"))))
+           "0l4bhyr9d8ljz1f0cfg1s2cjcmh6fiwbk5mdlvc7rrwz5hxc21is"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("ccls" ,ccls)
          ("emacs-dash" ,emacs-dash)
-         ("emacs-projectile" ,emacs-projectile)
          ("emacs-lsp-mode" ,emacs-lsp-mode)))
       (home-page "https://github.com/MaskRay/emacs-ccls")
       (synopsis "Emacs support for the @code{ccls} language server")
@@ -19722,10 +20238,11 @@ source code.")
                    license:asl2.0))))
 
 (define-public emacs-ztree
-  (let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
+  ;; Upstream provides no tag, but the commit below matches latest release.
+  (let ((commit "c9ad9136d52ca5a81475693864e255d29448f43f"))
     (package
       (name "emacs-ztree")
-      (version (git-version "1.0.5" "1" commit))
+      (version "1.0.6")
       (source
        (origin
          (method git-fetch)
@@ -19735,7 +20252,7 @@ source code.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
+           "03i5pa3nfdz6g0yrdk7r2qcn679w0s85cc5kcmgrwlnhdzakgr80"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/fourier/ztree")
       (synopsis "Directory tree comparison mode for Emacs")
@@ -19801,7 +20318,7 @@ buffer displays recursive dir sizes.")
 (define-public emacs-dired-rsync
   (package
     (name "emacs-dired-rsync")
-    (version "0.5")
+    (version "0.6")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -19810,7 +20327,7 @@ buffer displays recursive dir sizes.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1nq3d8py2zsji835wilg514z5j180k371pwqsqrmnnhq1cj4fkia"))))
+                "19za6i96xrmczdh928n5ixd7j7pvy175sz1msaiwvdjwysjr8k51"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-s" ,emacs-s)
@@ -19863,7 +20380,7 @@ buffers – other modes on the TODO list).
 (define-public emacs-magit-todos
   (package
     (name "emacs-magit-todos")
-    (version "1.4.1")
+    (version "1.5.3")
     (source
      (origin
        (method git-fetch)
@@ -19873,7 +20390,7 @@ buffers – other modes on the TODO list).
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1rcl6j53yabxqk3jzgaxvm3wqq7rayf1hdib2v2fapw5b0layym6"))))
+         "12ay02vk6bk77k33mhlqi41m03a77y80b15rj1dbh1n6jfrjwkfy"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-async" ,emacs-async)
@@ -19919,29 +20436,27 @@ files) are provided.")
       (license license:gpl2+))))
 
 (define-public emacs-hackernews
-  (let ((commit "2362d7b00e59da7caddc8c0adc24dccb42fddef9")
-        (revision "2"))
-    (package
-      (name "emacs-hackernews")
-      (version (git-version "0.5.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/clarete/hackernews.el")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "1hcc5b173yzcvvd2ls3jxrmsw2w9bi21m9hcpcirkn0nh93ywadv"))))
-      (build-system emacs-build-system)
-      (home-page "https://github.com/clarete/hackernews.el")
-      (synopsis "Hacker News client for Emacs")
-      (description "The @command{hackernews} package is able to fetch stories
+  (package
+    (name "emacs-hackernews")
+    (version "0.6.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/clarete/hackernews.el")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "17lkjcka6ydd6khhz5jbjlybfpx05153z0d8s1rxaxcwl7z2y6cf"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/clarete/hackernews.el")
+    (synopsis "Hacker News client for Emacs")
+    (description "The @command{hackernews} package is able to fetch stories
 from six different Hacker News feeds, namely top, new, best, ask, show and job
 stories.  The default feed is top stories, which corresponds to the Hacker
 News homepage.")
-      (license license:gpl3))))
+    (license license:gpl3)))
 
 (define-public emacs-youtube-dl
   (let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
@@ -20028,7 +20543,7 @@ depending on the downloaded URL.")
 (define-public emacs-org-web-tools
   (package
     (name "emacs-org-web-tools")
-    (version "1.0")
+    (version "1.1.1")
     (source
      (origin
        (method git-fetch)
@@ -20038,11 +20553,12 @@ depending on the downloaded URL.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0kak9h5ny00d39gnwspv53nadnag01brw2fq9zk5wpfc91h9bjng"))))
+         "0v4qad54r0z7dr7kg5lpfdsazi44qvrbybx9aciyl4w9grfajphb"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
        ("emacs-esxml" ,emacs-esxml)
+       ("emacs-request" ,emacs-request)
        ("emacs-s" ,emacs-s)))
     (inputs
      `(("pandoc" ,pandoc)))
@@ -20094,42 +20610,40 @@ execute its commands and resize images.")
       (license license:gpl3+))))
 
 (define-public emacs-synosaurus
-  (let ((commit "8bf95b935976ec0a1964cf175ed57cc5f6f93bdb"))
-    (package
-      (name "emacs-synosaurus")
-      (version (git-version "0.1.0" "1" commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/hpdeifel/synosaurus")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "15by9jccab6kyplxa6k0glzaivxkqdigl33gl2qi2cvy6f2q7gva"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("wordnet" ,wordnet)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'configure
-             (lambda* (#:key inputs outputs #:allow-other-keys)
-               (let ((wn (assoc-ref inputs "wordnet")))
-                 ;; .el is read-only in git.
-                 (chmod "synosaurus-wordnet.el" #o644)
-                 ;; Specify the absolute file names of the various
-                 ;; programs so that everything works out-of-the-box.
-                 (emacs-substitute-variables
-                     "synosaurus-wordnet.el"
-                   ("wordnet-command"
-                    (string-append wn "/bin/wn")))))))))
-      (home-page "https://github.com/hpdeifel/synosaurus")
-      (synopsis "Extensible thesaurus mode for Emacs")
-      (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
+  (package
+    (name "emacs-synosaurus")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/hpdeifel/synosaurus")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "14dd6p89pmpf1w3nx4f9mzm4sn2b64nicws436ck7pmp223pwciv"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("wordnet" ,wordnet)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'configure
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((wn (assoc-ref inputs "wordnet")))
+               ;; .el is read-only in git.
+               (make-file-writable "synosaurus-wordnet.el")
+               ;; Specify the absolute file names of the various
+               ;; programs so that everything works out-of-the-box.
+               (emacs-substitute-variables "synosaurus-wordnet.el"
+                 ("synosaurus-wordnet--command"
+                  (string-append wn "/bin/wn")))))))))
+    (home-page "https://github.com/hpdeifel/synosaurus")
+    (synopsis "Extensible thesaurus mode for Emacs")
+    (description "Synosaurus is a thesaurus fontend for Emacs with pluggable
 backends, including the @command{wordnet} offline backend.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-editorconfig
   (package
@@ -20546,7 +21060,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
 (define-public emacs-buttercup
   (package
     (name "emacs-buttercup")
-    (version "1.23")
+    (version "1.24")
     (source
      (origin
        (method git-fetch)
@@ -20556,7 +21070,7 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0ym1hajy47n5f1rxic8qfxrwd8zc1r7csz1v4hrwhwm4qld4krfr"))))
+         "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"))))
     (build-system emacs-build-system)
     (arguments
      `(#:tests? #t
@@ -20577,34 +21091,30 @@ functions to ensure they are called with the right arguments during testing.")
     (license license:gpl3+)))
 
 (define-public emacs-cort
-  ;; Choosing a recent commit to fix some bugs.
-  ;; https://github.com/conao3/cort.el/issues/106
-  (let ((commit "495c3972b92b57a0cb5dd65ce5de9d3c6b8b6509")
-        (revision "1"))
-    (package
-      (name "emacs-cort")
-      (version (git-version "3.0.5" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/conao3/cort.el")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0f4irq1arh9c7lf9a5bla25am0jy5r6lj8ayb8k9k7lrirzhyk99"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-ansi" ,emacs-ansi)))
-      (arguments
-       `(#:tests? #t
-         #:test-command '("emacs" "--batch" "--quick"
-                          "--directory=." "--load=cort-tests.el"
-                          "--funcall=cort-test-run")))
-      (home-page "https://github.com/conao3/cort.el")
-      (synopsis "Unit test framework for the Emacs Lisp")
-      (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-cort")
+    (version "7.1.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/conao3/cort.el")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "03c223nczpbdkjmq69panhbsq2a0zj20w329jgj4c0zsj8m1a32a"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ansi" ,emacs-ansi)))
+    (arguments
+     `(#:tests? #t
+       #:test-command '("emacs" "--batch" "--quick"
+                        "--directory=." "--load=cort-tests.el"
+                        "--funcall=cort-test-run")))
+    (home-page "https://github.com/conao3/cort.el")
+    (synopsis "Unit test framework for the Emacs Lisp")
+    (description "@code{cort} is a lightweight Emacs Lisp unit test library.")
+    (license license:gpl3+)))
 
 (define-public emacs-wordnut
   (let ((commit "feac531404041855312c1a046bde7ea18c674915")
@@ -20721,40 +21231,38 @@ other frame parameters.")
       (license license:gpl3+))))
 
 (define-public emacs-annalist
-  (let ((commit "e0601539c9ac0171a684ea3ff6266d215d1d08e6")
-        (revision "1"))
-    (package
-      (name "emacs-annalist")
-      (version (git-version "1.0.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/noctuid/annalist.el")
-                      (commit commit)))
-                (sha256
-                 (base32
-                  "10bmimdzpi6cql4sb2hbgdvrza83xbac50bi9qng4z662pfnlaam"))
-                (file-name (git-file-name name version))))
-      (build-system emacs-build-system)
-      (native-inputs
-       `(("emacs-buttercup" ,emacs-buttercup)
-         ("emacs-lispy" ,emacs-lispy)
-         ("emacs-evil" ,emacs-evil)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-before 'check 'fix-makefile
-             (lambda _
-               (substitute* "Makefile"
-                 (("cask exec ") ""))
-               #t)))
-         #:tests? #t
-         #:test-command '("make" "test")))
-      (home-page "https://github.com/noctuid/annalist.el")
-      (synopsis "Record and display information with Org headings and tables")
-      (description "This package allows for keybindings, settings, hooks, and
+  (package
+    (name "emacs-annalist")
+    (version "1.0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/noctuid/annalist.el")
+                    (commit version)))
+              (sha256
+               (base32
+                "1jlb5w4972l8m2aa18q2l6arfpm65g4nk21dn1yi8c9dbpk2g67c"))
+              (file-name (git-file-name name version))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("emacs-buttercup" ,emacs-buttercup)
+       ("emacs-lispy" ,emacs-lispy)
+       ("emacs-evil" ,emacs-evil)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'fix-makefile
+           (lambda _
+             (substitute* "Makefile"
+               (("cask exec ") ""))
+             #t)))
+       #:tests? #t
+       #:test-command '("make" "test")))
+    (home-page "https://github.com/noctuid/annalist.el")
+    (synopsis "Record and display information with Org headings and tables")
+    (description "This package allows for keybindings, settings, hooks, and
 advice to be recorded and displayed.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-general
   (let ((commit "a0b17d207badf462311b2eef7c065b884462cb7c")
@@ -21005,6 +21513,33 @@ DBI, and provides DB-accessing API and the simple management UI.")
 to open SQLite databases.")
       (license license:gpl3+))))
 
+(define-public emacs-nice-citation
+  (let ((commit "1013b56d9d1495a335f40a5f76203034dc5fa0ea")
+        (revision "0"))
+    (package
+      (name "emacs-nice-citation")
+      (version (git-version "0.0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/damiencollard/nice-citation")
+               (commit commit)))
+         (sha256
+          (base32 "00xqr7haca5vd0bzd043lc6x4fjb903z96frz9b8cbd7spp63z7q"))
+         (file-name (git-file-name name version))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/damiencollard/nice-citation")
+      (synopsis "Depth-colored citations for Gnus")
+      (description
+       "This package replaces the traditional chevron citation marks @samp{>}
+with a Unicode vertical bar with the same color as the text it is quoting.
+
+It is purely presentation: the underlying text is unchanged.  In particular,
+if you send a message containing a citation, it will contain the traditional
+chevron marks.")
+      (license license:gpl3+))))
+
 (define-public emacs-nix-mode
   (package
     (name "emacs-nix-mode")
@@ -21033,7 +21568,7 @@ comments.")
 (define-public emacs-libmpdel
   (package
     (name "emacs-libmpdel")
-    (version "1.1.2")
+    (version "1.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -21042,7 +21577,7 @@ comments.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0dnjndpv6bmz5blfs75ynmbm32g23l4slg5p3941b1i94a08qzpy"))))
+                "1nzs6g2mg3jhfhhfcxjhd9sbvwzhmr6j6mc80ln2nr4gzjqgaa4k"))))
     (build-system emacs-build-system)
     (home-page "https://gitea.petton.fr/mpdel/libmpdel")
     (synopsis "Emacs library to communicate with Music Player Daemon (MPD)")
@@ -21140,6 +21675,31 @@ stored playlists.")
 display a terminal in an Emacs buffer.")
       (license license:gpl3+))))
 
+(define-public emacs-vterm-toggle
+  ;; There have been no releases.
+  (let ((commit "d10239b7bb89b78dddb82f66ac2286bc0b02747b")
+        (revision "1"))
+    (package
+      (name "emacs-vterm-toggle")
+      (version (git-version "0.0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jixiuf/vterm-toggle")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0r9n23wg9cfy10h5f9zqr8jpkvw34f9rylri3nxq870awjab7rqi"))))
+      (build-system emacs-build-system)
+      (propagated-inputs `(("emacs-vterm" ,emacs-vterm)))
+      (home-page "https://github.com/jixiuf/vterm-toggle")
+      (synopsis "Toggle between a vterm buffer and other buffers")
+      (description
+       "This package provides a DWIM way to switch from an Emacs buffer to
+a vterm buffer and back again.")
+      (license license:gpl3+))))
+
 (define-public emacs-simple-mpc
   ;; There have been no releases.
   (let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
@@ -21216,7 +21776,7 @@ according to their use.")
 (define-public emacs-dtrt-indent
   (package
     (name "emacs-dtrt-indent")
-    (version "1.2")
+    (version "1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -21225,7 +21785,7 @@ according to their use.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0p5v5xwr0s59hv3s0f85byafphc85qv76g41crad9fhnxzab9rly"))))
+                "11r68sh3yrrfib7pixnazispwsffrygmgplffrv8qq57xrqzyxih"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/jscheid/dtrt-indent")
     (synopsis "Minor mode that guesses the indentation offset")
@@ -21238,7 +21798,7 @@ convenient to edit foreign files.")
 (define-public emacs-repo
   (package
     (name "emacs-repo")
-    (version "0.1.3")
+    (version "0.2.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -21247,7 +21807,7 @@ convenient to edit foreign files.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0rbvcvm7bfr6ncji7cllfxyyr6x7n9fx863byp243phsj3n93adz"))))
+                "0jgiawdnzjlrpx2j1y6djwbqncdpmyfd31q1qf1890049y8ppxnb"))))
     (build-system emacs-build-system)
     (native-inputs
      `(("emacs-el-mock" ,emacs-el-mock)
@@ -21358,7 +21918,7 @@ opposed to character-based).")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/Ambrevar/emacs-disk-usage.git")
+             (url "https://gitlab.com/Ambrevar/emacs-disk-usage")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -21375,7 +21935,7 @@ recursively.  The results are cached for speed.")
 (define-public emacs-orgit
   (package
     (name "emacs-orgit")
-    (version "1.5.3")
+    (version "1.6.3")
     (home-page "https://github.com/magit/orgit")
     (source (origin
               (method git-fetch)
@@ -21385,7 +21945,7 @@ recursively.  The results are cached for speed.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ywavzki510rslsgfm0cnn3mlh644p61ha2nfb715xhkg7cd3j9g"))))
+                "08amzcvw483dpfq5r34ysn84wzd538qk0jblc94vgcaidspx6481"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-dash" ,emacs-dash)
@@ -21574,6 +22134,58 @@ integration with other popular Emacs packages like Company, Flycheck, and
 Projectile.")
     (license license:gpl3+)))
 
+(define-public emacs-lsp-treemacs
+  (package
+    (name "emacs-lsp-treemacs")
+    (version "0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-lsp/lsp-treemacs")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1z9cb7i546pbzvxii6lsj31jq8m70xrzscphl5z71vh93sydyhkb"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-treemacs" ,emacs-treemacs)))
+    (home-page "https://github.com/emacs-lsp/lsp-treemacs")
+    (synopsis "Integration between LSP mode and treemacs")
+    (description
+     "This package provides integration between LSP mode and treemacs,
+and implementation of treeview controls using treemacs as a tree renderer.")
+    (license license:gpl3+)))
+
+(define-public emacs-dap-mode
+  (package
+    (name "emacs-dap-mode")
+    (version "0.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/emacs-lsp/dap-mode")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1d4hdydfk86d4slibigyhwng8wx3vzyap8hp5iv0h7wr6868m4iv"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-bui" ,emacs-bui)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-posframe" ,emacs-posframe)
+       ("emacs-lsp-treemacs" ,emacs-lsp-treemacs)))
+    (home-page "https://emacs-lsp.github.io/dap-mode")
+    (synopsis "Emacs client/library for Debug Adapter Protocol ")
+    (description
+     "Dap mode is an Emacs client/library for Debug Adapter
+Protocol (DAP), a wire protocol for communication between client and
+debug server.  It is similar to the LSP but provides integration with
+Debug server.")
+    (license license:gpl3+)))
+
 (define-public emacs-pfuture
   (package
     (name "emacs-pfuture")
@@ -21759,7 +22371,7 @@ files in Elisp.")
 (define-public emacs-lsp-java
   (package
     (name "emacs-lsp-java")
-    (version "2.2")
+    (version "3.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -21768,16 +22380,17 @@ files in Elisp.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0hcnvbyaqyypgby1bfj4zbrbq97amk8hfx0sj4w73rl46yf4jk3j"))))
+                "1h0hqgjpk5mbylma1fkva0vx45achf0k7ab2c5y8a2449niww90h"))))
     (build-system emacs-build-system)
     (propagated-inputs
-      `(("emacs-lsp-mode" ,emacs-lsp-mode)
-        ("emacs-markdown-mode" ,emacs-markdown-mode)
-        ("emacs-dash" ,emacs-dash)
-        ("emacs-f" ,emacs-f)
-        ("emacs-ht" ,emacs-ht)
-        ("emacs-request" ,emacs-request)
-        ("emacs-treemacs" ,emacs-treemacs)))
+     `(("emacs-dap-mode" ,emacs-dap-mode)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-markdown-mode" ,emacs-markdown-mode)
+       ("emacs-dash" ,emacs-dash)
+       ("emacs-f" ,emacs-f)
+       ("emacs-ht" ,emacs-ht)
+       ("emacs-request" ,emacs-request)
+       ("emacs-treemacs" ,emacs-treemacs)))
     (home-page "https://github.com/emacs-lsp/lsp-java/")
     (synopsis "Java support for lsp-mode")
     (description "Emacs Java IDE using Eclipse JDT Language Server.")
@@ -21859,31 +22472,29 @@ workspaces with a LSP-compliant server running.")
     (license license:gpl3+)))
 
 (define-public emacs-helm-lsp
-  (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b")
-        (revision "1"))
-    (package
-      (name "emacs-helm-lsp")
-      (version (git-version "0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/emacs-lsp/helm-lsp")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-helm" ,emacs-helm)
-         ("emacs-lsp-mode" ,emacs-lsp-mode)
-         ("emacs-dash" ,emacs-dash)))
-      (home-page "https://github.com/emacs-lsp/helm-lsp")
-      (synopsis "Provide LSP-enhanced completion for symbols")
-      (description
-       "This package enhances @code{helm} with completion for symbols from
+  (package
+    (name "emacs-helm-lsp")
+    (version "0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/emacs-lsp/helm-lsp")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1vq3qpqm3ndqyvf5bk8qhqcr60x9ykc0ipk2a43rr3yjm4z1b6s9"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-helm" ,emacs-helm)
+       ("emacs-lsp-mode" ,emacs-lsp-mode)
+       ("emacs-dash" ,emacs-dash)))
+    (home-page "https://github.com/emacs-lsp/helm-lsp")
+    (synopsis "Provide LSP-enhanced completion for symbols")
+    (description
+     "This package enhances @code{helm} with completion for symbols from
 workspaces with a LSP-compliant server running.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-helm-notmuch
   (package
@@ -21911,73 +22522,70 @@ real search.")
     (license license:gpl3+)))
 
 (define-public emacs-elmacro
-  (let ((commit "89b9b0feabafd01fee48111d67131c4c9b5fed9a"))
-    (package
-      (name "emacs-elmacro")
-      (version (git-version "1.1.0" "1" commit))
-      (home-page "https://github.com/Silex/elmacro")
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url home-page)
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "06wkzafh6vbcjf0m3sl253mgcq32p8cdv7vsfmyx51baa36938ha"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-s" ,emacs-s)
-         ("emacs-dash" ,emacs-dash)))
-      (synopsis "Convert keyboard macros to Emacs Lisp")
-      (description
-       "This package displays keyboard macros or latest interactive commands
+  (package
+    (name "emacs-elmacro")
+    (version "1.1.1")
+    (home-page "https://github.com/Silex/elmacro")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1x4wnsshf9h10mp51x92vs5rxw5had4gmw6zz4f53czx1ymcv16a"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-s" ,emacs-s)
+       ("emacs-dash" ,emacs-dash)))
+    (synopsis "Convert keyboard macros to Emacs Lisp")
+    (description
+     "This package displays keyboard macros or latest interactive commands
 as Emacs Lisp.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-transient
-  (let ((revision "1")
-        (commit "a6e4cced303b3febd59412b24a97eaf1e855e6d7"))
-    (package
-      (name "emacs-transient")
-      (version (git-version "0.2.0" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/magit/transient")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "01xsw9sxr50valc2q590ngy3ra2ll01p39l9cbzvqqz6mxyymxmd"))))
-      (build-system emacs-build-system)
-      (arguments
-       `(#:tests? #f                      ;no test suite
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'build-info-manual
-             (lambda _
-               (invoke "make" "info")
-               ;; Move the info file to lisp so that it gets installed by the
-               ;; emacs-build-system.
-               (rename-file "docs/transient.info" "lisp/transient.info")
-               #t))
-           (add-after 'build-info-manual 'enter-lisp-directory
-             (lambda _
-               (chdir "lisp")
-               #t)))))
-      (native-inputs
-       `(("texinfo" ,texinfo)))
-      (propagated-inputs
-       `(("dash" ,emacs-dash)))
-      (home-page "https://magit.vc/manual/transient")
-      (synopsis "Transient commands in Emacs")
-      (description "Taking inspiration from prefix keys and prefix arguments
+  (package
+    (name "emacs-transient")
+    (version "0.3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/magit/transient")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g694ydmb9zjn99hxgfjd3m73kpmnkbrgqhr73b4crbxza5sl29c"))))
+    (build-system emacs-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'build-info-manual
+           (lambda _
+             (invoke "make" "info")
+             ;; Move the info file to lisp so that it gets installed by the
+             ;; emacs-build-system.
+             (rename-file "docs/transient.info" "lisp/transient.info")
+             #t))
+         (add-after 'build-info-manual 'enter-lisp-directory
+           (lambda _
+             (chdir "lisp")
+             #t)))))
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (propagated-inputs
+     `(("dash" ,emacs-dash)))
+    (home-page "https://magit.vc/manual/transient")
+    (synopsis "Transient commands in Emacs")
+    (description "Taking inspiration from prefix keys and prefix arguments
 in Emacs, Transient implements a similar abstraction involving a prefix
 command, infix arguments and suffix commands.  We could call this abstraction
 a \"transient command\", but because it always involves at least two
 commands (a prefix and a suffix) we prefer to call it just a \"transient\".")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-forge
   (let ((commit "05ef02913004826165c383bd6d2ff6574542b76c"))
@@ -22240,7 +22848,7 @@ provides a minor mode that autoformats the buffer upon saving.")
 (define-public emacs-fish-mode
   (package
     (name "emacs-fish-mode")
-    (version "0.1.4")
+    (version "0.1.6")
     (source
      (origin
        (method git-fetch)
@@ -22250,7 +22858,7 @@ provides a minor mode that autoformats the buffer upon saving.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0a74ghmjjrxfdhk4mvq6lar4w6l6lc4iilabs99smqr2fn5rsslq"))))
+         "1spxxkji9xa930sbwvzyjm8jrqk9ra0xqhivw7zd12a4c56nhna9"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/wwwjfy/emacs-fish")
     (synopsis "Major mode for Fish shell scripts")
@@ -22282,6 +22890,36 @@ functions for Fish shell scripts.")
 parent directory using @code{Eshell}.")
       (license license:gpl3+))))
 
+(define-public emacs-springboard
+  ;; Upstream provides no tag.  Using the latest commit.  Version is extracted
+  ;; from "Version:" keyword.
+  (let ((commit "687d1e5898a880878995dc9bffe93b4598366203")
+        (version "1.0")
+        (revision "1"))
+    (package
+      (name "emacs-springboard")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/jwiegley/springboard")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0fn8c4hqblfjvcpg68kj2dmdjqsdnxddqbzgvakl43zckjg8pi01"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-helm" ,emacs-helm)
+         ("emacs-ivy" ,emacs-ivy)))
+      (home-page "https://github.com/jwiegley/springboard")
+      (synopsis "Change the Emacs default directory quickly")
+      (description
+       "This Emacs package provides a quick way to change the default
+directory for only the next invoked command.  The directory selection can be
+done using Helm, Ido or Ivy.")
+      (license license:gpl2+))))
+
 (define-public emacs-tco-el
   (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6")
         (revision "1"))
@@ -22400,9 +23038,9 @@ based on diff output.")
       (license license:gpl3+))))
 
 (define-public emacs-all-the-icons-dired
-  (let ((commit "980b7747d6c4a7992a1ec56afad908956db0a519")
+  (let ((commit "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5")
         (version "1.0")
-        (revision "1"))
+        (revision "2"))
     (package
       (name "emacs-all-the-icons-dired")
       (version (git-version version revision commit))
@@ -22415,7 +23053,7 @@ based on diff output.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "1pvbgyxfj4j205nj1r02045f1y4wgavdsk7f45hxkkhms1rj8jyy"))))
+           "0zhyhz4lhx0d8wwh1xxxf7ck4s621fk9757ql2ypxbr4iqh7sjlp"))))
       (build-system emacs-build-system)
       (propagated-inputs
        `(("emacs-all-the-icons" ,emacs-all-the-icons)))
@@ -22548,7 +23186,7 @@ files, and sends rendered Markdown to a web browser.")
 (define-public emacs-dotenv-mode
   (package
     (name "emacs-dotenv-mode")
-    (version "0.2.4")
+    (version "0.2.5")
     (source
      (origin
        (method git-fetch)
@@ -22558,7 +23196,7 @@ files, and sends rendered Markdown to a web browser.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1fplkhxnsgdrg10iqsmw162zny2idz4vvv35spsb9j0hsk8imclc"))))
+         "0ys1czramj3c8zbnxxc599bqc0nqp3nnn3n45ac9cjglx5iaydq3"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/preetpalS/emacs-dotenv-mode")
     (synopsis "Major mode for @file{.env} files")
@@ -22612,36 +23250,34 @@ Emacs to find project-specific installations of packages.")
       (home-page "https://github.com/an-sh/flow-minor-mode")
       (synopsis "Minor mode for JavaScript Flow files")
       (description "This package integrates Flow with Emacs, allowing for
-definition-jumping and type-checking on demand.")
-      (license license:bsd-3))))
-
-(define-public emacs-rjsx-mode
-  (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5")
-        (revision "2"))
-    (package
-      (name "emacs-rjsx-mode")
-      (version (git-version "0.4" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/felipeochoa/rjsx-mode")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-js2-mode" ,emacs-js2-mode)))
-      (arguments
-       `(#:tests? #t
-         #:test-command '("make" "test")))
-      (home-page "https://github.com/felipeochoa/rjsx-mode")
-      (synopsis "Major mode for JSX files")
-      (description "This package extends the parser of @code{js2-mode} to
+definition-jumping and type-checking on demand.")
+      (license license:bsd-3))))
+
+(define-public emacs-rjsx-mode
+  (package
+    (name "emacs-rjsx-mode")
+    (version "0.5.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/felipeochoa/rjsx-mode")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "08b4hdgq4hc1yfd9pvyir2j3cqqdqa3j5svgaba97x5fzhsz7y8i"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-js2-mode" ,emacs-js2-mode)))
+    (arguments
+     `(#:tests? #t
+       #:test-command '("make" "test")))
+    (home-page "https://github.com/felipeochoa/rjsx-mode")
+    (synopsis "Major mode for JSX files")
+    (description "This package extends the parser of @code{js2-mode} to
 support JSX syntax.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public emacs-origami-el
   (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366")
@@ -22697,7 +23333,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
 (define-public emacs-counsel-etags
   (package
     (name "emacs-counsel-etags")
-    (version "1.9.11")
+    (version "1.9.16")
     (source
      (origin
        (method git-fetch)
@@ -22706,7 +23342,7 @@ previewed by scrolling up and down within a @code{dired} buffer.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0h0br41vkrx9l7bqr55bafqd715drxxwm41qif6iffhgdpvf69ym"))))
+        (base32 "01si554r0s6m7ypx1m2n0z6j6q6yihifz76dha6q6v56ixdlv626"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-counsel" ,emacs-counsel)))
@@ -22893,6 +23529,39 @@ Dash docsets.")
 through Dash docsets.")
       (license license:expat))))
 
+(define-public emacs-cascading-dir-locals
+  (let ((release "0.1")
+        (revision "0")
+        (commit "efdf5e6d62b955ee0ca3c170eae1d388799f9fa0"))
+    (package
+      (name "emacs-cascading-dir-locals")
+      (version (git-version release revision commit))
+      (home-page "https://github.com/fritzgrabo/cascading-dir-locals")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1jwd99kk5l588n7wwi1x3b4bgimm66x1icna3n20pwaj49kf0zy8"))))
+      (build-system emacs-build-system)
+      (synopsis "Apply all @file{.dir-locals.el} from root to current directory")
+      (description
+       "This package provides a global minor mode that changes how Emacs
+handles the lookup of applicable dir-locals files (@file{.dir-locals.el}):
+instead of starting at the directory of the visited file and moving up the
+directory tree only until a first dir-locals file is found, collect and apply
+all (!) dir-locals files found from the current directory up to the root one.
+
+Values specified in files nearer to the current directory take precedence over
+values in files farther away from it.
+
+You might want to use this to globally set dir-local variables that apply to
+all of your projects, then override or add variables on a per-project basis.")
+      (license license:gpl3+))))
+
 (define-public emacs-calibredb
   (package
     (name "emacs-calibredb")
@@ -22988,7 +23657,7 @@ nodes, and more.")
 (define-public emacs-eval-sexp-fu-el
   (package
     (name "emacs-eval-sexp-fu-el")
-    (version "0.5.0")
+    (version "0.6.0")
     (source
      (origin
        (method git-fetch)
@@ -22998,7 +23667,7 @@ nodes, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "01mpnpgmlnfbi2yw9dxz5iw72mw3lk223bj172i4fnx3xdrrxbij"))))
+         "19rv0kwajq0j8inglp84sml23ci74wdcvp5bl6zxbw5skqpf6phr"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/hchbaw/eval-sexp-fu.el")
     (synopsis "Enhancements for evaluating s-expressions")
@@ -23032,14 +23701,14 @@ well as an option for visually flashing evaluated s-expressions.")
 (define-public emacs-tramp
   (package
     (name "emacs-tramp")
-    (version "2.5.0.1")
+    (version "2.5.0.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "tramp-" version ".tar"))
        (sha256
-        (base32 "0kqlc03bbsdywp0m3mf0m62hqyam8vg81phh7nqmpdjzskrdc1yy"))))
+        (base32 "0c77d1ihn17lzk9jb7ss346ryprnbii1zmijl6zj0kk4lm8fpfl3"))))
     (build-system emacs-build-system)
     (arguments
      `(#:emacs ,emacs                   ;need D-Bus
@@ -23092,7 +23761,7 @@ with passwords for paths matching regexps.")
 (define-public emacs-eacl
   (package
     (name "emacs-eacl")
-    (version "2.0.1")
+    (version "2.0.4")
     (source
      (origin
        (method git-fetch)
@@ -23102,7 +23771,7 @@ with passwords for paths matching regexps.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0ksn11sm3g1ja5lpjz3hrzzw8b480mfcb3q589m52qjgvvn5iyfv"))))
+         "0fxb2lv4cqdjxarqhzjgfc43sncc1c6m96n0aflm8l4gdmm090kq"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)))
@@ -23558,7 +24227,7 @@ connections using TLS encryption.")
 (define-public emacs-zerodark-theme
   (package
     (name "emacs-zerodark-theme")
-    (version "4.6")
+    (version "4.7")
     (source
      (origin
        (method git-fetch)
@@ -23568,7 +24237,7 @@ connections using TLS encryption.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0pfyd1iqs7l2ngwgvj9n0r9k1px7yl16h8n502xdyf0pprxcs4p6"))))
+         "1r5s4mvwlxsb9ylr6dkfxpm1l0pbqkmn5gwjdcfk762cnxlam8cm"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-flycheck" ,emacs-flycheck)
@@ -23635,6 +24304,52 @@ convert the resulting @code{.epub} to a @code{.mobi} file.  Needs a working
 zip utility (default is @code{zip}).")
     (license license:gpl3+)))
 
+(define-public emacs-ox-gemini
+  ;; No releases yet
+  (let ((commit "d88c10bcb10fc463fa5a2f6e29c8c94b75a314c0")
+        (revision "0"))
+    (package
+      (name "emacs-ox-gemini")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://git.sr.ht/~abrahms/ox-gemini")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1f8kbg5vjd1k7fak3v56b77yk612j6vmzx4xzx3m2vq3f0nyxq29"))))
+      (build-system emacs-build-system)
+      (home-page "https://sr.ht/~abrahms/ox-gemini")
+      (synopsis "Export Org files in Gemini format")
+      (description
+       "@code{ox-gemini} adds support for exporting Org files in Gemini
+format.  Many things were taken from the ASCII exporter, from which
+@code{ox-gemini} derives.")
+      (license license:gpl3+))))
+
+(define-public emacs-ox-haunt
+  (package
+    (name "emacs-ox-haunt")
+    (version "0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~jakob/ox-haunt")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rs1n228c2fmpvirc57bqgf2616ijpphkgf4w9ln5j46snmkam25"))))
+    (build-system emacs-build-system)
+    (home-page "https://git.sr.ht/~jakob/ox-haunt")
+    (synopsis "Export Org files to HTML appropriate for Haunt")
+    (description
+     "This library implements an HTML back-end for the Org generic exporter,
+producing output appropriate for Haunt's @code{html-reader}.")
+    (license license:gpl3+)))
+
 (define-public emacs-ox-hugo
   (package
     (name "emacs-ox-hugo")
@@ -23686,7 +24401,7 @@ files to numerous other formats via Pandoc.")
 (define-public emacs-wc-mode
   (package
     (name "emacs-wc-mode")
-    (version "1.3")
+    (version "1.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -23695,7 +24410,7 @@ files to numerous other formats via Pandoc.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0pjlxv46zzqdq6q131jb306vqlg4sfqls1x8vag7mmfw462hafqp"))))
+                "01icd63mb2hg1bgbmkq3jm8kc3ic8whfy2awcgx53zqkmyz87qxc"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/bnbeckwith/wc-mode")
     (synopsis "Running word count with goals (minor mode)")
@@ -23742,14 +24457,14 @@ federated microblogging social network.")
 (define-public emacs-ebdb
   (package
     (name "emacs-ebdb")
-    (version "0.6.21")
+    (version "0.6.22")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ebdb-" version ".tar"))
        (sha256
-        (base32 "0pp190wr6z98kggmw9ls486f9vxfimdjdbqsp263qiyi21ws98if"))))
+        (base32 "0dljl21n6508c7ash7l6zgxhpn2wdfzga0va63d4k9nwnqmkvsgz"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/girzel/ebdb")
     (synopsis "EIEIO port of BBDB, Emacs's contact-management package")
@@ -23847,7 +24562,7 @@ contains a track position, playback will start at the specified position.")
 (define-public emacs-org-jira
   (package
    (name "emacs-org-jira")
-   (version "4.3.1")
+   (version "4.3.2")
    (source
     (origin
      (method git-fetch)
@@ -23857,7 +24572,7 @@ contains a track position, playback will start at the specified position.")
      (file-name (git-file-name name version))
      (sha256
       (base32
-       "1l80r2a9zzbfk2c78i40h0ww79vm9v4j6xi2h5i4w9kqh10rs6h2"))))
+       "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y"))))
    (build-system emacs-build-system)
    (propagated-inputs
     `(("emacs-request" ,emacs-request)
@@ -23973,11 +24688,11 @@ passphrase until the first time you push to a remote.")
     (license license:gpl3+)))
 
 (define-public emacs-tao-theme
-  (let ((commit "c5107fbe7e752f4e58c2d2147ff18a1ebb12937c")
-        (revision "0"))
+  (let ((commit "468ee4f6ba7afb9dbfc8855ae2c333cb16ca4408")
+        (revision "1"))
     (package
       (name "emacs-tao-theme")
-      (version (git-version "0" revision commit))
+      (version (git-version "1.1.1" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -23987,7 +24702,7 @@ passphrase until the first time you push to a remote.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "07vvlglmkj87hpxz79s3bl2cjn71vain57fdxs7j9vlr5jkchxwn"))))
+           "0yqibx6wcdsj5k6130c3qp0hmj6zwhfjrrvw98lny23ksw6k0s3s"))))
       (build-system emacs-build-system)
       (home-page "https://github.com/11111000000/tao-theme-emacs")
       (synopsis "Parameterized uncolored color themes for Emacs")
@@ -24093,7 +24808,7 @@ Emacs that integrate with major modes like Org-mode.")
 (define-public emacs-modus-themes
   (package
     (name "emacs-modus-themes")
-    (version "1.1.1")
+    (version "1.2.3")
     (source
      (origin
        (method git-fetch)
@@ -24102,7 +24817,7 @@ Emacs that integrate with major modes like Org-mode.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1n716nasa1pccz7983kicagc9sqnxlyfmflvifqk4kza2ks0rh9m"))))
+        (base32 "1l392hz6zs6wg06x2zxnk7s0h5cpmvbkcynh68gjmqjj84l7mqrk"))))
     (build-system emacs-build-system)
     (home-page "https://protesilaos.com/modus-themes/")
     (synopsis "Accessible themes (WCAG AAA)")
@@ -24176,7 +24891,7 @@ and it should work well with 256 color terminals.")
 (define-public emacs-elixir-mode
   (package
     (name "emacs-elixir-mode")
-    (version "2.3.1")
+    (version "2.3.2")
     (source
      (origin
        (method git-fetch)
@@ -24185,7 +24900,7 @@ and it should work well with 256 color terminals.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg"))))
+        (base32 "0f2a360h8bizvqk6bmgxm59g8n7id5rzwlbv6d383h15w298mcga"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-pkg-info" ,emacs-pkg-info)))
@@ -24295,7 +25010,7 @@ commands that bear resemblance to the input command.")
 (define-public emacs-unfill
   (package
     (name "emacs-unfill")
-    (version "0.2")
+    (version "0.3")
     (home-page "https://github.com/purcell/unfill")
     (source
      (origin
@@ -24305,7 +25020,7 @@ commands that bear resemblance to the input command.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0wyradin5igp25nsd3n22i2ppxhmy49ac1iq1w2715v8pfmiydnc"))))
+        (base32 "0pg64nza2mp4xyr69pjq51jsq1aaym0g38g4jzaxr0hh3w0ris1n"))))
     (build-system emacs-build-system)
     (synopsis "Inverse of Emacs' @code{fill-paragraph} and @code{fill-region}")
     (description
@@ -24796,21 +25511,21 @@ current buffer.")
 (define-public emacs-repl-toggle
   (package
     (name "emacs-repl-toggle")
-    (version "0.6.1")
+    (version "0.7.1")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/tomterl/repl-toggle")
+             (url "https://git.sr.ht/~tomterl/repl-toggle")
              (commit version)))
        (sha256
         (base32
-         "12h3xxja3isnhvrqx7m2g7a5d8h68cc85pbqyhiipfxyafyl1yxd"))
+         "0nycm8a4wwkkaif958z4m89slayp17k20lp2h7lvddjx8prn6yfp"))
        (file-name (git-file-name name version))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-fullframe" ,emacs-fullframe)))
-    (home-page "https://github.com/tomterl/repl-toggle")
+    (home-page "https://git.sr.ht/~tomterl/repl-toggle")
     (synopsis "Switch to and from current major mode's REPL")
     (description "This package provides a function to switch to and from a
 REPL appropriate to the current major mode.")
@@ -24819,7 +25534,7 @@ REPL appropriate to the current major mode.")
 (define-public emacs-rime
   (package
     (name "emacs-rime")
-    (version "1.0.3")
+    (version "1.0.4")
     (source
      (origin
        (method git-fetch)
@@ -24828,7 +25543,7 @@ REPL appropriate to the current major mode.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "08rzkiqwcl8j3i2yyibll5lcsj8720plzm9zfdgmxgkw7vhcyix5"))))
+        (base32 "1a50cziwg7lpgh26yvwxs46jfyfq1m0l6igbg5g5m288mz4d3an9"))))
     (build-system emacs-build-system)
     (arguments
      '(#:phases
@@ -24915,14 +25630,14 @@ interface.")
 (define-public emacs-ivy-posframe
   (package
     (name "emacs-ivy-posframe")
-    (version "0.5.5")
+    (version "0.6.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "ivy-posframe-" version ".tar"))
        (sha256
-        (base32 "184730grclxmlw6nfs41d4g6fvz9c6xnclvwgqx1ii0xm7p9xy95"))))
+        (base32 "07dzglrcdl54lkznyphw97xwd9bcwzdcgzkav0vqfk7f5cwh1wkf"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-ivy" ,emacs-ivy)
@@ -24957,6 +25672,56 @@ can specify how popup-displaying functions occupy the screen.")
       (home-page "https://github.com/wasamasa/shackle")
       (license license:gpl3+))))
 
+(define-public emacs-showtip
+  (let ((commit "930da302809a4257e8d69425455b29e1cc91949b")
+        (revision "0"))
+    (package
+      (name "emacs-showtip")
+      (version (git-version "0.01" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/emacsorphanage/showtip")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "01zak0zhha6dp7a2hm28d065gjnc462iwpsfyxhbxgfzcdlicqc7"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/emacsorphanage/showtip")
+      (synopsis "Show tip at cursor")
+      (description
+       "This library provide one function to show tooltip near the cursor.")
+      (license license:gpl2+))))
+
+(define-public emacs-sdcv
+  ;; No tagged version upstream.
+  (let ((commit "943ae3e90cc9a0a88a37cc710acd7424fd4defc4" )
+        (revision "0"))
+    (package
+      (name "emacs-sdcv")
+      (version (git-version "1.5.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/stardiviner/sdcv.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0i1ylvw7p46pkf3yyyzcdmdhsspzymnnnvx8s0i7vynngr5x0vzh"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-popup" ,emacs-popup)
+         ("emacs-pos-tip" ,emacs-pos-tip)
+         ("emacs-showtip" ,emacs-showtip)))
+      (home-page "https://www.emacswiki.org/emacs/download/sdcv.el")
+      (synopsis "Emacs interface for @code{sdcv}")
+      (description
+       "This plugin translates words with @code{sdcv}, and displays
+translation using a tooltip or in a dedicated buffer.")
+      (license license:gpl3+))))
+
 (define-public emacs-helm-lacarte
   (let ((commit "40a6c449720be521435b6b1da7911af3a0b9dca0")
         (revision "1"))
@@ -25085,7 +25850,7 @@ data, including buffers, window configuration, variables, and more.")
 (define-public emacs-parseedn
   (package
     (name "emacs-parseedn")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method git-fetch)
@@ -25095,7 +25860,7 @@ data, including buffers, window configuration, variables, and more.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "11wi3hwcgmy54p6ivpijqm7v0hj6j75a19qk5z779bqfrp79b4pc"))))
+         "0271amhw63650rrzikcyqxa8sb42npnk7q3yrsay2v79wbqkdaw9"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-a" ,emacs-a)
@@ -25103,14 +25868,14 @@ data, including buffers, window configuration, variables, and more.")
     (home-page "https://cider.mx")
     (synopsis "EDN parser for Emacs Lisp")
     (description
-     "An Emacs Lisp library for parsing EDN (Clojure) data.
+     "Parseedn is an Emacs Lisp library for parsing EDN (Clojure) data.
 It uses parseclj's shift-reduce parser internally.")
     (license license:gpl3+)))
 
 (define-public emacs-parseclj
   (package
     (name "emacs-parseclj")
-    (version "0.1.0")
+    (version "0.2.0")
     (source
      (origin
        (method git-fetch)
@@ -25120,15 +25885,15 @@ It uses parseclj's shift-reduce parser internally.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "03bm5dm4hmkqimv4wqxjjh5814pxysmm7z54bv2rf7zwv1x7dggr"))))
+         "0894vhyx1phq8mdynnnqflcgi2a54hi926f4dk8slawzx1cb9xxb"))))
     (build-system emacs-build-system)
     (propagated-inputs `(("emacs-a" ,emacs-a)))
     (home-page "https://cider.mx")
     (synopsis "Clojure parser for Emacs Lisp")
     (description
-     "An Emacs Lisp library for parsing Clojure code and EDN data.
-It supports several input and output formats, all powered by the
-same shift-reduce parser function.")
+     "Parseclj is an Emacs Lisp library for parsing Clojure code and EDN data.
+It supports several input and output formats, all powered by the same
+shift-reduce parser function.")
     (license license:gpl3+)))
 
 (define-public emacs-hide-mode-line
@@ -25544,7 +26309,7 @@ launching other commands/applications from within Emacs, similar to the
 (define-public emacs-no-littering
   (package
     (name "emacs-no-littering")
-    (version "1.2.0")
+    (version "1.2.1")
     (source
      (origin
        (method git-fetch)
@@ -25553,10 +26318,10 @@ launching other commands/applications from within Emacs, similar to the
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1hma9var0nmrmjlh16s49hbfc1s4jvfd2prqxf14lxfd51404niw"))))
+        (base32 "00chkzpjcdll907vpzfzmf9p3jprisnr8i0h1x5gixidwbfc2whi"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/emacscollective/no-littering")
-    (synopsis "Help keep ~/.emacs.d/ clean")
+    (synopsis "Help keep @file{~/.emacs.d/} clean")
     (description "The default paths used to store configuration files and
 persistent data are not consistent across Emacs packages, be them built-in or
 third-party ones.  @code{no-littering} sets out to help clean
@@ -25725,7 +26490,7 @@ variables.")
 (define-public emacs-company-emoji
   (package
     (name "emacs-company-emoji")
-    (version "2.6.0")
+    (version "2.6.1")
     (source
      (origin
        (method git-fetch)
@@ -25734,7 +26499,7 @@ variables.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0pa67yfcr8lrxdbvln8hs663gsxz38ggwpva7121ngascqgx42wp"))))
+        (base32 "1rhf2hr345953mkn52i58aiq8j16ps2ckapd5f7jxmhkcpzxxfhk"))))
     (build-system emacs-build-system)
     (propagated-inputs
      `(("emacs-company" ,emacs-company)))
@@ -25989,34 +26754,36 @@ snippets for Emacs.")
       (license license:expat))))
 
 (define-public emacs-org-roam
-  (package
-    (name "emacs-org-roam")
-    (version "1.2.2")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/org-roam/org-roam")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0fanv0nl03qn65amxsq4q544zrhv94a37gdg9bwydik9439avbsc"))))
-    (build-system emacs-build-system)
-    (propagated-inputs
-     `(("emacs-company" ,emacs-company)
-       ("emacs-dash" ,emacs-dash)
-       ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
-       ("emacs-f" ,emacs-f)
-       ("emacs-org-ref" ,emacs-org-ref)
-       ("emacs-s" ,emacs-s)))
-    (home-page "https://github.com/org-roam/org-roam/")
-    (synopsis "Non-hierarchical note-taking with Org mode")
-    (description "Emacs Org Roam is a solution for taking non-hierarchical
+  (let ((commit "8ad57b121831eda8d226faa14ff2ba7ab652849c")
+        (revision "0")
+        (version "1.2.3"))
+    (package
+      (name "emacs-org-roam")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/org-roam/org-roam")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "162qhb6rkpl1n0l8yhnwgagsx56ykaj9lchsny1id5z1257kgw9w"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("emacs-dash" ,emacs-dash)
+         ("emacs-emacsql-sqlite3" ,emacs-emacsql-sqlite3)
+         ("emacs-f" ,emacs-f)
+         ("emacs-org" ,emacs-org)
+         ("emacs-s" ,emacs-s)))
+      (home-page "https://github.com/org-roam/org-roam/")
+      (synopsis "Non-hierarchical note-taking with Org mode")
+      (description "Emacs Org Roam is a solution for taking non-hierarchical
 notes with Org mode.  Notes are captured without hierarchy and are connected
 by tags.  Notes can be found and created quickly.  Org Roam should also work
 as a plug-and-play solution for anyone already using Org mode for their
 personal wiki.")
-    (license license:gpl3+)))
+      (license license:gpl3+))))
 
 (define-public emacs-org-roam-bibtex
   (package
@@ -26172,32 +26939,30 @@ or region and use of locally installed binaries.")
     (license license:gpl3+)))
 
 (define-public emacs-execline
-  (let ((commit "c75dd9b2c54d8e59fc35fd4bd98d8e213948a3f5")
-        (revision "1"))
-    (package
-      (name "emacs-execline")
-      (version (git-version "0.1" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/KAction/emacs-execline/")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
-      (build-system emacs-build-system)
-      (propagated-inputs
-       `(("emacs-s" ,emacs-s)))
-      (arguments
-       `(#:tests? #t
-         #:test-command '("emacs" "-Q" "-batch" "-L" "."
-                          "-l" "t/indent.el"
-                          "-f" "ert-run-tests-batch-and-exit")))
-      (home-page "https://gitlab.com/KAction/emacs-execline/")
-      (synopsis "Major Emacs mode for editing execline scripts")
-      (description
-       "This package provides a major mode for editing execline scripts.
+  (package
+    (name "emacs-execline")
+    (version "1.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/KAction/emacs-execline/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "02q531c9wvdwflhggflnci4a36h2bb90bq25bbhw6i2lvrd9sk55"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-s" ,emacs-s)))
+    (arguments
+     `(#:tests? #t
+       #:test-command '("emacs" "-Q" "-batch" "-L" "."
+                        "-l" "t/indent.el"
+                        "-f" "ert-run-tests-batch-and-exit")))
+    (home-page "https://gitlab.com/KAction/emacs-execline/")
+    (synopsis "Major Emacs mode for editing execline scripts")
+    (description
+     "This package provides a major mode for editing execline scripts.
 
 Features:
 @itemize
@@ -26208,7 +26973,7 @@ Features:
 @item Automatic enable of mode in @file{*.exec} files.
 @item Automatic enable of mode in files with @code{execlineb} interpreter.
 @end itemize\n")
-      (license license:gpl3+))))
+    (license license:gpl3+)))
 
 (define-public emacs-shell-pop
   (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
@@ -26668,15 +27433,15 @@ s-expression.")
 (define-public emacs-map
   (package
     (name "emacs-map")
-    (version "2.1")
+    (version "3.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/map-"
-                           version ".el"))
+                           version ".tar"))
        (sha256
         (base32
-         "0ydz5w1n4vwhhzxxj003s7jv8n1wjijwfryk5z93bwhnr0cak0i0"))))
+         "00wf8lgh1b1i5l838y6di8194rf5gf5djklkhmxj1nlikz66j2ls"))))
     (build-system emacs-build-system)
     (home-page "http://elpa.gnu.org/packages/map.html")
     (synopsis "Map manipulation functions")
@@ -26790,5 +27555,116 @@ rules about where space should be left to separate words and parentheses.")
     (description "This mode allows to paste whole buffers or parts of buffers
 to pastebin-like services.  It supports more than one service and will
 failover if one service fails.  More services can easily be added over time
-and prefered services can easily be configured.")
+and preferred services can easily be configured.")
     (license license:gpl3+)))
+
+(define-public emacs-keystore-mode
+  (let ((release "0.0.1")
+        (revision "0")
+        (commit "43bd5926348298d077c7221f37902c990df3f951"))
+    (package
+      (name "emacs-keystore-mode")
+      (version (git-version release revision commit))
+      (home-page "https://github.com/peterpaul/keystore-mode")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url home-page)
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "06cznkqkm04zz5lqfb514aqvsr2p13arzysixv0ss0bqpvdq7cv7"))))
+      (build-system emacs-build-system)
+      (arguments
+       `(#:tests? #t
+         #:test-command
+         '("emacs" "--no-init-file" "--batch"
+           "--eval=(require 'ecukes)" "--eval=(ecukes)")))
+      (native-inputs
+       `(("emacs-ecukes" ,emacs-ecukes)
+         ("emacs-espuds" ,emacs-espuds)
+         ("emacs-undercover" ,emacs-undercover)
+         ("openjdk" ,openjdk9)))
+      (propagated-inputs
+       `(("emacs-origami" ,emacs-origami-el)
+         ("emacs-s" ,emacs-s)))
+      (synopsis "Major mode for viewing and managing Java keystores")
+      (description
+       "This package provides an Elisp wrapper around the Java
+@command{keytool} command and major mode for viewing Java keystores.")
+      (license license:expat))))
+
+(define-public emacs-ivy-avy
+  (package
+    (name "emacs-ivy-avy")
+    (version "0.13.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/"
+             "ivy-avy-" version ".tar"))
+       (sha256
+        (base32 "1q5caxm4rnh4jy5n88dhkdbx1afsshmfki5dl8xsqbdb3y0zq7yi"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)
+       ("emacs-avy" ,emacs-avy)))
+    (home-page "https://github.com/abo-abo/swiper")
+    (synopsis "Avy integration for Ivy")
+    (description
+     "This package adds a \"C-'\" binding to Ivy minibuffer that uses Avy.")
+    (license license:gpl3+)))
+
+(define-public emacs-vertico
+  (package
+    (name "emacs-vertico")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/minad/vertico")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01x2nxj2gnmzg91nxjmgy9i41c04gzplsi19qldm4w03schgs8f6"))))
+    (build-system emacs-build-system)
+    (native-inputs
+     `(("texinfo" ,texinfo)))
+    (home-page "https://github.com/minad/vertico")
+    (synopsis "Vertical interactive completion")
+    (description
+     "Vertico provides a minimalistic vertical completion UI, which is based
+on Emacs' default completion system.  By reusing the default system, it
+achieves full compatibility with built-in Emacs commands and completion
+tables.  Vertico is pretty bare-bone and only provides a minimal set of
+commands.  Additional optional enhancements can be provided externally by
+complementary packages.")
+    (license license:gpl3+)))
+
+(define-public emacs-ivy-hydra
+  (package
+    (name "emacs-ivy-hydra")
+    (version "0.13.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://elpa.gnu.org/packages/"
+             "ivy-hydra-" version ".tar"))
+       (sha256
+        (base32 "06rln9bnq5hli5rqlm47fb68b8llpqrmzwqqv4rn7mx3854i9a5x"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-ivy" ,emacs-ivy)
+       ("emacs-hydra" ,emacs-hydra)))
+    (home-page "https://github.com/abo-abo/swiper")
+    (synopsis "Additional key bindings for Ivy")
+    (description
+     "This package provides the `hydra-ivy/body' command, which is a
+quasi-prefix map, with many useful bindings.  These bindings are
+shorter than usual, using mostly unprefixed keys.")
+    (license license:gpl3+)))
+