diff options
Diffstat (limited to 'gnu/packages/emacs-xyz.scm')
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 1871 |
1 files changed, 1273 insertions, 598 deletions
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1f267da1ea..bbaafcc730 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015-2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016, 2018, 2020 Christine Lemmer-Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> @@ -31,7 +31,7 @@ ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017–2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2017, 2018, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018, 2019 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018, 2019, 2020, 2021 Pierre Neidhardt <mail@ambrevar.xyz> @@ -119,6 +119,9 @@ ;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net> +;;; Copyright © 2023 Simon Streit <simon@netpanic.org> +;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -250,6 +253,7 @@ #:use-module (gnu packages erlang) #:use-module (gnu packages statistics) #:use-module (gnu packages libcanberra) + #:use-module (gnu packages wget) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -558,10 +562,10 @@ configuration language which makes it trivial to write your own themes.") (license license:gpl3+)))) (define-public emacs-inspector - (let ((commit "f02263e1b670bd4fe706c7b07a523fc9718a55f6")) ;version bump + (let ((commit "0766ce48dfbf193df73a1fd343a84a9d41ded8ba")) ;version bump (package (name "emacs-inspector") - (version "0.10") + (version "0.19") (source (origin (uri (git-reference @@ -569,7 +573,7 @@ configuration language which makes it trivial to write your own themes.") (commit commit))) (method git-fetch) (sha256 - (base32 "1k2dy2z73cn8j784rvcmk9i43xw9g1rcqqmqrl38kv655l62vgz0")) + (base32 "0wi8j3r5lz9ww54jdjb6dv4f2rgjv41v8cb5k652skpxllr4cfwy")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments @@ -579,21 +583,7 @@ configuration language which makes it trivial to write your own themes.") "-L" "." "-l" "inspector-tests.el" "-l" "tree-inspector-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'preserve-emacs-28-compatibility - ;; XXX: `cl-constantly' function is defined in "cl-lib" starting - ;; from Emacs 29+. For now, replace it with its definition. - (lambda _ - (substitute* "tree-inspector.el" - (("cl-constantly") "lambda (_)")))) - (add-before 'check 'skip-failing-test - (lambda _ - (substitute* "tree-inspector-tests.el" - (("\\(ert-deftest inspector-tests--inspect-struct-test.*" all) - (string-append all " (skip-unless nil)")))))))) - (native-inputs (list emacs-ert-runner)) + "-f" "ert-run-tests-batch-and-exit"))) (propagated-inputs (list emacs-treeview)) (home-page "https://github.com/mmontone/emacs-inspector") (synopsis "Inspection tool for Emacs Lisp objects") @@ -655,6 +645,7 @@ current buffer.") (uri (git-reference (url "https://github.com/vapniks/hide-lines.git") (commit "f0828c15e50db5eddb905de783e7683b04d1eca3"))) + (file-name (git-file-name name version)) (sha256 (base32 "1pw0wp1pzy6snycvz12nj0q7jxxj07h3lqas184w44nhrira7qhj")))) @@ -701,6 +692,7 @@ system.") (uri (git-reference (url "https://github.com/hsluv/hsluv-emacs.git") (commit "c3bc5228e30d66e7dee9ff1a0694c2b976862fc0"))) + (file-name (git-file-name name version)) (sha256 (base32 "19q8qlq4s2kfydpadkq1zd92611dvq7dr8vlhlbd9gplzpx7dhfd")))) @@ -996,13 +988,13 @@ buffer.") (define-public emacs-project (package (name "emacs-project") - (version "0.9.3") + (version "0.9.6") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/project-" version ".tar")) (sha256 - (base32 "0p2ivkmcx55xwmyg2vhj8qcqg4qd5y3myshn194ncy38lbvsj91h")))) + (base32 "11zxkfv756xsx6c87r66sm3k88hv5f623bp3hh1cp3j97hkd4b4d")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xref)) (home-page "https://elpa.gnu.org/packages/project.html") @@ -1075,11 +1067,11 @@ on stdout instead of using a socket as the Emacsclient does.") (license license:gpl3+))) (define-public emacs-libgit - (let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a") + (let ((commit "ab1a53a6a0120872e42582fc980e779d47de6d0e") (revision "1")) (package (name "emacs-libgit") - (version (git-version "20200515" revision commit)) + (version (git-version "0.0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -1088,11 +1080,7 @@ on stdout instead of using a socket as the Emacsclient does.") (file-name (git-file-name name version)) (sha256 (base32 - "0pnjr3bg6y6354dfjjxfj0g51swzgl1fncpprah75x4k94rd369f")) - (patches (search-patches - ;; Submitted for inclusion upstream (see: - ;; https://github.com/magit/libegit2/pull/96). - "emacs-libgit-use-system-libgit2.patch")) + "1fqqhc7mr9lyshqva8wqknk5kc9vr10rxdp9dkrqgwawr3lk1k5p")) (snippet #~(begin ;; bundled, use the one shipped with emacs instead @@ -1100,68 +1088,73 @@ on stdout instead of using a socket as the Emacsclient does.") ;; Use the cmake-build-system as it provides support for cross builds. (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DUSE_SYSTEM_LIBGIT2=x") - ;; Add the emacs-build-system byte compilation and install phases. - #:imported-modules (,@%cmake-build-system-modules + (list + #:configure-flags #~(list "-DUSE_SYSTEM_LIBGIT2=x") + ;; Add the emacs-build-system byte compilation and install phases. + #:imported-modules `(,@%cmake-build-system-modules (guix build emacs-build-system) (guix build emacs-utils)) - #:modules ((guix build cmake-build-system) + #:modules '((guix build cmake-build-system) ((guix build emacs-build-system) #:prefix emacs:) (guix build emacs-utils) (guix build utils)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda _ - ;; Use Emacs 28 unibyte strings. - ;; XXX: This now breaks if linked against Emacs <= 26, probably - ;; also 27. - (substitute* "src/egit-blob.c" - (("make_string") "make_unibyte_string")))) - (add-after 'unpack 'set-libgit--module-file - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (make-file-writable "libgit.el") - (emacs-substitute-variables "libgit.el" - ("libgit--module-file" - (string-append (emacs:elpa-directory out) "/libegit2.so")))))) - (add-before 'install 'prepare-for-install - (lambda _ - (let ((s "../source")) - (copy-file "libegit2.so" (string-append s "/libegit2.so")) - (chdir s)))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((install (assoc-ref emacs:%standard-phases 'install))) - (install #:outputs outputs - #:include (cons "\\.so$" - emacs:%default-include))))) - (add-after 'unpack 'emacs-add-install-to-native-load-path - (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) - (add-after 'install 'make-autoloads - (assoc-ref emacs:%standard-phases 'make-autoloads)) - (add-after 'make-autoloads 'enable-autoloads-compilation - (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation)) - (add-after 'enable-autoloads-compilation 'patch-el-files - (assoc-ref emacs:%standard-phases 'patch-el-files)) - (add-after 'patch-el-files 'emacs-build - (assoc-ref emacs:%standard-phases 'build)) - (add-after 'emacs-build 'validate-compiled-autoloads - (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + ;; Use Emacs 28 unibyte strings. + ;; XXX: This now breaks if linked against Emacs <= 26, probably + ;; also 27. + (substitute* "src/egit-blob.c" + (("make_string") "make_unibyte_string")))) + (add-after 'unpack 'set-libgit--module-file + (lambda _ + (emacs-substitute-variables "libgit.el" + ("libgit--module-file" + (string-append (emacs:elpa-directory #$output) + "/libegit2.so"))))) + (add-after 'unpack 'skip-failing-tests + ;; XXX: Skip 2 failing tests (out of 29). + (lambda _ + (substitute* "test/submodule-test.el" + (("\\(ert-deftest (status|ids) .*" all) + (string-append all " (skip-unless nil)"))))) + (add-before 'install 'prepare-for-install + (lambda _ + (let ((s "../source")) + (copy-file "libegit2.so" (string-append s "/libegit2.so")) + (chdir s)))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((install (assoc-ref emacs:%standard-phases 'install))) + (install #:outputs outputs + #:include (cons "\\.so$" + emacs:%default-include))))) + (add-after 'unpack 'emacs-add-install-to-native-load-path + (assoc-ref emacs:%standard-phases 'add-install-to-native-load-path)) + (add-after 'install 'make-autoloads + (assoc-ref emacs:%standard-phases 'make-autoloads)) + (add-after 'make-autoloads 'enable-autoloads-compilation + (assoc-ref emacs:%standard-phases 'enable-autoloads-compilation)) + (add-after 'enable-autoloads-compilation 'patch-el-files + (assoc-ref emacs:%standard-phases 'patch-el-files)) + (add-after 'patch-el-files 'emacs-build + (assoc-ref emacs:%standard-phases 'build)) + (add-after 'emacs-build 'validate-compiled-autoloads + (assoc-ref emacs:%standard-phases 'validate-compiled-autoloads))))) (native-inputs - (list pkg-config emacs-no-x git-minimal)) + (list emacs-no-x git-minimal pkg-config)) (inputs (list libgit2)) (home-page "https://github.com/magit/libegit2") (synopsis "Emacs bindings for libgit2") (description "This is an experimental module written in C providing libgit2 bindings for Emacs, intended to boost the performance of Magit.") - ;; The LICENSE file says GPL v2+, but libgit.el says GPL v3+. - (license license:gpl3+)))) + (license license:gpl2+)))) (define-public emacs-magit - (let ((commit "b908c79b44f5c282eec44f19fc1d9967f041dd5c") - (revision "1")) + (let ((commit "c883fabe28a74d59d996cbef3f742874f3459bc0") + (revision "2")) (package (name "emacs-magit") (version (git-version "3.3.0" revision commit)) @@ -1173,7 +1166,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1wybli5xrxkn8b7d7nm7h44avip9pjc24ig73hh15xg2wjm90zzc")))) + (base32 "0cq2bgny5jac1n9h7hp0pkipil41sf079h2qh5rh7bj0085dc7wv")))) (build-system emacs-build-system) (arguments (list @@ -1191,7 +1184,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") ;; the root of the project for the emacs-build-system. (for-each (lambda (f) (install-file f "lisp")) - (find-files "Documentation" "\\.info$")))) + (find-files "docs" "\\.info$")))) (add-after 'build-info-manual 'set-magit-version (lambda _ (make-file-writable "lisp/magit.el") @@ -1315,6 +1308,28 @@ process, passing on the arguments as command line arguments.") "Magit-annex adds a few git-annex operations to the Magit interface.") (license license:gpl3+))) +(define-public emacs-malyon + (package + (name "emacs-malyon") + (version "20161204") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/speedenator/malyon/") + (commit "0d9882650720b4a791556f5e2d917388965d6fc0"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0an1yvp0p624rxd8n5phiwvznw35ripqhlwzwyv2bw7lc1rscllr")))) + (build-system emacs-build-system) + (home-page "https://github.com/speedenator/malyon") + (synopsis "Z-machine interpreter") + (description + "Malyon is a Z-machine interpreter for playing text-based adventure +games. Malyon plays version 3 (.z3), version 5 (.z5), and version 8 (.z8) z +code files.") + (license license:expat))) + (define-public emacs-mct (package (name "emacs-mct") @@ -2562,14 +2577,14 @@ project root.") (define-public emacs-relint (package (name "emacs-relint") - (version "1.20") + (version "1.21") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "relint-" version ".tar")) (sha256 - (base32 "0r20dim2r4a4bv0fmgbnq3graa7hhlai55h9qyknapqbr2j1v1h7")))) + (base32 "12453agy7y3ayqn32fi11ljlnk8ck3i1aljw5wzm0yyqp00m73x3")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xr)) (home-page "https://github.com/mattiase/relint") @@ -2748,14 +2763,14 @@ incrementally confined in Isearch manner.") (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "12") + (version "14") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "048ijrpw6s4k7zr78fzc3ksjjri6mnyp6c47h5lp5nw5gvm4np7a")))) + (base32 "0525vmi397q604z8i35zld3c4fkwbvxwir5lf4f1ji1bbvkzqavc")))) (build-system gnu-build-system) (arguments (list @@ -2996,6 +3011,28 @@ an interactive shell, and look up definitions and documentation as well as code completion and project management support.") (license license:gpl3+))) +(define-public emacs-auto-compile + (package + (name "emacs-auto-compile") + (version "1.7.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacscollective/auto-compile.git") + (commit version))) + (sha256 + (base32 + "1njnyilv6lxnbvi6yrgzg6qjhf6vgh4fpag4hav1j45718y6kd31")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-compat emacs-packed)) + (home-page "https://github.com/emacscollective/auto-compile") + (synopsis "Automatically compile Emacs Lisp libraries") + (description + "This package provides two minor modes which automatically recompile +Emacs Lisp source files. Together, these modes guarantee that Emacs never +loads outdated byte code files.") + (license license:gpl3+))) + (define-public emacs-auto-sudoedit (package (name "emacs-auto-sudoedit") @@ -3121,6 +3158,32 @@ defined in RFC 2425 and RFC 2426 to/from The Insidious Big Brother Database shine on top of your cursor so you know where it is.") (license license:gpl3+))) +(define-public emacs-paradox + (let ((commit "96401577ed02f433debe7604e49afd478e9eda61")) ;version bump + (package + (name "emacs-paradox") + (version "2.5.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Malabarba/paradox") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v9hmvq6bcr2hwlb09ldsd6pjl19ri5n2hl2bs3x52fqjj6fdzzn")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-hydra emacs-let-alist emacs-seq emacs-spinner)) + (home-page "https://github.com/Malabarba/paradox") + (synopsis "Paradox is an extension to Emacs packages menu") + (description + "Paradox is a project for modernizing Emacs' Package menu. It provides +improved appearance, mode-line information, GitHub integration, +customizability and asynchronous upgrading.") + (license license:gpl2+)))) + (define-public emacs-carp (let ((commit "17d3d84963434233997626850195f205882bf0df") (revision "0")) @@ -3431,14 +3494,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "13.1.6") + (version "13.1.9") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "0pdinnhkv7vqib01a6vxq1iixs7sw72r0sxzryv78c9hxn2k4552")))) + (base32 "0dvf7ajfpi68823qv9vav3r1k04gc9bfq2ys3g1rhga2glxn7q9r")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -3690,7 +3753,7 @@ Its features are: (define-public emacs-citeproc-el (package (name "emacs-citeproc-el") - (version "0.9.2") + (version "0.9.3") (source (origin (method git-fetch) @@ -3699,7 +3762,7 @@ Its features are: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0p9gch5iijia5pm9rzlv50xcad2g9mis9mc90nvh31in9xjcccpz")))) + (base32 "0md8pfmd0v9ipnxj1q13vv81hl90wf4rm46czbk1fdzkyf9js08m")))) (build-system emacs-build-system) (arguments `(#:emacs ,emacs)) ;need libxml support @@ -6868,8 +6931,8 @@ It is not intended as a user interface.") (make-file-writable "sqlite3.el") (emacs-substitute-sexps "sqlite3.el" ("(require 'sqlite3-api nil t)" - (string-append - "(module-load \"" #$output "/lib/sqlite3-api.so\")"))))) + `(module-load + ,(string-append #$output "/lib/sqlite3-api.so")))))) (add-before 'check 'build-emacs-module (lambda _ ;; Remove code that fetches constants from the SQLite website @@ -6898,6 +6961,32 @@ direct access to the SQLite C interface. It only exposes a subset of the full SQLite C interface, but should satisfy most user's needs.") (license license:gpl3+))) +(define-public emacs-pretty-speedbar + (let ((commit "56dc9f114fcc55843e182cde1fc9d7a14c261c6a") + (revision "0")) + (package + (name "emacs-pretty-speedbar") + (version (git-version "0.2" revision commit)) + (source (origin + (uri (git-reference + (url "https://github.com/kcyarn/pretty-speedbar") + (commit commit))) + (method git-fetch) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hz67jhvg9n9d07lil6zqciqhh512k0fv54dl605p7vi704ma2ir")))) + (build-system emacs-build-system) + (propagated-inputs (list font-awesome)) + (home-page "https://github.com/kcyarn/pretty-speedbar") + (synopsis "SVG icons for the Emacs Speedbar") + (description + "This package generates and implements appealing SVG icons for the +Emacs Speedbar. By default, it generates icons from the Font Awesome fontset. +However, alternative fontsets may also be used, and the color of the icons may +be customized.") + (license license:gpl3+)))) + (define-public emacs-sr-speedbar (let ((commit "77a83fb50f763a465c021eca7343243f465b4a47") (revision "0")) @@ -6944,31 +7033,40 @@ the speedbar window.") (license license:gpl3+))) (define-public emacs-shx - (package - (name "emacs-shx") - (version "1.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/riscy/shx-for-emacs") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1cb5w6p9gnfxgh8qp7yj2f5ibpk1b4b5af3ynldaaj6yfpa8hqzn")))) - (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command - '("emacs" "--batch" "--quiet" - "--script" "test/script.el"))) - (home-page "https://github.com/riscy/shx-for-emacs") - (synopsis "Extras for the comint-mode shell") - (description - "This package extends @code{comint-mode}: it parses markup in the output + ;; XXX: Some tests fails in the latest stable release. + (let ((commit "b99d16f36bc278d668d8428c4bc9af77064c336a") + (revision "1")) + (package + (name "emacs-shx") + (version (git-version "1.5.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/riscy/shx-for-emacs") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wkqnc5n8if8fsh7f3bdr5nzn6dbj1nzdxlmnz8nflmx4g32fp6v")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command + #~(list "emacs" "--batch" "--quiet" "--script" "test/script.el") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'appease-checkdoc + (lambda _ + (substitute* "shx.el" + (("Toggle shx-mode on") "Toggle `shx-mode' on"))))))) + (home-page "https://github.com/riscy/shx-for-emacs") + (synopsis "Extras for the Comint mode shell") + (description + "This package extends Comint mode: it parses markup in the output stream, enabling plots and graphics to be embedded, and adds command-line -functions which plug into Emacs (e.g. use @code{:e <filename>} to edit a -file).") - (license license:gpl3+))) +functions which plug into Emacs (e.g., use @code{:e <filename>} to edit +a file).") + (license license:gpl3+)))) (define-public emacs-names (let ((commit "d8baba5360e5253938a25d3e005455b6d2d86971") @@ -7796,14 +7894,14 @@ variables, and so on. The mode also allows you to execute Tup commands.") (define-public emacs-compat (package (name "emacs-compat") - (version "29.1.1.0") + (version "29.1.3.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "compat-" version ".tar")) (sha256 (base32 - "0b371rilcbkjmb1fdaib7fnrngkm1q7xdmv15a3xvmpalvfwmrwc")))) + "0lzfqiimfpd22bv0pw3j6lgbd7ni1mah24jddwx96sf65s39f9hz")))) (build-system emacs-build-system) (home-page "https://git.sr.ht/~pkal/compat") (synopsis "Emacs Lisp Compatibility Library") @@ -7842,6 +7940,15 @@ front-ends. Company comes with many back-ends, e.g., @code{company-elisp}. These are distributed in separate files and can be used individually.") (license license:gpl3+))) +(define* (%emacs-company-box-upstream-source #:key commit version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sebastiencs/company-box") + (commit commit))) + (file-name (git-file-name "emacs-company-box" version)) + (hash hash))) + (define-public emacs-company-box ;; There is no release yet. Version is extracted from the main ;; file. @@ -7853,13 +7960,74 @@ These are distributed in separate files and can be used individually.") (version (git-version version revision commit)) (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/sebastiencs/company-box") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59")))) + (method (@@ (guix packages) computed-origin-method)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build emacs-utils) + (guix build utils)) + #~(begin + (use-modules (guix build utils) + (guix build emacs-utils)) + (let* ((dir (string-append "emacs-company-box-" #$version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+emacs-minimal + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package gzip) + #+(canonical-package tar))) + + ;; Copy the upstream source + (copy-recursively + #+(%emacs-lsp-treemacs-upstream-source + #:commit commit #:version version + #:hash + (content-hash + "13fgmdy51gqdwijqfvb784pirx4lgva0y7ysi0c3fcx8f82cdj59")) + dir) + + (with-directory-excursion dir + ;; The icons are unclearly licensed and possibly non-free, + ;; see <https://github.com/emacs-lsp/lsp-treemacs/issues/123> + (with-directory-excursion "images" + (for-each delete-file-recursively + '("eclipse" "idea" "netbeans"))) + + ;; Also remove any mentions in the source code. + (make-file-writable "company-box-icons.el") + (emacs-batch-edit-file "company-box-icons.el" + '(progn + (while (search-forward-regexp + "(defvar company-box-icons-\\([a-z-]*\\)" + nil t) + (pcase (match-string 1) + ((or "images" + "all-the-icons" + "icons-in-terminal") nil) + (_ (beginning-of-line) + (kill-sexp))) + (basic-save-buffer)))) + + ;; Also patch source to not show broken icons as configuration + ;; option. + (substitute* "company-box-icons.el" + (("- .*, from.*editor.*") "") + (("\\(const :tag \"([a-z]*)\".*\\)" all tag) + (if (member tag + '("images" "all-the-icons" "icons-in-terminal")) + all + "")))) + + (invoke "tar" "cvfa" #$output + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + "--hard-dereference" + dir)))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-company emacs-dash emacs-frame-local)) @@ -8651,7 +8819,7 @@ in @code{html-mode}.") (define-public emacs-slime (package (name "emacs-slime") - (version "2.27") + (version "2.28") (source (origin (method git-fetch) @@ -8660,45 +8828,45 @@ in @code{html-mode}.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1s5mbljlz22pb90gwbd380nighkz6gdxl77hc08gri7wwr5gy5n2")))) + (base32 "1acmm4w1mv1qzpnkgc4wyiilbx8l0dk16sx8wv815ri5ks289rll")))) (build-system emacs-build-system) - (native-inputs - (list texinfo)) (arguments - `(#:include '("\\.el$" "\\.lisp$" "\\.asd$" "contrib") - #:exclude '("^slime-tests.el" "^contrib/test/" - "^contrib/Makefile$" "^contrib/README.md$") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")))) - (add-before 'install 'configure - (lambda* _ - (emacs-substitute-variables "slime.el" - ("inferior-lisp-program" "sbcl")))) - (add-before 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (info-dir (string-append out "/share/info")) - (doc-dir (string-append out "/share/doc/" - ,name "-" ,version)) + (list + #:include #~(cons* "\\.lisp$" "\\.asd$" + "contrib" + "lib/hyperspec.el" + %default-include) + #:exclude #~(list "^slime-tests.el" "^contrib/test/" + "^contrib/Makefile$" "^contrib/README.md$") + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'configure + (lambda* _ + (emacs-substitute-variables "slime.el" + ("inferior-lisp-program" "sbcl")))) + (add-before 'install 'install-doc + (lambda _ + (let ((info-dir (string-append #$output "/share/info")) + (doc-dir (string-append #$output "/share/doc/" + #$name "-" #$version)) (doc-files '("doc/slime-refcard.pdf" "README.md" "NEWS" "PROBLEMS" "CONTRIBUTING.md"))) - (with-directory-excursion "doc" - (substitute* "Makefile" - (("infodir=/usr/local/info") - (string-append "infodir=" info-dir))) - (invoke "make" "html/index.html") - (invoke "make" "slime.info") - (install-file "slime.info" info-dir) - (copy-recursively "html" (string-append doc-dir "/html"))) - (for-each (lambda (f) - (install-file f doc-dir) - (delete-file f)) - doc-files) - (delete-file-recursively "doc"))))))) + (with-directory-excursion "doc" + (substitute* "Makefile" + (("infodir=/usr/local/info") + (string-append "infodir=" info-dir))) + (invoke "make" "html/index.html") + (invoke "make" "slime.info") + (install-file "slime.info" info-dir) + (copy-recursively "html" (string-append doc-dir "/html"))) + (for-each (lambda (f) + (install-file f doc-dir) + (delete-file f)) + doc-files) + (delete-file-recursively "doc"))))))) + (native-inputs + (list texinfo)) (home-page "https://github.com/slime/slime") (synopsis "Superior Lisp Interaction Mode for Emacs") (description @@ -8801,10 +8969,10 @@ windows Emacs produces, while still keeping them within arm’s reach.") #:phases #~(modify-phases %standard-phases (add-after 'unpack 'patch-python-executable - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key inputs #:allow-other-keys) (emacs-substitute-variables "pydoc.el" ("pydoc-python-command" - (search-input-file outputs "bin/python"))))) + (search-input-file inputs "bin/python"))))) (add-after 'unpack 'patch-lsof-executable (lambda* (#:key inputs #:allow-other-keys) (substitute* "pydoc.el" @@ -10120,25 +10288,26 @@ them easier to distinguish from other, less important buffers.") (license license:expat))) (define-public emacs-embark - (package - (name "emacs-embark") - (version "0.19") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/oantolin/embark") - (commit version))) - (sha256 - (base32 "05c8p7rqv9p8p3nhgcjfr66hpsqazhnhwsnfdapxd9z7wrybqbg5")) - (file-name (git-file-name name version)))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-avy emacs-consult)) - (home-page "https://github.com/oantolin/embark") - (synopsis "Emacs mini-buffer actions rooted in keymaps") - (description - "This package provides a sort of right-click contextual menu for Emacs + (let ((commit "63013c2d3ef4dccc95167218ccbf4f401e489c3e")) ;version bump + (package + (name "emacs-embark") + (version "0.21.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oantolin/embark") + (commit commit))) + (sha256 + (base32 "14qp46wa1xgmb09jyk9cadj0b3m7bwspqnprk3zbfc6gw1r53235")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-avy emacs-consult)) + (home-page "https://github.com/oantolin/embark") + (synopsis "Emacs mini-buffer actions rooted in keymaps") + (description + "This package provides a sort of right-click contextual menu for Emacs offering you relevant @emph{actions} to use on a @emph{target} determined by the context. @@ -10152,7 +10321,7 @@ get offered actions like deleting, copying, renaming, visiting in another window, running a shell command on the file, etc. For buffers the actions include switching to or killing the buffer. For package names the actions include installing, removing or visiting the homepage.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-prescient (package @@ -10241,7 +10410,7 @@ style, or as multiple word prefixes.") (define-public emacs-consult (package (name "emacs-consult") - (version "0.31") + (version "0.32") (source (origin (method git-fetch) @@ -10249,7 +10418,7 @@ style, or as multiple word prefixes.") (url "https://github.com/minad/consult") (commit version))) (sha256 - (base32 "0ckyn4sdhc9dykbbdiin75jxza883dqa3g4mvf8qgsnzlqcjvvg6")) + (base32 "00cgc3bzj37319ds027rpj60wfk0c10cgp5xish2g1cq5ny74q32")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -10488,26 +10657,28 @@ placed at the margin of the minibuffer for your completion candidates.") (license license:gpl3+))) (define-public emacs-smartparens - (package - (name "emacs-smartparens") - (version "1.11.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/Fuco1/smartparens") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0zij2f2rjjym98w68jkp10n1ckpfprlkk217c3fg16hz5nq4vnm6")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash emacs-markdown-mode)) - (home-page "https://github.com/Fuco1/smartparens") - (synopsis "Paredit-like insertion, wrapping and navigation with user + (let ((commit "7afd647395018a26633673ed92ce7a9cb3ccb8f2") + (revision "0")) + (package + (name "emacs-smartparens") + (version (git-version "1.11.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Fuco1/smartparens") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ihvz1w2ggjplk604cdd5alxcq2iy3nm95m7wb6vncrbyb6v0ad2")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-dash emacs-markdown-mode)) + (home-page "https://github.com/Fuco1/smartparens") + (synopsis "Paredit-like insertion, wrapping and navigation with user defined pairs") - (description - "Smartparens is a minor mode for Emacs that deals with parens pairs + (description + "Smartparens is a minor mode for Emacs that deals with parens pairs and tries to be smart about it. It started as a unification effort to combine functionality of several existing packages in a single, compatible and extensible way to deal with parentheses, delimiters, tags @@ -10515,7 +10686,7 @@ and the like. Some of these packages include autopair, textmate, wrap-region, electric-pair-mode, paredit and others. With the basic features found in other packages it also brings many improvements as well as completely new features.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-dumbparens ;; There are no releases. @@ -11563,6 +11734,32 @@ refactoring for the @uref{http://clojure.org, Clojure programming language}. It is recommended to use @code{clojure-mode} with Paredit or Smartparens.") (license license:gpl3+))) +(define-public emacs-clj-deps-new + (let ((commit "e1cf65eb040f5a2e9a3eca970044ba71cc53fb27") + (revision "0")) + (package + (name "emacs-clj-deps-new") + (version (git-version "1.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jpe90/emacs-clj-deps-new") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03db3l5klc20wgdaj44scgjfi2mha85bip07ls6pwbi039ls7rvx")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-transient)) + (home-page "https://github.com/jpe90/emacs-clj-deps-new") + (synopsis "Create Clojure projects from templates") + (description + "This is a small wrapper around the +@uref{https://github.com/seancorfield/deps-new, deps-new} and +@uref{https://github.com/seancorfield/clj-new, clj-new} tools for creating +Clojure projects from templates.") + (license license:gpl3+)))) + (define-public emacs-clj-refactor (package (name "emacs-clj-refactor") @@ -12332,33 +12529,27 @@ empty @file{.projectile} file in it.") (base32 "12bdgykfh4mwsqdazxjdvha62h3q3v33159ypy91f6x59y01fi0n")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-s emacs-f emacs-dash emacs-let-alist)) - (native-inputs - (list emacs-ert-runner)) (arguments - `(#:include (cons "^project-skeletons\\/" %default-include) - ;; XXX: one failing test involving initializing a git repo - #:phases - (modify-phases %standard-phases - (add-before 'check 'make-test-writable - (lambda _ - (make-file-writable "test/skeletor-test.el") - #t)) - (add-before 'check 'remove-git-test - (lambda _ - (emacs-batch-edit-file "test/skeletor-test.el" - `(progn - (progn + (list + #:include #~(cons "^project-skeletons\\/" %default-include) + #:tests? #true + #:test-command #~(list "ert-runner") + #:phases + #~(modify-phases %standard-phases + ;; XXX: one failing test involving initializing a git repo. + (add-before 'check 'remove-git-test + (lambda _ + (emacs-batch-edit-file "test/skeletor-test.el" + `(progn (goto-char (point-min)) - (re-search-forward - "ert-deftest initialises-git-repo") + (re-search-forward "ert-deftest initialises-git-repo") (beginning-of-line) - (kill-sexp)) - (basic-save-buffer))) - #t))) - #:tests? #t - #:test-command '("ert-runner"))) + (kill-sexp) + (basic-save-buffer)))))))) + (native-inputs + (list emacs-ert-runner)) + (propagated-inputs + (list emacs-dash emacs-f emacs-let-alist emacs-s)) (home-page "https://github.com/chrisbarrett/skeletor.el") (synopsis "Project skeletons for Emacs") (description "This package provides project templates and automates the @@ -13214,7 +13405,7 @@ by Python's Jinja.") (define-public emacs-wgrep (package (name "emacs-wgrep") - (version "2.3.2") + (version "3.0.0") (source (origin (method git-fetch) (uri (git-reference @@ -13223,8 +13414,15 @@ by Python's Jinja.") (file-name (git-file-name name version)) (sha256 (base32 - "00cwqzb94jlq4mwgv8z7r3mn0a6mhq95z6j189kacq9g4473zh8d")))) + "16qg5dpg7hms5dmh92ksnjahf6010pw97ggi7sb0mfafd6iwps0a")))) (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "--batch" "-Q" + "-l" "wgrep-test.el" + "-f" "ert-run-tests-batch-and-exit"))) + (native-inputs (list emacs-dash emacs-s)) (home-page "https://github.com/mhayashi1120/Emacs-wgrep") (synopsis "Edit a grep buffer and apply those changes to the files") (description @@ -13351,6 +13549,32 @@ as well as features for editing search results.") "This Emacs library provides a Helm interface for Projectile.") (license license:gpl3+))) +(define-public emacs-hexrgb + (let ((commit "90e5f07f14bdb9966648977965094c75072691d4")) + (package + (name "emacs-hexrgb") + (version "0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsmirror/hexrgb") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0y5l6hrzm5j2jfrm5jp5zrxhxgvf930m2k4nyvk0rllpx0i1271z")))) + (build-system emacs-build-system) + (home-page "https://www.emacswiki.org/emacs/hexrgb.el") + (synopsis "Emacs functions to convert color formats") + (description + "HexRGB provides functions for converting between RGB (red, green, blue) +color components and HSV (hue, saturation, value) color components. More +accurately, it converts Emacs color components (whole numbers from 0 through +65535), RGB and HSV floating-point components (0.0 through 1.0), Emacs +color-name strings (such as \"blue\") and hex RGB color strings (such as +\"#FC43A7912\").") + (license license:gpl2+)))) + (define-public emacs-taskrunner (let ((commit "3afd4a546d42339543d3d4e51b175fc3e82b3358") (revision "1")) @@ -14083,11 +14307,19 @@ used for reverse direction.") (base32 "0bqzch14whlmrcasakah3psrzswvkzd7mmi8hx5s64kfp29wbdhi")))) (build-system emacs-build-system) + (arguments + (list + #:tests? #t + #:test-command #~(list "make" "test") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'skip-failing-test + (lambda _ + (substitute* "test/evil-owl-test.el" + (("\\(ert-deftest evil-owl-test-mark-string.*" all) + (string-append all " (skip-unless nil)")))))))) (propagated-inputs (list emacs-evil)) - (arguments - `(#:tests? #t - #:test-command '("make" "test"))) (home-page "https://github.com/mamapanda/evil-owl") (synopsis "Preview candidates when using Evil registers and marks") (description @@ -14527,7 +14759,7 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "9.6") + (version "9.6.1") (source (origin (method git-fetch) @@ -14536,7 +14768,7 @@ passive voice.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1pi9kkcbvsrvw009lf6q2l68n9jyjks94xjqyn36zq1vqcvmg33d")))) + (base32 "0iycj54ksanx6n3s06xhf0ax1cqjdcxynmz6cby27bcsj0sqflnp")))) (build-system emacs-build-system) (arguments (list @@ -15392,28 +15624,29 @@ a (typically) noncontiguous set of text.") (license license:gpl3+))) (define-public emacs-mu4e-alert - (package - (name "emacs-mu4e-alert") - (version "1.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/iqbalansari/mu4e-alert") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1nvsfbfsma59ilf7c3vjngnmx3aapwvvvaafdy5szm5r6lkicqvg")))) - (build-system emacs-build-system) - (propagated-inputs - (list emacs-alert emacs-s emacs-ht mu)) - (home-page "https://github.com/iqbalansari/mu4e-alert") - (synopsis "Desktop notification for mu4e") - (description - "This package provides desktop notifications for mu4e. -Additionally it can display the number of unread emails in the -mode-line.") - (license license:gpl3+))) + (let ((commit "3c9af8c7994df0a1a4f0703552ea3beffb485ace") + (revision "0")) + (package + (name "emacs-mu4e-alert") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/xzz53/mu4e-alert") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13li5pqqkzj7dwgpnngnk1ff46i100qw9xknlimpy2vf2k5yqv3y")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-alert emacs-ht emacs-s mu)) + (home-page "https://github.com/xzz53/mu4e-alert") + (synopsis "Desktop notifications and mode line display for mu4e") + (description + "This package provides desktop notifications for mu4e. +Additionally it can display the number of unread emails in the mode line.") + (license license:gpl3+)))) (define-public emacs-mu4e-jump-to-list (let ((commit "358bba003543b49ffa266e503e54aebd0ebe614b") @@ -15446,14 +15679,14 @@ automatically discovered and presented in recency order.") (define-public emacs-url-scgi (package (name "emacs-url-scgi") - (version "0.8") + (version "0.9") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "url-scgi-" version ".tar")) (sha256 (base32 - "1837vyamwk5mp2nf3k477hyr5pq1xy6p7br7kl6h2k8jmxqy3mlj")))) + "0mfbqr03302gk38aamlg1lgdznd6y3blcc3zizfb72ppb87j78mc")))) (build-system emacs-build-system) (home-page "https://github.com/skangas/url-scgi/") (synopsis "SCGI support for url.el") @@ -16095,10 +16328,10 @@ actually changing the buffer's text.") (define-public emacs-diff-hl ;;; XXX: Latest release is not tagged. Use commit matching version bump. - (let ((commit "37b00f3bad841e131d69442a89cbebc3041d996b")) + (let ((commit "8f2e4eb345f0639c8fc41e3f7576f77ba6987655")) (package (name "emacs-diff-hl") - (version "1.9.0") + (version "1.9.1") (source (origin (method git-fetch) @@ -16107,7 +16340,7 @@ actually changing the buffer's text.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0s3fcwk6c99n2q25bf0a33lphr9mcrxmvr5wz8qsj86jfbyi1is1")))) + (base32 "1c265083zyqi33sf3mpkk1n7pyfkrzxg4dacx0b787ypbj1sls16")))) (build-system emacs-build-system) (home-page "https://github.com/dgutov/diff-hl") (synopsis @@ -16631,13 +16864,13 @@ containing words from the Rime project.") (define-public emacs-pyim (package (name "emacs-pyim") - (version "5.2.9") + (version "5.3.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar")) (sha256 - (base32 "0blsz344jq1zx4qs73zinb8fhh2a35k5nx12i2wn76902qx2qc6j")))) + (base32 "0q0h705k1yymp1pqyycmq1zqvzawzkl4q2ckvflbncgrqh306xmh")))) (build-system emacs-build-system) (propagated-inputs (list emacs-async emacs-popup emacs-posframe emacs-xr)) @@ -16818,13 +17051,27 @@ and lambdas.") (sha256 (base32 "0wsvfn409a2ivbich8b8zqza78sprirg4bl7igx536ydqclmi0n7")))) (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'fix-byte-compilation + ;; XXX: The fix below was integrated upstream and can be removed + ;; in next release. + (lambda _ + (substitute* "org2web-el2org.el" + (("(define-obsolete-function-alias .*)\\)" _ lead) + (string-append lead " \"0.1\")")))))))) (propagated-inputs - (list emacs-dash emacs-el2org emacs-ht emacs-mustache + (list emacs-dash + emacs-el2org + emacs-ht + emacs-mustache emacs-simple-httpd)) (home-page "https://github.com/tumashu/org2web") - (synopsis "Static site generator based on org-mode") - (description "Org2web is a static site generator based on org-mode, -which code derived from Kelvin H's org-page.") + (synopsis "Static site generator based on Org mode") + (description "Org2web is a static site generator based on Org mode, which +code derived from Kelvin H's Org page.") (license license:gpl2+))) (define-public emacs-meow @@ -17278,7 +17525,7 @@ Emacs.") (define-public emacs-eglot (package (name "emacs-eglot") - (version "1.10") + (version "1.11") (source (origin (method url-fetch) @@ -17286,7 +17533,7 @@ Emacs.") ".tar")) (sha256 (base32 - "0iw1jnfsjd2yq73ic3cld8m51wyxdwn3kjv9ala28krvsvb4h3y4")))) + "1ifnk4bznykj34s4yh0gq5nyzja7mlv60krxa47j842grpndq2hp")))) (build-system emacs-build-system) (propagated-inputs (list emacs-external-completion @@ -17304,10 +17551,47 @@ 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-jabber + ;; No releases available. + (let ((commit "af0315e174fa6446d5c4dd3e6465d48912950e58") + (revision "0")) + (package + (name "emacs-jabber") + (version (git-version "0.8.92" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/emacs-jabber/emacs-jabber") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08q0hbm4pvp8sf261w1ihqa93sg8blfybfkhq7wrnvgs6kasgwvq")))) + (build-system emacs-build-system) + (arguments + (list + #:emacs emacs ;requires gnutls + #:phases + #~(modify-phases %standard-phases + (add-after 'build 'make-info + (lambda _ + (invoke "makeinfo" "jabber.texi") + (install-file "jabber.info" + (string-append #$output "/share/info"))))))) + (native-inputs (list texinfo)) + (propagated-inputs (list emacs-fsm emacs-hexrgb emacs-srv gnutls)) + (home-page "https://codeberg.org/emacs-jabber/emacs-jabber") + (synopsis "XMPP (Jabber) client for Emacs") + (description + "@code{jabber.el} is an XMPP client for Emacs. XMPP (also known as +\"Jabber\") is an instant messaging system; see @url{https://xmpp.org} for +more information.") + (license license:gpl2+)))) + (define-public emacs-jarchive (package (name "emacs-jarchive") - (version "0.9.0") + (version "0.10.0") (source (origin (method git-fetch) (uri (git-reference @@ -17316,7 +17600,7 @@ one if it fails.") (file-name (git-file-name name version)) (sha256 (base32 - "0v1mz9z8dgxr4yj9p0wf0a748nlnvv2z0mrbkbqz7nsnw5djkimd")))) + "1hddjs4yj03cqppip1gsgmkhp3fmq9ggyf5wxx5k3m78cg7k1bl7")))) (build-system emacs-build-system) (home-page "https://sr.ht/~dannyfreeman/jarchive") (synopsis "Jarchive teaches Emacs how to navigate to files inside JARs") @@ -17421,10 +17705,10 @@ running tests easier.") (license license:gpl3+))) (define-public emacs-org-transclusion - (let ((commit "cf51df7b87e0d32ba13ac5380557e81d9845d81b")) ;version bump + (let ((commit "7f4ad67bf1944b814a8763d304d4d27325504eb4")) ;version bump (package (name "emacs-org-transclusion") - (version "1.3.1") + (version "1.3.2") (source (origin (method git-fetch) @@ -17433,7 +17717,7 @@ running tests easier.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0ix5l8cjcafw8lqhkmwa3cpdw6cbpx65k0iww426nxya849y61yx")))) + (base32 "0dgqbazr22y0kmyw5ki1rkca10j6fy0ps5s9gx247gqlbmqz7088")))) (build-system emacs-build-system) (arguments (list @@ -17442,8 +17726,6 @@ running tests easier.") "-l" "org-transclusion.el" "-l" "test/unit-tests.el" "-f" "ert-run-tests-batch-and-exit"))) - (native-inputs - (list emacs-ert-runner)) (home-page "https://nobiot.github.io/org-transclusion/") (synopsis "Enable transclusion with Org Mode") (description "Org-transclusion lets you insert a copy of text content via @@ -18347,6 +18629,43 @@ a fontified buffer and pass the data to any number of backends which can deal with specific output formats.") (license license:gpl3+))) +(define-public emacs-enh-ruby-mode + ;; The latest tag is from 2019. + (let ((revision "0") + (commit "7e76d754e1632b4fc9a024fa393c3fc837bcc86b")) + (package + (name "emacs-enh-ruby-mode") + (version (git-version "20191111" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zenspider/enhanced-ruby-mode") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gc2kgvnzq6m6hswcvsd4c00xywi2phdnr121r53kvsv46avrq9z")))) + (build-system emacs-build-system) + (arguments + (list #:include #~(cons "^ruby/" %default-include) + #:tests? #t + #:test-command ''("rake" "test:all") + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-default-ruby + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "enh-ruby-mode.el" + ("enh-ruby-program" + (search-input-file inputs "bin/ruby")))))))) + (native-inputs (list ruby-rake)) + (inputs (list ruby)) + (home-page "https://github.com/zenspider/Enhanced-Ruby-Mode") + (synopsis "Emacs major mode for editing Ruby files") + (description "@code{enh-ruby-mode} is a major mode providing syntax +highlighting, navigation and indentation capabilities for editing Ruby source +files. It parses the source files using Ruby's builtin @code{Ripper} class +and performs syntax checks on them.") + (license license:ruby)))) + (define-public emacs-inheritenv (package (name "emacs-inheritenv") @@ -18709,14 +19028,14 @@ database of references on life sciences.") (define-public emacs-websocket (package (name "emacs-websocket") - (version "1.13.1") + (version "1.14") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "websocket-" version ".tar")) (sha256 - (base32 "1x664zswas0fpml7zaj59zy97avrm49zb80zd69rlkqzz1m45psc")))) + (base32 "0g75kaw9bdk30apiyk09583amnw9458kkmgbbcl2myqfqspywnva")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/websocket.html") (synopsis "Emacs WebSocket client and server") @@ -18908,43 +19227,38 @@ Slack client.") (license license:gpl3+)))) (define-public emacs-bash-completion - ;; Need to use a newer commit than the latest version in order to support - ;; completion interfaces that alters the candidate list provided by the - ;; package - (let ((commit "c5eaeed156ab906190c662d491269230967104b1") - (revision "0")) - (package - (name "emacs-bash-completion") - (version (git-version "3.1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/szermatt/emacs-bash-completion") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0r221iirqsbz13s76r68i496izbirrvcw8ql3wsh205zmxa3jqg1")))) - (inputs (list bash)) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (λ _ - (for-each make-file-writable (find-files ".")))) - (add-before 'install 'configure - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "bash-completion.el" - ("bash-completion-prog" - (search-input-file inputs "/bin/bash")))))))) - (home-page "https://github.com/szermatt/emacs-bash-completion") - (synopsis "Bash completion for the shell buffer") - (description - "@code{bash-completion} defines dynamic completion hooks for shell-mode - and shell-command prompts that are based on Bash completion.") - (license license:gpl2+)))) + (package + (name "emacs-bash-completion") + (version "3.1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szermatt/emacs-bash-completion") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cly0m6msn8xv9857nv4syw8fldqzvsa4kciq7av40y26a61hvrh")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (λ _ + (for-each make-file-writable (find-files ".")))) + (add-before 'install 'configure + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "bash-completion.el" + ("bash-completion-prog" + (search-input-file inputs "/bin/bash")))))))) + (inputs (list bash)) + (home-page "https://github.com/szermatt/emacs-bash-completion") + (synopsis "Bash completion for the shell buffer") + (description + "Bash Completion defines dynamic completion hooks for Shell mode and +@code{shell-command} prompts that are based on Bash completion.") + (license license:gpl2+))) (define-public emacs-easy-kill (package @@ -19841,6 +20155,9 @@ used with SGML-like languages: XML, HTML, XHTML, XSL, etc.") (base32 "1ipwzl0l26g5qvc1sgmz2ra5vn1j3hl0mnkgzpa3j4p8gsmxdiqr")))) (build-system emacs-build-system) + (arguments + (list #:include #~(cons* "^kbd\\.svg$" "^kbd-ergo\\.svg$" + %default-include))) (propagated-inputs (list emacs-undo-tree)) (home-page "https://ergoemacs.github.io/") @@ -20081,63 +20398,77 @@ object has been freed.") (license license:unlicense))) (define-public emacs-emacsql - (package - (name "emacs-emacsql") - (version "3.1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/skeeto/emacsql") - (commit (string-append version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xpmji2qgr9r38cdhws65x9s9jy7fk93q8g1j2fm7j8kcfjh9x3g")))) - (build-system emacs-build-system) - (arguments - (list - #:modules '((guix build emacs-build-system) - (guix build utils) - (guix build emacs-utils) - (srfi srfi-26)) - #:phases - #~(modify-phases %standard-phases - (add-before 'install 'patch-elisp-shell-shebangs - (lambda _ - (substitute* (find-files "." "\\.el") - (("/bin/sh") (which "sh"))))) - (add-after 'patch-elisp-shell-shebangs 'setenv-shell - (lambda _ - (setenv "SHELL" "sh"))) - (add-after 'setenv-shell 'build-emacsql-sqlite - (lambda _ - (invoke "make" "binary" (string-append "CC=" #$(cc-for-target))))) - (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite - ;; This build phase installs emacs-emacsql binary. - (lambda _ - (install-file "sqlite/emacsql-sqlite" - (string-append #$output "/bin")))) - (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el - ;; This build phase removes interactive prompts - ;; and makes sure Emacs look for binaries in the right places. - (lambda _ - (emacs-substitute-variables "emacsql-sqlite.el" - ("emacsql-sqlite-executable" - (string-append #$output "/bin/emacsql-sqlite")) - ;; Make sure Emacs looks for ‘GCC’ binary in the right place. - ("emacsql-sqlite-c-compilers" - `(list ,(which "gcc"))))))))) - (inputs - (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql)) - (propagated-inputs - (list emacs-finalize emacs-pg)) - (home-page "https://github.com/skeeto/emacsql") - (synopsis "Emacs high-level SQL database front-end") - (description "Any readable Lisp value can be stored as a value in EmacSQL, + (let ((commit "e1baaf2f874df7f9259a8ecca978e03d3ddae5b5") + (revision "0")) + (package + (name "emacs-emacsql") + (version (git-version "3.1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/magit/emacsql") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0dvqs1jg5zqn0i3r67sn1a40h5rm961q9vxvmqxbgvdhkjvip8fn")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "emacs" "-Q" "--batch" + "-L" "tests" + "-L" "." + "-l" "tests/emacsql-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:modules '((guix build emacs-build-system) + (guix build utils) + (guix build emacs-utils) + (srfi srfi-26)) + #:phases + #~(modify-phases %standard-phases + (add-before 'install 'remove-sqlite-builtin + ;; Current emacs 28.2 doesn't have sqlite feature and compilation + ;; of this file fails. This phase should be removed, when emacs + ;; package is updated to 29. + (lambda _ + (delete-file "emacsql-sqlite-builtin.el"))) + (add-before 'install 'patch-elisp-shell-shebangs + (lambda _ + (substitute* (find-files "." "\\.el") + (("/bin/sh") (which "sh"))))) + (add-after 'patch-elisp-shell-shebangs 'setenv-shell + (lambda _ + (setenv "SHELL" "sh"))) + (add-after 'setenv-shell 'build-emacsql-sqlite + (lambda _ + (invoke "make" "binary" (string-append "CC=" #$(cc-for-target))))) + (add-after 'build-emacsql-sqlite 'install-emacsql-sqlite + ;; This build phase installs emacs-emacsql binary. + (lambda _ + (install-file "sqlite/emacsql-sqlite" + (string-append #$output "/bin")))) + (add-after 'install-emacsql-sqlite 'patch-emacsql-sqlite.el + ;; This build phase removes interactive prompts + ;; and makes sure Emacs look for binaries in the right places. + (lambda _ + (emacs-substitute-variables "emacsql-sqlite.el" + ("emacsql-sqlite-executable" + (string-append #$output "/bin/emacsql-sqlite")) + ;; Make sure Emacs looks for ‘GCC’ binary in the right place. + ("emacsql-sqlite-c-compilers" + `(list ,(which "gcc"))))))))) + (inputs + (list emacs-minimal `(,mariadb "dev") `(,mariadb "lib") postgresql)) + (propagated-inputs + (list emacs-finalize emacs-pg emacs-sqlite3-api)) + (home-page "https://github.com/magit/emacsql") + (synopsis "Emacs high-level SQL database front-end") + (description "Any readable Lisp value can be stored as a value in EmacSQL, including numbers, strings, symbols, lists, vectors, and closures. EmacSQL has no concept of @code{TEXT} values; it's all just Lisp objects. The Lisp object @code{nil} corresponds 1:1 with @code{NULL} in the database.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-emacsql-sqlite3 (package @@ -20605,14 +20936,22 @@ timestamps by providing a @code{ts} struct.") (file-name (git-file-name name version)) (sha256 (base32 "1hydxhmcchaprfmp08xr6nlksz6y97jbf4mswj69bgdfjfbf22km")))) + (build-system emacs-build-system) (arguments (list #:tests? #t #:test-command #~(list "emacs" "--batch" "-l" "test.el" - "--eval" "(ert-run-tests-batch-and-exit test-order)"))) - (build-system emacs-build-system) + "--eval" "(ert-run-tests-batch-and-exit test-order)") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'skip-failing-test + ;; XXX: Skip known (to upstream) failing test. + (lambda _ + (substitute* "test.el" + (("\\(ert-deftest test-circadian-sunrise-sunset .*" all) + (string-append all " (skip-unless nil)")))))))) (native-inputs (list emacs-el-mock)) (home-page "https://github.com/guidoschmidt/circadian.el") @@ -20896,7 +21235,7 @@ with (La)TeX mode, Org mode and other Emacs editing modes.") (define-public emacs-biblio (package (name "emacs-biblio") - (version "0.2") + (version "0.3") (source (origin (method git-fetch) @@ -20905,10 +21244,10 @@ with (La)TeX mode, Org mode and other Emacs editing modes.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1gxjind6r235az59dr8liv03d8994mqb8a7m28j3c12q7p70aziz")))) + (base32 "0iya5ybc54kia5vnb3bfr8yilykhbn2xvp157vya06cw4af2cw65")))) (build-system emacs-build-system) (propagated-inputs - (list emacs-dash emacs-let-alist)) + (list emacs-dash emacs-let-alist emacs-seq)) (home-page "https://github.com/cpitclaudel/biblio.el") (synopsis "Browse and import bibliographic references") (description "This package provides an extensible Emacs package for @@ -20991,11 +21330,11 @@ Citar note support: (license license:gpl3))) (define-public emacs-helm-bibtex - (let ((commit "aa775340ba691d2322948bfdc6a88158568a1399") - (revision "3")) + (let ((commit "8ebf50d5bd368082d0b7ab79d26a52f372cdef98") + (revision "1")) (package (name "emacs-helm-bibtex") - (version (git-version "2.0.0" revision commit)) + (version (git-version "2.0.1" revision commit)) (source (origin (method git-fetch) @@ -21004,7 +21343,7 @@ Citar note support: (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1d3mc17ga09m41i06khghlvixr6gsiacifnhdbrfnp0w5592aprk")))) + (base32 "1x6nfkprj95cp4ldb485v13hrkd7rvzp750d9xz80vk76gpvaw3l")))) (build-system emacs-build-system) (propagated-inputs (list emacs-helm @@ -21281,37 +21620,35 @@ orient yourself in the code, and tell which statements are at a given level.") (license license:gpl3+))) (define-public emacs-pulseaudio-control - (let ((commit "a931533140547510decdc368f39b2d2b97ca725f") - (revision "4")) + (let ((commit "34a6114357dbbc6b6720aa013e0f8a48f3739403") + (revision "0")) (package (name "emacs-pulseaudio-control") - (version (git-version "0.0.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/flexibeast/pulseaudio-control") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1jvjn9jszjjapi167an49jxcvr88cvgjwykglhp4b8lwhbjfqw76")))) + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~flexibeast/pulseaudio-control") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wm312pqp0i5i6qh6g3nacnnvsrad58927cl2g42gxzrzlb3slv5")))) (build-system emacs-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-file-name - (lambda* (#:key inputs #:allow-other-keys) - (let ((pulseaudio (assoc-ref inputs "pulseaudio"))) - (chmod "pulseaudio-control.el" #o600) - (emacs-substitute-variables "pulseaudio-control.el" - ("pulseaudio-control-pactl-path" - (string-append pulseaudio "/bin/pactl"))) - #t)))))) + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-file-name + (lambda* (#:key inputs #:allow-other-keys) + (let ((pulseaudio (assoc-ref inputs "pulseaudio"))) + (emacs-substitute-variables "pulseaudio-control.el" + ("pulseaudio-control-pactl-path" + (string-append pulseaudio "/bin/pactl"))))))))) (inputs (list pulseaudio)) - (home-page "https://github.com/flexibeast/pulseaudio-control") - (synopsis "Control @code{pulseaudio} from Emacs") + (home-page "https://git.sr.ht/~flexibeast/pulseaudio-control") + (synopsis "Control Pulseaudio from Emacs") (description - "This package allows controlling @code{pulseaudio} from Emacs.") + "This package allows controlling Pulseaudio from Emacs.") (license license:gpl3+)))) (define-public emacs-pulsar @@ -22033,28 +22370,25 @@ within Emacs.") (license license:gpl3+)))) (define-public emacs-ibrowse - (let* ((commit "7e4a2987fc63861514b441f65db2008da5949ef2") - (revision "0")) - (package - (name "emacs-ibrowse") - (version (git-version "0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~ngraves/ibrowse.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "15661xgjxdxk1p0g87dsas9jd9v7g64y6n9irlbyzww09gjsjwwd")))) - (build-system emacs-build-system) - (inputs (list sqlite)) - (propagated-inputs (list emacs-embark emacs-marginalia)) - (home-page "https://git.sr.ht/~ngraves/ibrowse.el") - (synopsis "Interact with your browser from emacs") - (description "This package provides some commands to act on the browser + (package + (name "emacs-ibrowse") + (version "0.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~ngraves/ibrowse.el") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0q3imid9byaay0lqvv5n2klwk680w8x3qzdb279rdr08bb36w5ya")))) + (build-system emacs-build-system) + (inputs (list sqlite)) + (home-page "https://git.sr.ht/~ngraves/ibrowse.el") + (synopsis "Interact with your browser from emacs") + (description "This package provides some commands to act on the browser tabs, history, or bookmarks from Emacs.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-ibuffer-projectile (package @@ -22317,10 +22651,10 @@ notes.") (license license:gpl3+))) (define-public emacs-org-reveal - (let ((commit "fe9148b670d144124d9697fcf5d0528f19025104")) + (let ((commit "f55c851bf6aeb1bb2a7f6cf0f2b7bd0e79c4a5a0")) (package (name "emacs-org-reveal") - (version (git-version "20210902" "1" commit)) + (version (git-version "20222711" "1" commit)) (source (origin (method git-fetch) (uri (git-reference @@ -22329,7 +22663,7 @@ notes.") (file-name (git-file-name name version)) (sha256 (base32 - "034gkbc03z9jzj7ad34mmqgmvj4f14ap7iixh3zx4wp2ipw5xb7c")))) + "1ck8v9qwk434w4ib9bmlmpqmiv8k1is5bcr5h7pnswgmgma68dka")))) (build-system emacs-build-system) (home-page "https://github.com/yjwen/org-reveal") (synopsis "Org and Reveal.js powered HTML presentation tool") @@ -23454,14 +23788,14 @@ modes of SLIME.") (define-public emacs-sml-mode (package (name "emacs-sml-mode") - (version "6.10") + (version "6.11") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/sml-mode-" - version ".el")) + version ".tar")) (sha256 - (base32 "01yf0s474r9xhj6nbs14ljn9ccxb5yy758i17c8nmgmqvm8fx7sb")))) + (base32 "05vga709kphbx6jacqh57cq5gyicwrxxf81gask5lbq7vzfzlbfc")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/sml-mode.html") (synopsis "Major mode for editing (Standard) ML") @@ -24194,6 +24528,60 @@ the GIF result.") on-line service.") (license license:gpl3+))) +(define-public emacs-langtool + (package + (name "emacs-langtool") + (version "2.3.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mhayashi1120/Emacs-langtool") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vzs3hkhmvdrbii1hmg87brddpjfmqfqykf7a2hnwmdbkihiwwk9")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command #~(list "make" "test"))) + (propagated-inputs (list emacs-popup)) + (home-page "https://github.com/mhayashi1120/Emacs-langtool") + (synopsis "Emacs interface to LanguageTool") + (description + "Emacs Langtool offers a frontend to @url{https://languagetool.org, +LanguageTool} server.") + (license license:gpl3+))) + +(define-public emacs-lingva + (let ((commit "6c33594068fa33de622172503deeec6778d9c744") + (revision "1")) + (package + (name "emacs-lingva") + (version + (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://codeberg.org/martianh/lingva.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r2f4wrd2v67m7198z0194pg853hbq4vvpd3x96y5ikbypywf426")))) + (build-system emacs-build-system) + (home-page "https://codeberg.org/martianh/lingva.el") + (synopsis "Interact with the lingva.ml API from within Emacs") + (description "This is a basic interface to the lingva.ml API, which +allows you to obtain translations of texts from Google Translate without any +tracking.") + (license license:gpl3+)))) + (define-public emacs-helm-company (package (name "emacs-helm-company") @@ -24685,6 +25073,29 @@ later.") them in your web browser.") (license license:expat)))) +(define-public emacs-srv + (package + (name "emacs-srv") + (version "0.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/legoscia/srv.el") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1a8pqhdi7m3lis5ad2f74s1sy8zpxlwvfsvd80lw746235x2v06z")))) + (build-system emacs-build-system) + (home-page "https://github.com/legoscia/srv.el") + (synopsis "Emacs Lisp library to perform SRV DNS requests") + (description + "SRV implements RFC 2782 (SRV records). It is used to look up hostname +and port for a service at a specific domain. There might be multiple results, +and the caller is supposed to attempt to connect to each hostname+port in +turn.") + (license license:gpl2+))) + (define-public emacs-github-review (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232") (revision "2")) @@ -24897,6 +25308,42 @@ for C++ code that uses OpenVDB and needs to be build against multiple incompatible versions of it.") (license license:gpl3+))) +(define-public emacs-org-board + (let ((commit "1393bd46d11a81328ed4fb8471831415a3efe224") + (revision "1")) + (package + (name "emacs-org-board") + (version (git-version "1138" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/charlesroelli/org-board") + (commit commit))) + (sha256 + (base32 + "1kryrg988c3sbxyp1sdgc6xdv2iz6kiflpzn2rw4z3l4grzab53b")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-wget-location + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "org-board.el" + ("org-board-wget-program" + (search-input-file inputs "/bin/wget")))))))) + (inputs + (list wget)) + (propagated-inputs + (list emacs-org emacs-ztree)) + (home-page "https://github.com/charlesroelli/org-board") + (synopsis "Bookmarking and web archival system for Org mode") + (description + "Org Board is a bookmarking and web archival system for Emacs Org mode. +It archives your bookmarks so that you can access them even when you're not +online, or when the site hosting them goes down.") + (license license:gpl2+)))) + (define-public emacs-org-brain (package (name "emacs-org-brain") @@ -26646,7 +27093,7 @@ music.") (define-public emacs-mpdel (package (name "emacs-mpdel") - (version "2.0.0") + (version "2.1.0") (source (origin (method git-fetch) @@ -26656,7 +27103,7 @@ music.") (file-name (git-file-name name version)) (sha256 (base32 - "1wg48z0g6qqsd38r2ydba8dp7cq72cnkzshmhj6900xak6f5ywfd")))) + "00ajjb9iawva3g7i1y6bz4d4ny3cv5rby6vgkwiy2xkprzxi8900")))) (build-system emacs-build-system) (propagated-inputs (list emacs-libmpdel emacs-navigel)) @@ -26668,6 +27115,32 @@ next, volume) and display and control the current playlist as well as your stored playlists.") (license license:gpl3+))) + +(define-public emacs-kodi-remote + (let ((commit "f5e932036c16e2b61a63020e006fc601e38d181e") + (revision "0")) + (package + (name "emacs-kodi-remote") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/spiderbit/kodi-remote.el") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gck7lvqxcr9ikrzlpvcf4408cq6i4s8ijgb0kdsbkfzv0w86934")))) + (build-system emacs-build-system) + (propagated-inputs + (list emacs-f emacs-json-mode emacs-let-alist emacs-request)) + (home-page "https://github.com/spiderbit/kodi-remote.el") + (synopsis "Remote control for Kodi") + (description + "This package provides a major mode to control Kodi +instances (play/pause, volume control, media selection, etc.) remotely.") + (license license:gpl3+)))) + (define-public emacs-navigel (package (name "emacs-navigel") @@ -27344,19 +27817,77 @@ optional integration with other popular Emacs packages like Company, Flycheck, and Projectile.") (license license:gpl3+)))) +(define* (%emacs-lsp-treemacs-upstream-source #:key commit version hash) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-lsp/lsp-treemacs") + (commit commit))) + (file-name (git-file-name "emacs-lsp-treemacs" version)) + (hash hash))) + (define-public emacs-lsp-treemacs (package (name "emacs-lsp-treemacs") (version "0.4") (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 "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0")))) + (method (@@ (guix packages) computed-origin-method)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build emacs-utils) + (guix build utils)) + #~(begin + (use-modules (guix build utils) + (guix build emacs-utils)) + (let* ((dir (string-append "emacs-lsp-treemacs-" #$version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+emacs-minimal + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package gzip) + #+(canonical-package tar))) + + ;; Copy the upstream source + (copy-recursively + #+(%emacs-lsp-treemacs-upstream-source + #:commit version #:version version + #:hash + (content-hash + "05ivqa5900139jzjhwc3nggwznhm8564dz4ydcxym2ddd63571k0")) + dir) + + (with-directory-excursion dir + ;; The icons are unclearly licensed and possibly non-free, + ;; see <https://github.com/emacs-lsp/lsp-treemacs/issues/123> + (with-directory-excursion "icons" + (for-each delete-file-recursively + '("eclipse" "idea" "netbeans"))) + + ;; Also remove any mentions in the source code. + (make-file-writable "lsp-treemacs-themes.el") + (emacs-batch-edit-file "lsp-treemacs-themes.el" + '(progn + (while (search-forward-regexp + "(treemacs-create-theme \"\\([^\"]*\\)\"" + nil t) + (pcase (match-string 1) + ("Iconless" nil) + (_ (beginning-of-line) + (kill-sexp))) + (basic-save-buffer))))) + + (invoke "tar" "cvfa" #$output + "--mtime=@0" + "--owner=root:0" + "--group=root:0" + "--sort=name" + "--hard-dereference" + dir)))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-lsp-mode emacs-treemacs)) @@ -28545,7 +29076,8 @@ support JSX syntax.") (define-public emacs-origami-el (let ((commit "1f38085c8f9af7842765ed63f7d6dfe4dab59366") (version "1.0") - (revision "1")) + (revision "1") + (patch "1d9c4f120c027a5009b0424270e3aae59f1cb128")) (package (name "emacs-origami-el") (version (git-version version revision commit)) @@ -28558,7 +29090,17 @@ support JSX syntax.") (file-name (git-file-name name version)) (sha256 (base32 - "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")))) + "0ha1qsz2p36pqa0sa2sp83lspbgx5lr7930qxnwd585liajzdd9x")) + (patches + (list + (origin + (method url-fetch) + (uri (string-append + "https://github.com/gregsexton/origami.el" + "/commit/" patch ".patch")) + (sha256 + (base32 + "0yia4dhqjzdidxd77s2ggg6mmj05jbsnwc35myzzhzh1zbq8mrfy"))))))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-s)) @@ -29137,14 +29679,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.6.0") + (version "2.6.0.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "1y58k0qdc9i3av61p9ks7hg5vynsi2zslv5mswcbd1wf23iggr7c")))) + (base32 "1mxkl8v40wdcyvsyjayw9yj7ghn5zrnzgaapwh1prxs42scw85x8")))) (build-system emacs-build-system) (arguments (list @@ -29469,14 +30011,14 @@ implementation of Windows NT and LanManager compatible password encryption.") (define-public emacs-nadvice (package (name "emacs-nadvice") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" - "nadvice-" version ".el")) + "nadvice-" version ".tar")) (sha256 - (base32 "0gi3csnxbs8h7iy0scsl35sic3gv90swa89hhdjwb7qvpirfdcgw")))) + (base32 "0ac7zxi04gzcd5hz81lib1db3c6a7xmwkb381ljxvaha1mlzp1k0")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/nadvice.html") (synopsis "Forward compatibility for Emacs-24.4's nadvice") @@ -29516,7 +30058,7 @@ advice system without dropping support for Emacs<24.4.") (sha256 (base32 "0ajv6l1p8dinnlybwzvv4c2i6291is6isjxb2h4apg27g66qbcki")))) (build-system emacs-build-system) - (home-page "httpa://elpa.gnu.org/packages/soap-client.html") + (home-page "https://elpa.gnu.org/packages/soap-client.html") (synopsis "Access SOAP web services") (description "This package provides a SOAP client to access web services.") @@ -30113,14 +30655,14 @@ federated microblogging social network.") (define-public emacs-ebdb (package (name "emacs-ebdb") - (version "0.8.16") + (version "0.8.17") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "ebdb-" version ".tar")) (sha256 - (base32 "0qldw0a346xbkq289mynvfz38n4yh2rfbvgs5f7ixfc014y3j3gw")))) + (base32 "0d2csc7b4mhaqcj8g3v46j11f5xcvbvgx06wxxfq2w0p2nzz1sik")))) (build-system emacs-build-system) (home-page "https://github.com/girzel/ebdb") (synopsis "EIEIO port of BBDB, Emacs's contact-management package") @@ -30310,6 +30852,7 @@ even train opponent slimes.") (uri (git-reference (url "https://github.com/vapniks/syslog-mode.git") (commit "072664784dae41a573a9de8d178bf577b7526b82"))) + (file-name (git-file-name name version)) (sha256 (base32 "04ddpn6il6mh1f992x3fxl6yljryghi51q4845lx08cbc74wnfz0")))) @@ -30543,7 +31086,7 @@ Emacs that integrate with major modes like Org-mode.") (define-public emacs-modus-themes (package (name "emacs-modus-themes") - (version "4.0.1") + (version "4.0.2") (source (origin (method git-fetch) @@ -30552,7 +31095,7 @@ Emacs that integrate with major modes like Org-mode.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "16m8y56jyf44rj541fqb243pmbz9bk5py5zl1xhzal4fsk5bsfrg")))) + (base32 "05wl0310va5irc2f72d2mxq19xafxswmgc0a048mah0aam8lsv2f")))) (native-inputs (list texinfo)) (build-system emacs-build-system) (arguments @@ -30910,6 +31453,31 @@ language they are written in.") fish-completion. It can be used in both Eshell and M-x shell.") (license license:gpl3+))) +(define-public emacs-helm-themes + (let ((version "0.05") + (commit "92ee3ad4edf1d068feb0822a05638db99b50a7c0") + (revision "1")) + (package + (name "emacs-helm-themes") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsorphanage/helm-themes") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1p62gg8nnb6kmb9mk66230p0ap0zwwzhzdxr3j34z5ls574vr6s7")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-helm)) + (home-page "https://github.com/emacsorphanage/helm-themes") + (synopsis "Emacs theme selection with Helm interface") + (description + "Helm Themes provide an Emacs theme selection with Helm interface.") + (license license:gpl3+)))) + (define-public emacs-helm-switch-to-repl (package (name "emacs-helm-switch-to-repl") @@ -30935,52 +31503,54 @@ other @code{helm-type-file} sources such as @code{helm-locate}.") (license license:gpl3+))) (define-public emacs-telega-server - (package - (name "emacs-telega-server") - (version "0.8.03") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/zevlg/telega.el") - (commit (string-append "v" version)))) - (sha256 - (base32 "1ffy17i5fi1bw5r5m6x372c52hc1k83wxdxvi4z0hixyklj48nsv")) - (file-name (git-file-name "emacs-telega" version)) - (patches - (search-patches "emacs-telega-path-placeholder.patch" - "emacs-telega-test-env.patch")))) - (build-system gnu-build-system) - (arguments - (list - #:make-flags - #~(list (string-append "CC=" #$(cc-for-target)) - (string-append "INSTALL_PREFIX=" #$output "/bin")) - #:phases - #~(modify-phases %standard-phases - (add-before 'configure 'enter-subdirectory - (lambda _ (chdir "server"))) - (replace 'configure - (lambda _ - (substitute* "run_tests.py" - (("^(TELEGA_SERVER = ).*$" _all prefix) - (string-append prefix - "\"" #$output "/bin/telega-server\"\n"))))) - (delete 'check) - (add-after 'install 'check - (assoc-ref %standard-phases 'check)) - (add-before 'install-license-files 'leave-subdirectory - (lambda _ (chdir "..")))) - #:test-target "test")) - (inputs - (list tdlib-1.8.0 libappindicator)) - (native-inputs - (list python pkg-config)) - (home-page "https://zevlg.github.io/telega.el/") - (synopsis "Server process of Telega") - (description "Telega-server is helper program to interact with Telegram + (let ((commit "01e8f9e397bb18522b76d3bcdb74f5798e7c4999") + (revision "0")) + (package + (name "emacs-telega-server") + (version (git-version "0.8.03" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zevlg/telega.el") + (commit commit))) + (sha256 + (base32 "0fv0czx61rsvgf9jnn8nvng7flnihnjhym73hli5fzfgdx15lam7")) + (file-name (git-file-name "emacs-telega" version)) + (patches + (search-patches "emacs-telega-path-placeholder.patch" + "emacs-telega-test-env.patch")))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "INSTALL_PREFIX=" #$output "/bin")) + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'enter-subdirectory + (lambda _ (chdir "server"))) + (replace 'configure + (lambda _ + (substitute* "run_tests.py" + (("^(TELEGA_SERVER = ).*$" _all prefix) + (string-append prefix + "\"" #$output "/bin/telega-server\"\n"))))) + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-before 'install-license-files 'leave-subdirectory + (lambda _ (chdir "..")))) + #:test-target "test")) + (inputs + (list tdlib libappindicator)) + (native-inputs + (list python pkg-config)) + (home-page "https://zevlg.github.io/telega.el/") + (synopsis "Server process of Telega") + (description "Telega-server is helper program to interact with Telegram service, and connect it with Emacs via inter-process communication.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-telega (package @@ -31018,7 +31588,7 @@ service, and connect it with Emacs via inter-process communication.") (substitute* "telega-customize.el" (("@TELEGA_SERVER_BIN@") (search-input-file inputs "/bin/telega-server"))) - (substitute* "telega-util.el" + (substitute* "telega-core.el" (("@TELEGA_SHARE@") (string-append (elpa-directory (assoc-ref outputs "out")) "/etc")))))))) @@ -31082,7 +31652,7 @@ icon support, git integration, and several other utilities.") (define-public emacs-mood-line (package (name "emacs-mood-line") - (version "2.1.0") + (version "2.2.0") (source (origin (method git-fetch) @@ -31091,7 +31661,7 @@ icon support, git integration, and several other utilities.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1j2fjsqbv2f7m1hrrb18gl4cj4kn749xkvpm2p82d7rh4a37q2pr")))) + (base32 "1z50vr3ymn466z26qh0ybbm8aaizl5ghi471a47cp8bnnn9y9dqg")))) (build-system emacs-build-system) (home-page "https://gitlab.com/jessieh/mood-line") (synopsis "Minimal mode-line for Emacs") @@ -31192,10 +31762,11 @@ Fish-style truncated directories in eshell and various modelines.") (license license:gpl3+))) (define-public emacs-org-present - (let ((commit "d13acd70eff6a1608bc991920232146a0de76b21")) + (let ((commit "4ec04e1b77dea76d7c30066ccf3200d2e0b7bee9") + (revision "1")) (package (name "emacs-org-present") - (version "0.0.1") + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -31205,15 +31776,16 @@ Fish-style truncated directories in eshell and various modelines.") (file-name (git-file-name name version)) (sha256 (base32 - "0jz8xiny3rv9ql0p623byz32pip1b82j2c2nyfz2wd114kiabb6q")))) + "0bcrgwc80968zx52lwg71cs7v2yrygynzbnrakxdja1l5a6h3xy6")))) (build-system emacs-build-system) - (synopsis "Ultra-minimalist presentation minor-mode for Emacs org-mode") - (description "Org-present is an extremely minimalist presentation tool -for Emacs org-mode. Simply layout your presentation with each slide under a -top-level header, start the minor mode with @code{org-present}, and page through -each slide with left/right keys.") + (propagated-inputs (list emacs-org)) + (synopsis "Minimalist presentation minor-mode for Emacs Org mode") + (description "Org Present is a minimalist presentation tool for Emacs +Org mode. Simply layout your presentation with each slide under a top-level +header, start the minor mode, and page through each slide with Left and Right +keys.") (home-page "https://github.com/rlister/org-present") - (license license:gpl2)))) + (license license:gpl3+)))) (define-public emacs-fullframe (package @@ -31322,6 +31894,46 @@ REPL appropriate to the current major mode.") "Rime is an Emacs input method built upon Rime input method engine.") (license license:gpl3+))) +(define-public emacs-liberime + (let ((commit "cc9eb9812fd6f68e78ed6a0c0a85da7a18765753") + (revision "0")) + (package + (name "emacs-liberime") + (version (git-version "0.0.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/merrickluo/liberime") + (commit commit))) + (sha256 + (base32 + "11c2wj00wwbdxqkzl60sd77cp43rja5v8hrvhrvhg75v62kawva2")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (arguments + (list + #:include #~(cons "^src/liberime-core.so$" %default-include) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'delete-files-and-patch-paths + (lambda* (#:key inputs #:allow-other-keys) + (delete-file-recursively "emacs-module") + (emacs-substitute-variables "liberime.el" + ("liberime-module-file" + (string-append #$output "/src/liberime-core.so")) + ("liberime-shared-data-dir" + (search-input-directory inputs "share/rime-data"))))) + (add-before 'install 'build-emacs-module + (lambda _ + (invoke "make")))))) + (inputs (list librime rime-data)) + (home-page "https://github.com/merrickluo/liberime") + (synopsis "Librime Emacs Lisp binding") + (description + "Liberime is an Emacs dynamic module provide librime bindings.") + (license license:gpl3+)))) + (define-public emacs-bison-mode (package (name "emacs-bison-mode") @@ -32652,66 +33264,68 @@ go directly to where they belong.") (license license:gpl3+)))) (define-public emacs-org-roam - (package - (name "emacs-org-roam") - (version "2.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 "09wcqdqy2gcsyd1mbcm90b70y3qj921m4ky8l3avhzpdwgyw8wy5")))) - (build-system emacs-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - ;; Move the extensions source files to the top level, which - ;; is included in the EMACSLOADPATH. - (add-after 'unpack 'move-source-files - (lambda _ - (let ((el-files (find-files "./extensions" ".*\\.el$"))) - (for-each (lambda (f) - (rename-file f (basename f))) - el-files)))) - (add-after 'move-source-files 'patch-exec-paths - (lambda* (#:key inputs #:allow-other-keys) - (make-file-writable "org-roam-graph.el") - (emacs-substitute-variables "org-roam-graph.el" - ("org-roam-graph-executable" - (search-input-file inputs "/bin/dot"))))) - (add-after 'install 'install-image - (lambda* (#:key outputs #:allow-other-keys) - (install-file "doc/images/org-ref-citelink.png" - (string-append #$output "/share/info/images")))) - (add-after 'install-image 'make-info - (lambda* (#:key outputs #:allow-other-keys) - (with-directory-excursion "doc" - (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi") - (install-file "org-roam.info" - (string-append #$output "/share/info")))))))) - (inputs - (list graphviz)) - (native-inputs - (list texinfo)) - (propagated-inputs - (list emacs-dash - emacs-emacsql-sqlite3 - emacs-f - emacs-magit - emacs-org - 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 "74422df546a515bc984c2f3d3a681c09d6f43916") + (revision "0")) + (package + (name "emacs-org-roam") + (version (git-version "2.2.2" 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 "0vhl69y6yk2zzfixjdwr8vxl2k921h0syshk5123r1nm9jp3i1s9")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; Move the extensions source files to the top level, which + ;; is included in the EMACSLOADPATH. + (add-after 'unpack 'move-source-files + (lambda _ + (let ((el-files (find-files "./extensions" ".*\\.el$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + el-files)))) + (add-after 'move-source-files 'patch-exec-paths + (lambda* (#:key inputs #:allow-other-keys) + (make-file-writable "org-roam-graph.el") + (emacs-substitute-variables "org-roam-graph.el" + ("org-roam-graph-executable" + (search-input-file inputs "/bin/dot"))))) + (add-after 'install 'install-image + (lambda* (#:key outputs #:allow-other-keys) + (install-file "doc/images/org-ref-citelink.png" + (string-append #$output "/share/info/images")))) + (add-after 'install-image 'make-info + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "doc" + (invoke "makeinfo" "-o" "org-roam.info" "org-roam.texi") + (install-file "org-roam.info" + (string-append #$output "/share/info")))))))) + (inputs + (list graphviz)) + (native-inputs + (list texinfo)) + (propagated-inputs + (list emacs-dash + emacs-emacsql-sqlite3 + emacs-f + emacs-magit + emacs-org + 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 @@ -33403,35 +34017,35 @@ provides an easy way to bind keys under a configurable prefix key.") (license license:gpl3+)))) (define-public emacs-promise - (package - (name "emacs-promise") - (version "1.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/chuntaro/emacs-promise") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1xb34zdbwjvahfhycjphdkm925kgd22dr298c57hwxza4ljc2hxj")))) - (build-system emacs-build-system) - (home-page "https://github.com/chuntaro/emacs-promise") - (synopsis "Promises/A+ for Emacs") - (description "This is a simple implementation of Promises/A+. + ;; XXX: Last stable release fails to build with "(wrong-number-of-arguments + ;; (3 . 4) 2)" error. + (let ((commit "cec51feb5f957e8febe6325335cf57dc2db6be30") + (revision "1")) + (package + (name "emacs-promise") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chuntaro/emacs-promise") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kxsdgg5byw9zddf8jkc3h87mb4k5pnjdpskaagkahc0xg3w18d7")))) + (build-system emacs-build-system) + (home-page "https://github.com/chuntaro/emacs-promise") + (synopsis "Promises/A+ for Emacs") + (description "This is a simple implementation of Promises/A+. -This implementation ports the following Promises/A+ features -faithfully. See @url{https://github.com/then/promise}. +This implementation ports the following Promises/A+ features faithfully. See +@url{https://github.com/then/promise}. -@itemize -@item The same API as the JavaScript version of Promise can be used. -@item It has all the @code{then}, @code{catch}, @code{resolve}, @code{reject}, -@code{all}, @code{race}, etc. -@item It supports \"thenable\". -@item It supports \"Inheritance of Promise\". -@item It supports \"rejection-tracking\". -@end itemize\n") - (license license:gpl3+))) +The same API as the JavaScript version of Promise can be used. It has all the +@code{then}, @code{catch}, @code{resolve}, @code{reject}, @code{all}, +@code{race}, etc. It also supports @code{thenable}, inheritance of promise +and rejection tracking.") + (license license:gpl3+)))) (define-public emacs-async-await (package @@ -33598,14 +34212,14 @@ work on alists, hash-table and arrays. All functions are prefixed with (define-public emacs-xref (package (name "emacs-xref") - (version "1.6.0") + (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xref-" version ".tar")) (sha256 - (base32 "0vqs2l4gypdx475yi0yic0mnsg1f9nm698gi90kh7xfcpmkfcgb4")))) + (base32 "0z9kpbnrdh9y9qlj2fa64v660biakvw6x3z9klqa47qcx8gbyqp6")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/xref.html") (synopsis "Cross-referencing commands") @@ -33985,6 +34599,60 @@ notebooks") execute code split into cells according to certain magic comments.") (license license:gpl3+)))) +(define-public emacs-ein + ;; XXX: Upstream doesn't make any release, and didn't set any version. + (let ((commit "b2410dc96f61aa806a7934099d8f1e40c8f6ca18")) + (package + (name "emacs-ein") + (version "20220911") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/millejoh/emacs-ipython-notebook") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02392bxl0msda58cls0i79mzqjs73x39czx0mlb0sg2vxp84gy15")))) + (build-system emacs-build-system) + (arguments + (list + #:tests? #true + #:test-command + #~(list "emacs" "-Q" "--batch" + "-L" "test" + "--load" "test/testein-loader.el") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'move-source-files + (lambda _ + (let ((el-files (find-files "./lisp" ".*\\.el$"))) + (for-each (lambda (f) + (rename-file f (basename f))) + el-files))))))) + (native-inputs + (list emacs-f emacs-mocker)) + (propagated-inputs + (list emacs-anaphora + emacs-dash + emacs-deferred + emacs-polymode + emacs-request + emacs-websocket + emacs-with-editor)) + (home-page "https://github.com/millejoh/emacs-ipython-notebook") + (synopsis "Jupyter client for all languages") + (description + "The Emacs IPython Notebook (EIN) package provides a Jupyter Notebook +client and integrated REPL (like SLIME) in Emacs. EIN improves notebook +editing by allowing you to use Emacs. It also expose IPython features such as +code evaluation, object inspection and code completion. These features can be +accessed anywhere in Emacs and improve Python code editing and reading in +general in Emacs.") + (license license:gpl3+)))) + (define-public emacs-kibit-helper (package (name "emacs-kibit-helper") @@ -34732,7 +35400,14 @@ the buffer you want to undo. An undo tree buffer should pop up.") (substitute* "org-cliplink-transport.el" (("\\(executable-find \"curl\"\\)") (let ((curl (search-input-file inputs "/bin/curl"))) - (string-append "\"" curl "\""))))))))) + (string-append "\"" curl "\"")))))) + (add-before 'check 'fix-failing-test + ;; XXX: Fix randomly (!) failing test, which doesn't account for + ;; the fact that (random) may return a negative number. + (lambda _ + (substitute* "test/org-cliplink-transport-test.el" + (("curl-rexim.me-\\[a-z0-9\\]\\+") + "curl-rexim.me--?[a-z0-9]+"))))))) (native-inputs (list emacs-el-mock emacs-ert-runner emacs-undercover)) (inputs @@ -34832,8 +35507,8 @@ latest Emacs.") (define-public emacs-flim-lb ;; No release since Nov 28, 2007. (let ((version "1.14.9") - (revision "133") - (commit "57c6b868aa314717f40a520daed7249665e8d992")) + (revision "134") + (commit "3a931b566494e7dc210a5109b60c8cbd5b655108")) (package (name "emacs-flim-lb") (version (git-version version revision commit)) @@ -34845,7 +35520,7 @@ latest Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1mf8r5mf3bd0719fnhifb6lfvl7n4m552crcdhkbkkif8srrl6df")))) + "0hva2nm0k37ssx42s0h9d9y6nawmp1g4qz1s8bvmp3s1897pvssz")))) (build-system emacs-build-system) (propagated-inputs (list emacs-apel-lb emacs-oauth2)) (home-page "https://www.emacswiki.org/emacs/WanderLust") @@ -34860,8 +35535,8 @@ Emacs.") (define-public emacs-semi-epg ;; No release since Dec 24, 2003. (let ((version "1.14.6") - (revision "241") - (commit "ac3e726ca94ed245c25881ec8d7177d0d834ea6a")) + (revision "242") + (commit "7d8df0ef2f483e2dc063a72099295f467e6bc2c8")) (package (name "emacs-semi-epg") (version (git-version version revision commit)) @@ -34873,7 +35548,7 @@ Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1bg07y6svvg1mmlr455x3j1anjp3wbv27s6b2inp294rbwprm41n")))) + "01dn91xjcl7p5rnbgyh5l4kdlqx31s0gw5vh7hhcapbiq8rihmjd")))) (build-system emacs-build-system) (propagated-inputs (list emacs-bbdb-vcard emacs-flim-lb)) (home-page "https://www.emacswiki.org/emacs/WanderLust") |