diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/build/file-systems.scm | 1 | ||||
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/admin.scm | 6 | ||||
-rw-r--r-- | gnu/packages/books.scm | 5 | ||||
-rw-r--r-- | gnu/packages/check.scm | 8 | ||||
-rw-r--r-- | gnu/packages/chicken.scm | 4 | ||||
-rw-r--r-- | gnu/packages/ci.scm | 6 | ||||
-rw-r--r-- | gnu/packages/containers.scm | 12 | ||||
-rw-r--r-- | gnu/packages/debug.scm | 5 | ||||
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 526 | ||||
-rw-r--r-- | gnu/packages/emacs.scm | 21 | ||||
-rw-r--r-- | gnu/packages/finance.scm | 13 | ||||
-rw-r--r-- | gnu/packages/golang-build.scm | 6 | ||||
-rw-r--r-- | gnu/packages/gps.scm | 52 | ||||
-rw-r--r-- | gnu/packages/ipfs.scm | 107 | ||||
-rw-r--r-- | gnu/packages/machine-learning.scm | 2 | ||||
-rw-r--r-- | gnu/packages/maths.scm | 6 | ||||
-rw-r--r-- | gnu/packages/networking.scm | 4 | ||||
-rw-r--r-- | gnu/packages/tree-sitter.scm | 8 | ||||
-rw-r--r-- | gnu/packages/virtualization.scm | 4 | ||||
-rw-r--r-- | gnu/packages/xml.scm | 40 | ||||
-rw-r--r-- | gnu/tests/emacs.scm | 101 |
22 files changed, 683 insertions, 255 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index ae29b36c4e..2076994e73 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -1083,6 +1083,7 @@ an exception in such cases but perform the nearest sane action." ((string-prefix? "f2fs" type) check-f2fs-file-system) ((string-prefix? "ntfs" type) check-ntfs-file-system) ((string-prefix? "nfs" type) (const 'pass)) + ((string-prefix? "cifs" type) (const 'pass)) ((string-prefix? "xfs" type) check-xfs-file-system) (else #f))) diff --git a/gnu/local.mk b/gnu/local.mk index 761295e6ce..16a31c4686 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -814,6 +814,7 @@ GNU_SYSTEM_MODULES = \ %D%/tests/desktop.scm \ %D%/tests/dict.scm \ %D%/tests/docker.scm \ + %D%/tests/emacs.scm \ %D%/tests/file-sharing.scm \ %D%/tests/ganeti.scm \ %D%/tests/gdm.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index f4d1797d5b..113b8e2481 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -385,11 +385,9 @@ interface and is based on GNU Guile.") "/lib/guile/3.0/site-ccache")))))) #~%standard-phases))) - ;; Note: Use 'guile-3.0-latest' to address the continuation-related memory - ;; leak reported at <https://issues.guix.gnu.org/58631>. - (native-inputs (list pkg-config guile-3.0-latest + (native-inputs (list pkg-config guile-3.0 guile-fibers-1.1)) ;for cross-compilation - (inputs (list guile-3.0-latest guile-fibers-1.1)))) + (inputs (list guile-3.0 guile-fibers-1.1)))) (define-public shepherd-0.10 (package diff --git a/gnu/packages/books.scm b/gnu/packages/books.scm index 8255d403b2..5a6157d557 100644 --- a/gnu/packages/books.scm +++ b/gnu/packages/books.scm @@ -42,7 +42,7 @@ (define-public book-sparc (package (name "book-sparc") - (version "2.0.0") + (version "2.1.0") (source (origin (method git-fetch) (uri (git-reference @@ -50,7 +50,7 @@ (commit (string-append "v" version)))) (sha256 (base32 - "0bn3a3m0kcjybyaz1a7pj8n48jh1cg4szwi9px3zjhhm5818wi7z")) + "1ns2vs5yb9z1hj9gq5y55qz7c9azzhr866b665s8fq50q5m4yhbc")) (file-name (git-file-name name version)) (modules '((guix build utils))) (snippet @@ -78,6 +78,7 @@ (list font-liberation texlive-acronym texlive-adjustbox + texlive-biblatex texlive-bibtex texlive-bibtexperllibs texlive-bigfoot diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 3bfcf5a37e..412b94569c 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -3500,7 +3500,13 @@ provides a simple way to achieve this.") (display "find_package(Boost GLOBAL)\n" out))) (substitute* "extras/boost/test/CMakeLists.txt" (("^([ ]*)boost" all spaces) - (string-append spaces "Boost::boost"))))))) + (string-append spaces "Boost::boost"))) + ;; Disable tests failing on Apple M1 and Hetzner CAX41 (aarch64). + ;; Upstream issue: https://github.com/emil-e/rapidcheck/issues/328 + (substitute* "test/gen/NumericTests.cpp" + (("forEachType<SignedProperties.*") "")) + (substitute* "test/shrink/ShrinkTests.cpp" + (("forEachType<SignedIntegralProperties.*") "")))))) (arguments (list #:configure-flags #~(list "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm index 8f5e8ce98d..d48a0c89c0 100644 --- a/gnu/packages/chicken.scm +++ b/gnu/packages/chicken.scm @@ -33,14 +33,14 @@ (define-public chicken (package (name "chicken") - (version "5.3.0") + (version "5.4.0") (source (origin (method url-fetch) (uri (string-append "https://code.call-cc.org/releases/" version "/chicken-" version ".tar.gz")) (sha256 (base32 - "0xhdvcdwlv9vbhxh7k0fzd32ybhc7fn83y9fj48dhzp1z7c9kbf3")))) + "0pzcrnzkjw2sa44vy59wbygvlc3nva8zisprkdnvyrqi3jk4lp9w")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index ccb4a153ad..25b9853439 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -60,8 +60,8 @@ #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR))) (define-public cuirass - (let ((commit "0eaf7b69bed87ac8f5ff10ad904a83a025192577") - (revision "6")) + (let ((commit "ab5c751737b694b4d1e5fbbd7bc1ec559e94a7ce") + (revision "7")) (package (name "cuirass") (version (git-version "1.2.0" revision commit)) @@ -74,7 +74,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0kc7jgxsjk0bnd02c09rsbqs82rkwyxjsyzy33cb1c8hblf3fbkg")))) + "1cakc6q7gvd1qnfq47j6swqjrkgikwaq3ziwdrdvb0d23l2xzz29")))) (build-system gnu-build-system) (arguments (list #:modules `((guix build utils) diff --git a/gnu/packages/containers.scm b/gnu/packages/containers.scm index 0361470483..a80596aa53 100644 --- a/gnu/packages/containers.scm +++ b/gnu/packages/containers.scm @@ -160,7 +160,7 @@ runtime (like runc or crun) for a single container.") (define-public distrobox (package (name "distrobox") - (version "1.7.0") + (version "1.7.2.1") (source (origin (method git-fetch) @@ -168,12 +168,20 @@ runtime (like runc or crun) for a single container.") (url "https://github.com/89luca89/distrobox") (commit version))) (sha256 - (base32 "1g14q1sm3026h9n85v1gc3m2v9sgrac2mr9yrkh98qg5yahzmpc3")) + (base32 "0q0m3x1984kc5g7pihlwmnmrnnxnx6c0givx7wf91q91rlmdws0z")) (file-name (git-file-name name version)))) (build-system copy-build-system) (arguments (list #:phases #~(modify-phases %standard-phases + ;; This script creates desktop files but when the store path for + ;; distrobox changes it leaves the stale path on the desktop + ;; file, so remove the path to use the profile's current + ;; distrobox. + (add-after 'unpack 'patch-distrobox-generate-entry + (lambda _ + (substitute* "distrobox-generate-entry" + (("\\$\\{distrobox_path\\}/distrobox") "distrobox")))) ;; Use WRAP-SCRIPT to wrap all of the scripts of distrobox, ;; excluding the host side ones. (add-after 'install 'wrap-scripts diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 612533b03d..d34b4fdf28 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2022 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2023 Andy Tai <atai@atai.org> ;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2024 Raven Hallsby <karl@hallsby.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -733,7 +734,7 @@ error reporting, better tracing, profiling, and a debugger.") (define-public rr (package (name "rr") - (version "5.7.0") + (version "5.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -741,7 +742,7 @@ error reporting, better tracing, profiling, and a debugger.") (commit version))) (sha256 (base32 - "0y50gynh3bb28vsxspn0g71b0m1mmqdgs63pbq08sv7vps35nllz")) + "16w6vvvgww4i2f0jk5zlrr6606fj8kps21fnw0pshyw88l141rqn")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 75be8999ae..3f987f8ae6 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -290,9 +290,30 @@ #:use-module (srfi srfi-1) #:use-module (ice-9 match)) -;;; -;;; Emacs hacking. -;;; +(define-public emacs-0x0 + (let ((commit "04f95142b25d8bb701f239539176df6617dcd982") + (revision "0")) + (package + (name "emacs-0x0") + (version (git-version "1.0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~willvaughn/emacs-0x0") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0vj9vrfkgm7plp5mvq22fm9sln11j9763g3wd2w6c82rlsk6dhva")))) + (build-system emacs-build-system) + (home-page "https://git.sr.ht/~willvaughn/emacs-0x0") + (synopsis + "Integration with @url{https://0x0.st, 0x0.st} and self-hosted services +from Emacs") + (description + "Emacs 0x0 is a pastebin integration tool. It can upload the current +buffer, a file on your disk, or a string from the kill ring.") + (license license:gpl3+)))) (define-public emacs-ac-ispell (let ((commit "22bace7387e9012002a6a444922f75f9913077b0") @@ -1636,7 +1657,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (define-public emacs-llm (package (name "emacs-llm") - (version "0.16.1") + (version "0.17.0") (source (origin (method git-fetch) (uri (git-reference @@ -1644,11 +1665,11 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0gxxs7ddkka836m3cq03s5qcay3sdsrfhanmgxybbc4byh6n0zh2")))) + "1sds3gb5accmpkajc60cbly2imkvvb7a3afi8qdb67p5vkk5xvc2")))) (build-system emacs-build-system) (propagated-inputs (list emacs-plz)) (home-page "https://github.com/ahyatt/llm") - (synopsis "Emacs library abstracting Large Language Model capabilities.") + (synopsis "Emacs library abstracting Large Language Model capabilities") (description "This package provides interfaces to abstract various @acronym{LLM, large language model}s out in the world. To respect user freedom, it will warn you @@ -1656,10 +1677,8 @@ before interacting with non-free LLMs.") (license license:gpl3+))) (define-public emacs-magit - ;; Use this unreleased commit to benefit from a recent improvements with - ;; regard to adding git trailers such as "Reviewed-by". - (let ((commit "dda332b2a41569f5fd8c0c2c3c2dab902d48ceb4") - (revision "7")) + (let ((commit "538cb2f90b5fdd04fcaacd537834f4f3c8c0720f") + (revision "8")) (package (name "emacs-magit") (version (git-version "3.3.0" revision commit)) @@ -1671,7 +1690,7 @@ before interacting with non-free LLMs.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "14vqfykfzddpfka7s3pmlh3yvbfd1rpjhab4g9dinz9hn48dwb06")))) + (base32 "1vzqy82ai8w0k283bij45k49pq4v3xy4yyy5gd24ba713y03327f")))) (build-system emacs-build-system) (arguments (list @@ -1963,6 +1982,28 @@ purpose finder.") files left by ArchLinux's pacman.") (license license:expat))) +(define-public emacs-palimpsest + (package + (name "emacs-palimpsest") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/danielsz/Palimpsest") + (commit "f474b3ad706373d9953abdc401d683a2a023d28e"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wzxl1zcbm3svspjpjzvx92is1k9sz7g0a99r8q066j2364la0zh")))) + (build-system emacs-build-system) + (home-page "https://github.com/danielsz/Palimpsest") + (synopsis "Remove text without permanently deleting it") + (description + "This minor mode for Emacs provides several strategies to remove text +without permanently deleting it. Namely, it can send selected test to the +bottom, or top, of the buffer, or to a trash file.") + (license license:gpl3+))) + (define-public emacs-minions (package (name "emacs-minions") @@ -2773,6 +2814,29 @@ different tools. It highlights errors and warnings inline in the buffer, and provides an optional IDE-like error list.") (license license:gpl3+))) ;+GFDLv1.3+ for the manual +(define-public emacs-flycheck-clj-kondo + (let ((commit "e38c67ba9db1ea1cbe1b61ab39b506c05efdcdbf") + (revision "1")) + (package + (name "emacs-flycheck-clj-kondo") + (version (git-version "0.0.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/borkdude/flycheck-clj-kondo") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1pxlb8axgmc8cw4id40z576kd041qb1irq8rkjn6xbda585ix58f")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-flycheck)) + (home-page "https://github.com/borkdude/flycheck-clj-kondo") + (synopsis "Add Clj-kondo linter to Flycheck") + (description + "This package integrates Clj-kondo with Emacs via Flycheck.") + (license license:gpl3+)))) + (define-public emacs-fb2-reader (let ((commit "9836db284749e0cef4c43c2cb5358c82ae9b8589")) ; version bump (package @@ -2883,6 +2947,38 @@ modes.") compile}.") (license license:gpl3+))) +(define-public emacs-flymake-perlcritic + (let ((commit "c11fee87370d8bd889a6c00d4f689fd5f08f2922") + (revision "0")) + (package + (name "emacs-flymake-perlcritic") + (version (git-version "1.0.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flymake/emacs-flymake-perlcritic") + (commit commit))) + (sha256 + (base32 "1n2682ly8pw8sjj7bix4qjjxc5x396m6sxbv0k6vs93z4i1gy2qm")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-command + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "flymake-perlcritic.el" + ("flymake-perlcritic-command" + (search-input-file inputs "/bin/perlcritic")))))))) + (inputs (list perl-critic)) + (home-page "https://github.com/flymake/emacs-flymake-perlcritic") + (synopsis "Flymake handler for perlcritic") + (description + "Flymake Perlcritic adds support to Flymake for running Perl::Critic to +perform static analysis of Perl code.") + (license license:gpl3+)))) + (define-public emacs-flymake-popon (package (name "emacs-flymake-popon") @@ -3440,11 +3536,6 @@ or unexpected behavior inside an elisp configuration file (typically @file{init.el} or @file{.emacs}).") (license license:gpl3+)))) - -;;; -;;; Web browsing. -;;; - (define-public emacs-w3m ;; Emacs-w3m follows a "rolling release" model. (package @@ -3597,22 +3688,17 @@ to prevent advertisers from tracking you when you open URLs (or listen to podcasts) in Emacs.") (license (list license:gpl3+))))) - -;;; -;;; Multimedia. -;;; - (define emacs-emms-print-metadata (package (name "emacs-emms-print-metadata") - (version "20") + (version "20.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "emms-" version ".tar")) (sha256 - (base32 "0g61fgnslpaqvh6l872hjdwhnkzz79g1950wllx8hk9hr35nb2ag")))) + (base32 "0h0v31f1q7k45k8s9kncvim3a7np7fgjz4qg9v8gjc5ag01dzwkx")))) (build-system gnu-build-system) (arguments (list @@ -3750,41 +3836,39 @@ Selectrum.") (license license:gpl3+))) (define-public emacs-empv - (let ((commit "8cc9b0a425b6989d30f91bf90e9b09bd00581f07") - (revision "1")) - (package - (name "emacs-empv") - (version (git-version "4.3.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/isamert/empv.el") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06dphwj9vi39dbpif3kzp6azs80klh13s9l22a6ddz91kmds2myy")))) - (build-system emacs-build-system) - (arguments - (list - #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'set-default-binaries - (lambda* (#:key inputs #:allow-other-keys) - (emacs-substitute-variables "empv.el" - ("empv-fd-binary" (search-input-file inputs "/bin/fd")) - ("empv-mpv-binary" (search-input-file inputs "/bin/mpv")))))))) - (inputs (list fd mpv)) - (propagated-inputs (list emacs-compat emacs-consult emacs-s)) - (home-page "https://github.com/isamert/empv.el") - (synopsis - "Emacs multimedia player, media library manager, YouTube frontend") - (description - "This package is an Emacs multimedia player based on mpv. It offers + (package + (name "emacs-empv") + (version "4.4.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/isamert/empv.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1x756842bwyzp8qqlkcnisbsvpb1i8dc7ajq32ra4l3zfk8vqbh1")))) + (build-system emacs-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'set-default-binaries + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "empv.el" + ("empv-fd-binary" (search-input-file inputs "/bin/fd")) + ("empv-mpv-binary" (search-input-file inputs "/bin/mpv")))))))) + (inputs (list fd mpv)) + (propagated-inputs (list emacs-compat emacs-consult emacs-s)) + (home-page "https://github.com/isamert/empv.el") + (synopsis + "Emacs multimedia player, media library manager, YouTube frontend") + (description + "This package is an Emacs multimedia player based on mpv. It offers a comprehensive interface to mpv, including convenient features such as an embedded radio manager, YouTube integration, and a local music and video library manager.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-marginalia-emprise (package @@ -3833,11 +3917,6 @@ toggle custom-defined channels. An external media player like mpv or VLC is required.") (license license:gpl3+)))) - -;;; -;;; Miscellaneous. -;;; - (define-public emacs-ace-link (package (name "emacs-ace-link") @@ -4539,14 +4618,14 @@ as a library for other Emacs packages.") (define-public emacs-auctex (package (name "emacs-auctex") - (version "14.0.5") + (version "14.0.6") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "auctex-" version ".tar")) (sha256 - (base32 "0sycj6ad5jazmsxq37hsnvbywkpj66lrw3d3mxqr1wqkb67cdd3k")))) + (base32 "0cajri7x6770wjkrasa0p2s0dvcp74fpv1znac5wdfiwhvl1i9yr")))) (build-system emacs-build-system) ;; We use 'emacs' because AUCTeX requires dbus at compile time ;; ('emacs-minimal' does not provide dbus). @@ -5094,7 +5173,7 @@ that the binary uses instead of the actual binary contents.") (define-public emacs-ellama (package (name "emacs-ellama") - (version "0.9.11") + (version "0.11.12") (source (origin (method git-fetch) (uri (git-reference @@ -5102,9 +5181,9 @@ that the binary uses instead of the actual binary contents.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "18wxp7shzqhi7paqidv8j80fsiikvsckzm02cwhqy8fyyypv9pdc")))) + "16hhzb38qcrj7irf0h1h2yr8j02v0lkgxn89ysapabh9ppf6amx8")))) (build-system emacs-build-system) - (propagated-inputs (list emacs-dash emacs-llm emacs-spinner)) + (propagated-inputs (list emacs-compat emacs-dash emacs-llm emacs-spinner)) (home-page "https://github.com/s-kostyaev/ellama") (synopsis "Tool for interacting with LLMs") (description @@ -6820,7 +6899,7 @@ window.") (define-public emacs-git-link (package (name "emacs-git-link") - (version "0.9.1") + (version "0.9.2") (source (origin (method git-fetch) @@ -6829,7 +6908,7 @@ window.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1dxmzk4qrz69h097lwshfg4qavdp92an5212ndhjkpmkgvk1v0xl")))) + (base32 "1z7m7xl72x7as3d9l3zspac53kyij7hixpz1y2aq5gqpa7wzh87z")))) (build-system emacs-build-system) (arguments (list @@ -9163,26 +9242,20 @@ user.") (define-public emacs-subed (package (name "emacs-subed") - (version "1.2.11") + (version "1.2.14") (source (origin (method url-fetch) (uri (string-append "https://elpa.nongnu.org/nongnu/subed-" version ".tar")) (sha256 (base32 - "1dlh7vd8kc16wr9sqd3v7kkxfvqadi56pa52h35b86krndh4vazp")))) + "0kzb054radxq9hqviadmbr4cln39yp7yz4inq4ip52rd3qdm8vy4")))) (arguments (list #:tests? #t - #:test-command #~(list "make" "test-only") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'compatibility-with-recent-buttercup - (lambda _ - (substitute* (find-files "tests/" "\\.el$") - (("\\(buttercup-minor-mode\\) -\\*-") - "(buttercup-minor-mode); lexical-binding: t -*-"))))))) + #:test-command #~(list "make" "test-only"))) (native-inputs (list emacs-buttercup)) + (inputs (list ffmpeg)) (build-system emacs-build-system) (home-page "https://elpa.nongnu.org/nongnu/subed.html") (synopsis "Major mode for editing subtitles") @@ -9466,7 +9539,7 @@ build jobs.") (define-public emacs-zmq (package (name "emacs-zmq") - (version "1.0.0") + (version "1.0.1") (source (origin (method git-fetch) @@ -9475,7 +9548,7 @@ build jobs.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1bg4c26f8n1jy6z9dr2c9fz79myy9lbb5z67797qp1cbx8k6p3n7")))) + (base32 "171cm487jbdqi73lk7vc9dsrzhxqic0yvy1vvxwk3b9qx1m2ab6v")))) (build-system emacs-build-system) (arguments (list @@ -11146,7 +11219,7 @@ sgml/html integration, and indentation (working with sgml).") (define-public emacs-jinx (package (name "emacs-jinx") - (version "1.8") + (version "1.9") (source (origin (method git-fetch) @@ -11156,7 +11229,7 @@ sgml/html integration, and indentation (working with sgml).") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0sdirjxi5gsmc1vbmkj494s54zcmf6xrl6lrdqjnqmlbgq8517nw")))) + (base32 "17bygyvllmmnngmbp8grs5nrngiy61c2kbyxykf1hgvmj4hqwkv8")))) (build-system emacs-build-system) (arguments (list @@ -12436,6 +12509,26 @@ list of candidates.") completion using Consult.") (license license:gpl3+)))) +(define-public emacs-consult-denote + (package + (name "emacs-consult-denote") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/consult-denote-" + version ".tar")) + (sha256 + (base32 "0yhf9fifas87rs4wdapszbpx1xqyq44izjq7vzpyvdlh5a5fhhx1")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-consult emacs-denote)) + (home-page "https://github.com/protesilaos/consult-denote") + (synopsis "Consult interface for Denote") + (description + "Consult Denote provides commands to interact with Emacs Denote using +a Completing Read interface.") + (license license:gpl3+))) + (define-public emacs-consult-dir (package (name "emacs-consult-dir") @@ -12828,7 +12921,7 @@ between symbols.") (define-public emacs-hl-todo (package (name "emacs-hl-todo") - (version "3.7.0") + (version "3.8.0") (source (origin (method git-fetch) (uri (git-reference @@ -12837,7 +12930,7 @@ between symbols.") (file-name (git-file-name name version)) (sha256 (base32 - "0am37ndwz8gkfs0d1va86q84yjdvvf0wag8fns3q87i5yhssi7vp")))) + "13qwh736srkrqiim1xpfkc5hjk1c77i9y6a71nv5iqaffykizkx0")))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat)) @@ -14963,7 +15056,7 @@ with Elfeed.") (define-public emacs-elfeed-score (package (name "emacs-elfeed-score") - (version "1.2.7") + (version "1.2.8") (source (origin (method git-fetch) @@ -14972,7 +15065,7 @@ with Elfeed.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0s37m8566g396d8480jac07c89f2jjpg6p3hcwwmz89s27agp81q")))) + (base32 "0kmg3pciqihs8r5xja3pv48gzkn3vs6y6ij0dlmzmavymfp7hq5z")))) (build-system emacs-build-system) (arguments (list @@ -15081,6 +15174,28 @@ suggestion is taken.") customizable 256 color support to @code{term} and @code{ansi-term}.") (license license:gpl3+))) +(define-public emacs-centaur-tabs + (package + (name "emacs-centaur-tabs") + (version "3.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ema2159/centaur-tabs") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1z7b3s29xb0n25bfbbm1wrcap9dvig5zi5fcnvlyrl9si9565948")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-all-the-icons emacs-powerline)) + (home-page "https://github.com/ema2159/centaur-tabs") + (synopsis "Modern looking tabs plugin for Emacs") + (description + "This projects aims to become an aesthetic, functional and +efficient tabs plugin for Emacs with a lot of customization options.") + (license license:gpl3+))) + (define-public emacs-mocker (package (name "emacs-mocker") @@ -16133,7 +16248,7 @@ implementation.") (define-public emacs-cider (package (name "emacs-cider") - (version "1.15.0") + (version "1.15.1") (source (origin (method git-fetch) @@ -16142,7 +16257,7 @@ implementation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1ih16wk9gd214kgz5s5azs4f26v5grvp9yacfzgidaxzrmzh83j8")))) + (base32 "0kzgkx6jcv2864c32qr9qvrxm66l6ncakcpw1j7vf24xi51cs9a1")))) (build-system emacs-build-system) (arguments '(#:include (cons* "^lein\\.sh$" "^clojure\\.sh$" %default-include) @@ -16539,7 +16654,7 @@ Lua programming language}.") (define-public emacs-ebuild-mode (package (name "emacs-ebuild-mode") - (version "1.71") + (version "1.72") (source (origin (method url-fetch) @@ -16548,7 +16663,7 @@ Lua programming language}.") "ebuild-mode-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz")) (sha256 - (base32 "0gmzki027iyzzkvvsc9mq5njwwjvrys69awpfcq0rwbp11qn6jsd")))) + (base32 "1xzkb2i5azws6wrvbsxh5jpd2lvh0h1kxsm7dyzcf01a6w3qxks8")))) (build-system emacs-build-system) (arguments (list @@ -17227,7 +17342,7 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "9.7.6") + (version "9.7.8") (source (origin (method git-fetch) @@ -17236,7 +17351,7 @@ passive voice.") (commit (string-append "release_" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0n3lnccd011njmy6srpjran2pi2frc3vq1cx11cqzd5p5961v7mj")))) + (base32 "0pkw47rkvyl3s2pisprh1l26c70n3n5b8vxw25mzkrz2nr94qn44")))) (build-system emacs-build-system) (arguments (list @@ -17850,7 +17965,7 @@ you to deal with multiple log levels.") (define-public emacs-denote (package (name "emacs-denote") - (version "3.0.6") + (version "3.0.7") (source (origin (method git-fetch) @@ -17859,7 +17974,7 @@ you to deal with multiple log levels.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0m5cdzk1mjcg5wrmgrgk165pwwgq3wjfcxzqs0xhrz6l033rsfwq")))) + (base32 "0dq0djv5baz6pab6vf5p52yywxz91smpb9fqlx1hyzl3cvgs8aml")))) (build-system emacs-build-system) (native-inputs (list texinfo)) (home-page "https://protesilaos.com/emacs/denote/") @@ -18042,7 +18157,7 @@ are common in Chromium-derived projects.") (define-public emacs-gnosis (package (name "emacs-gnosis") - (version "0.3.0") + (version "0.3.2") (source (origin (method git-fetch) @@ -18051,7 +18166,7 @@ are common in Chromium-derived projects.") (commit version))) (sha256 (base32 - "19mzyg4hg6mplv3s2kb8xiaw06zkbj7a3gvfvy51cwvb8k979ap6")) + "03ydknrzl5xcmn5n2ybyxqmjfrqrpk0h0p6cp9xnpmra6r87xqkd")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs (list emacs-compat emacs-emacsql)) @@ -19872,14 +19987,14 @@ conflicts.") (define-public emacs-xelb (package (name "emacs-xelb") - (version "0.19") + (version "0.20") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/xelb-" version ".tar")) (sha256 (base32 - "1jgpb1ym7p2dfkk45zrv6w1jqgw66sb76jvjfjsqbrkx5605x2hk")))) + "12ikrnvik1n1fdc6ixx53d0z84v269wi463380k0i5zb6q8ncwpk")))) (build-system emacs-build-system) ;; The following functions and variables needed by emacs-xelb are ;; not included in emacs-minimal: @@ -19891,7 +20006,7 @@ conflicts.") #:emacs emacs #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'regenerate-el-files + (add-after 'expand-load-path 'regenerate-el-files (lambda* (#:key inputs native-inputs #:allow-other-keys) (substitute* "xelb-gen" (("/usr/bin/env") (which "env"))) @@ -19902,6 +20017,7 @@ conflicts.") (format #f "PROTO_PATH=~a/share/xcb" xcb-proto) (format #f "EMACS_BIN=~a -Q" emacs)))))))) (native-inputs (list xcb-proto)) + (propagated-inputs (list emacs-compat)) (home-page "https://github.com/ch11ng/xelb") (synopsis "X protocol Emacs Lisp binding") (description "@code{emacs-xelb} is a pure Emacs Lisp implementation of the @@ -19913,7 +20029,7 @@ It should enable you to implement low-level X11 applications.") (define-public emacs-exwm (package (name "emacs-exwm") - (version "0.30") + (version "0.31") (synopsis "Emacs X window manager") (source (origin @@ -19921,7 +20037,7 @@ It should enable you to implement low-level X11 applications.") (uri (string-append "https://elpa.gnu.org/packages/" "exwm-" version ".tar")) (sha256 - (base32 "1yscxs0knfb7wz7x6g9nixb6rpn5898q9dpsvk37ayda7nw75b2i")))) + (base32 "1i1k8w641n2fd6xifl92pvvq0s0b820lq76d1cyc7iyaqs44w9qq")))) (build-system emacs-build-system) (propagated-inputs (list emacs-xelb)) @@ -20947,24 +21063,17 @@ as a modern file manager.") (define-public emacs-which-key (package (name "emacs-which-key") - (version "3.6.0") + (version "3.6.1") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/justbur/emacs-which-key") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/which-key-" version + ".tar")) (sha256 - (base32 "0ph5mrzz3r7x4dmy93v6affl4jznvic97a30mrs3kvhwyr2v4mby")))) + (base32 "0p1vl7dnd7nsvzgsff19px9yzcw4w07qb5sb8g9r8a8slgvf3vqh")))) (build-system emacs-build-system) - (arguments - `(#:tests? #t - #:test-command '("emacs" "--batch" - "-l" "which-key-tests.el" - "-f" "ert-run-tests-batch-and-exit"))) - (home-page "https://github.com/justbur/emacs-which-key") - (synopsis "Display available key bindings in popup") + (home-page "https://elpa.gnu.org/packages/which-key.html") + (synopsis "Display available keybindings in popup") (description "@code{emacs-which-key} is a minor mode for Emacs that displays the key bindings following your currently entered incomplete command (a prefix) in a @@ -25761,7 +25870,7 @@ powerful Org contents.") (define-public emacs-org-re-reveal (package (name "emacs-org-re-reveal") - (version "3.28.2") + (version "3.29.1") (source (origin (method git-fetch) @@ -25770,7 +25879,7 @@ powerful Org contents.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1qbp198xg8pkd9zdvapq8bdsxilgqqync8m3r1csg8nz8lbpkk1b")))) + (base32 "1ql684l6jny3r3c7xa5m3mfgv89j0jpjan6a05gfay6m1pgsg9iy")))) (build-system emacs-build-system) (propagated-inputs (list emacs-htmlize emacs-org)) @@ -31245,6 +31354,14 @@ the standard @code{Dockerfile} file format.") (for-each (lambda (f) (install-file f ".")) (find-files "clients/" "\\.el$")))) + (add-after 'unpack 'enable-plists + (lambda _ + (substitute* "lsp-protocol.el" + ;; This is faster, and it's officially recommended, + ;; and it's required by emacs-lsp-booster. + ;; See also: + ;; <https://emacs-lsp.github.io/lsp-mode/page/performance/>. + (("\\(getenv \"LSP_USE_PLISTS\"\\)") "t")))) (add-before 'move-clients-libraries 'fix-patch-el-files ;; /bin/ksh is only used on macOS, which we don't support, so we ;; don't want to add it as input. @@ -31377,56 +31494,54 @@ in Docker environment.") (license license:gpl3+)))) (define-public emacs-dape - (let ((commit "51fad7df7473778fbc4bac703317de7f7713b307") - (revision "0")) - (package - (name "emacs-dape") - (version (git-version "0.12.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/svaante/dape") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1jics02b9fxjs0lykiv7z924z18id550mqhf6piqzv0sgan91pg2")))) - (build-system emacs-build-system) - (arguments - ;; FIXME python tests pass, JS tests require additional dependencies - ;; See https://lists.sr.ht/~abcdw/rde-devel/patches/51878 - (list #:tests? #f - #:test-command #~'("emacs" "--batch" "-l" "dape.el" - "-l" "dape-tests.el" - "-f" "ert-run-tests-batch-and-exit") - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'support-unwrapped-python - (lambda _ - (substitute* "dape.el" - (("command \"python\"") - "command \"python3\"")))) - (add-before 'check 'pre-check - (lambda* (#:key tests? inputs #:allow-other-keys) - (if tests? - (setenv - "PATH" - (string-append - (getenv "PATH") - ":" (dirname (search-input-file inputs "/bin/python3")) - ":" (dirname (search-input-file inputs "/bin/node")))) - (format #t "test suite not run~%"))))))) - (native-inputs (list node-lts python-minimal python-debugpy)) - (propagated-inputs (list emacs-jsonrpc)) - (home-page "https://github.com/svaante/dape") - (synopsis "Debug Adapter Protocol for Emacs") - (description - "Dape is a debug adapter client for Emacs. The debug adapter protocol, + (package + (name "emacs-dape") + (version "0.14.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/svaante/dape") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0227i5z9vkr2l9isrlssdwda844jvpcs4i9ryj0cwj6i60jbf1g3")))) + (build-system emacs-build-system) + (arguments + ;; FIXME python tests pass, JS tests require additional dependencies + ;; See https://lists.sr.ht/~abcdw/rde-devel/patches/51878 + (list #:tests? #f + #:test-command #~'("emacs" "--batch" "-l" "dape.el" + "-l" "dape-tests.el" + "-f" "ert-run-tests-batch-and-exit") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'support-unwrapped-python + (lambda _ + (substitute* "dape.el" + (("command \"python\"") + "command \"python3\"")))) + (add-before 'check 'pre-check + (lambda* (#:key tests? inputs #:allow-other-keys) + (if tests? + (setenv + "PATH" + (string-append + (getenv "PATH") + ":" (dirname (search-input-file inputs "/bin/python3")) + ":" (dirname (search-input-file inputs "/bin/node")))) + (format #t "test suite not run~%"))))))) + (native-inputs (list node-lts python-minimal python-debugpy)) + (propagated-inputs (list emacs-jsonrpc)) + (home-page "https://github.com/svaante/dape") + (synopsis "Debug Adapter Protocol for Emacs") + (description + "Dape is a debug adapter client for Emacs. The debug adapter protocol, much like its more well-known counterpart, the language server protocol, aims to establish a common API for programming tools. However, instead of functionalities such as code completions, it provides a standardized interface for debuggers.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-dap-mode (package @@ -31897,7 +32012,7 @@ as Emacs Lisp.") (define-public emacs-transient (package (name "emacs-transient") - (version "0.7.2") + (version "0.7.3") (source (origin (method git-fetch) (uri (git-reference @@ -31906,7 +32021,7 @@ as Emacs Lisp.") (file-name (git-file-name name version)) (sha256 (base32 - "0fkgl374jxar2fhpjn4j67r7qc71xlg15r968lk1bny3aj3wf989")))) + "11yygh8h2ggslym3mly9dfgyml9srmcqkx1i9n190idv5a4gkjm7")))) (build-system emacs-build-system) (arguments `(#:tests? #f ;no test suite @@ -33136,7 +33251,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-avy (package (name "emacs-casual-avy") - (version "1.4.0") + (version "1.4.1") (source (origin (method git-fetch) @@ -33145,7 +33260,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1n369d7yk6wr5b1145zxviiri1n2f8pzfmzchcnii34zwa2y7x2y")))) + (base32 "120dnixi8if8v4s4xr0lilpbkikk93v5icf16fydsd143q8x81gg")))) (build-system emacs-build-system) (arguments (list @@ -33190,7 +33305,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-casual-dired (package (name "emacs-casual-dired") - (version "1.6.0") + (version "1.7.0") (source (origin (method git-fetch) @@ -33199,7 +33314,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "01yyhamslbnzf7w2hn5c8gpjjnw1aclyf9265pvdnxsyb4jdyi5k")))) + (base32 "1lilb3gi8mmiiwdwr3xsy9pvm3nh5crzsvbh45dsk72wwgzjp94i")))) (build-system emacs-build-system) (arguments (list @@ -33209,15 +33324,42 @@ all of your projects, then override or add variables on a per-project basis.") (lambda _ (chdir "lisp")))))) (propagated-inputs (list emacs-casual-lib)) (home-page "https://github.com/kickingvegas/casual-dired") - (synopsis "Transient-based porcelain for dired") + (synopsis "Transient-based porcelain for Dired") (description "Casual Dired is an opinionated Transient-based porcelain for Emacs Dired.") (license license:gpl3+))) +(define-public emacs-casual-info + (package + (name "emacs-casual-info") + (version "1.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kickingvegas/casual-info") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1a74njjp7vqvl4jnmrzqjpgpvgy66p11a47hx51mydyxayp4nwmr")))) + (build-system emacs-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "lisp")))))) + (propagated-inputs (list emacs-casual-lib)) + (home-page "https://github.com/kickingvegas/casual-info") + (synopsis "Transient-based porcelain for info reader") + (description + "Casual Info is an opinionated Transient-based porcelain for Emacs Info reader.") + (license license:gpl3+))) + (define-public emacs-casual-lib (package (name "emacs-casual-lib") - (version "1.1.0") + (version "1.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -33226,7 +33368,7 @@ all of your projects, then override or add variables on a per-project basis.") (file-name (git-file-name name version)) (sha256 (base32 - "0dn6jz8bbz17326g0jd1hvz80xxmbl7dwifb2nnw7nl6q6adbkmf")))) + "02pxnhp5idn6ypk5s5nl0df1s2pgmyy7g5p3hiyb52m972y1if35")))) (build-system emacs-build-system) (arguments (list #:tests? #t @@ -33248,7 +33390,7 @@ all of your projects, then override or add variables on a per-project basis.") (define-public emacs-calibredb (package (name "emacs-calibredb") - (version "2.12.0") + (version "2.13.0") (source (origin (method git-fetch) @@ -33257,7 +33399,7 @@ all of your projects, then override or add variables on a per-project basis.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1l30s3wv21mpybbxni5fziq2awai9k60i87s6fid56hg262r7jp0")))) + (base32 "1a4gyc3gcq18j29pw2i296d70nvx5fbzlw9fdmqwzncciqz5as6m")))) (build-system emacs-build-system) (arguments (list @@ -33544,14 +33686,14 @@ well as an option for visually flashing evaluated s-expressions.") (define-public emacs-tramp (package (name "emacs-tramp") - (version "2.6.3") + (version "2.7.1") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/" "tramp-" version ".tar")) (sha256 - (base32 "0z44mfpvn4qy2xc2fsiahw3xir140ljna8aq45dcb7qnmr044xjb")))) + (base32 "128k591219ffwbk1cifki0xx94rg6b7crh7gmhaiqfa6jylqhcg8")))) (build-system emacs-build-system) (arguments (list @@ -34581,7 +34723,7 @@ time.") (define-public emacs-mastodon (package (name "emacs-mastodon") - (version "1.0.23") + (version "1.0.24") (source (origin (method git-fetch) @@ -34590,7 +34732,7 @@ time.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1jknnp66fn6prk3b1xjjbml798vczfy7agf72pcvwrciljm9ij34")))) + (base32 "1365n7nswh7f6py82hkb5qd9fhl6mdr0jcpnbzsx0mc75vpyjvl8")))) (build-system emacs-build-system) (arguments (list @@ -34760,7 +34902,7 @@ contains a track position, playback will start at the specified position.") (define-public emacs-org-jira (package (name "emacs-org-jira") - (version "4.4.1") + (version "4.4.2") (source (origin (method git-fetch) @@ -34770,7 +34912,7 @@ contains a track position, playback will start at the specified position.") (file-name (git-file-name name version)) (sha256 (base32 - "1pkqyvziwp2573hnr8s41chsbm40564f76i3l8ynjr7955nccsms")))) + "1mg7p9y4d4m6b6qkjvdz6lqby3kvvdb7qcjqgkrf75rzv0rsn1h2")))) (build-system emacs-build-system) (arguments (list @@ -39873,6 +40015,32 @@ workspace diagnostics, symbols, and file symbols from @{emacs-lsp-mode} by leveraging @code{emacs-consult} APIs.") (license license:expat))) +(define-public emacs-consult-projectile + (let ((commit "400439c56d17bca7888f7d143d8a11f84900a406") + (revision "1")) + (package + (name "emacs-consult-projectile") + (version (git-version "0.7" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/OlMon/consult-projectile") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1abd2dw3zpiln9pd7l3j78wl3lwapcmf1ilijv3vin9g0wqb7hmn")))) + (build-system emacs-build-system) + (propagated-inputs (list emacs-consult emacs-projectile)) + (home-page "https://gitlab.com/OlMon/consult-projectile") + (synopsis "Consult integration for Projectile") + (description + "This package provides a multiview for displaying open buffers, files +and directories associated with a project. When no project is open in the +current buffer, it displays a list of known projects. One can then pick +a file from the selected project.") + (license license:gpl3+)))) + (define-public emacs-context-transient (package (name "emacs-context-transient") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index ed186d221c..f1ea4fe061 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -100,15 +100,18 @@ (define-public emacs-minimal (package (name "emacs-minimal") - (version "29.3") - (replacement emacs-minimal/fixed) + (version "29.4") + ;; Note: When using (replacement …), ensure that comp-native-version-dir + ;; stays the same across grafts. + ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts + ;; can meaningfully be applied. (source (origin (method url-fetch) (uri (string-append "mirror://gnu/emacs/emacs-" version ".tar.xz")) (sha256 (base32 - "1822swrk4ifmkd4h9l0h37zifcpa1w3sy3vsgyffsrp6mk9hak63")) + "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds")) (patches (search-patches "emacs-disable-jit-compilation.patch" "emacs-exec-path.patch" "emacs-fix-scheme-indent-function.patch" @@ -335,18 +338,6 @@ languages.") (files '("lib/tree-sitter"))))) (properties `((upstream-name . "emacs"))))) -(define emacs-minimal/fixed - (package - (inherit emacs-minimal) - (version "29.4") - (source - (origin (inherit (package-source emacs-minimal)) - (uri (string-append "mirror://gnu/emacs/emacs-" - version ".tar.xz")) - (sha256 - (base32 - "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds")))))) - (define-public emacs-no-x (package/inherit emacs-minimal (name "emacs-no-x") diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 29186fec88..7f230f2806 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2018-2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> -;;; Copyright © 2019-2023 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2019-2024 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> ;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 Sebastian Schott <sschott@mailbox.org> @@ -2378,7 +2378,7 @@ mining.") (define-public p2pool (package (name "p2pool") - (version "3.10") + (version "4.0") (source (origin (method git-fetch) @@ -2387,7 +2387,7 @@ mining.") (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) - (sha256 (base32 "0lp9slfwaq3wp4x6xpsiazam5lv6dz57m20adzlzzk0anb1ascr0")) + (sha256 (base32 "0x6s7fm5gn0q2274b2nja8hj84cvmxp4rr9x4xw050sxj74880jh")) (modules '((guix build utils))) (snippet #~(for-each delete-file-recursively @@ -2396,10 +2396,11 @@ mining.") "external/src/curl" "external/src/libuv" "external/src/libzmq" - "external/src/rapidjson"))))) + "external/src/rapidjson" + "external/src/robin-hood-hashing"))))) (build-system cmake-build-system) (inputs - (list cppzmq curl gss libuv rapidjson zeromq)) + (list cppzmq curl gss libuv rapidjson robin-hood-hashing zeromq)) (arguments (list ; FIXME: Linking fails when LTO is activated. #:configure-flags #~(list "-DWITH_LTO=OFF") @@ -2410,7 +2411,7 @@ mining.") (when tests? (mkdir-p "tests") (chdir "tests") - (invoke "cmake" "../../source/tests") + (invoke "cmake" "-DWITH_LTO=OFF" "../../source/tests") (invoke "make" "-j" (number->string (parallel-job-count))) (invoke "gzip" "-d" "sidechain_dump.dat.gz") (invoke "gzip" "-d" "sidechain_dump_mini.dat.gz") diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm index fbad61e269..d2ee54f021 100644 --- a/gnu/packages/golang-build.scm +++ b/gnu/packages/golang-build.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019, 2020 Leo Famulari <leo@famulari.name> ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> -;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2020, 2024 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 HiPhish <hiphish@posteo.de> ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> @@ -80,6 +80,10 @@ (replace 'check (lambda* (#:key tests? import-path #:allow-other-keys) (when tests? + ;; We need to extend the timeout on some architectures. + ;; 64 is the default in extra_test.go. + (setenv "GOLDMARK_TEST_TIMEOUT_MULTIPLIER" + (number->string (* 64 5))) (with-directory-excursion (string-append "src/" import-path) (invoke "go" "test" "-v" "./...")))))))) (home-page "https://github.com/yuin/goldmark/") diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index ce7e4bfbe3..ebb7eed99c 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -31,6 +31,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system scons) + #:use-module (guix build-system qt) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (gnu packages) @@ -51,6 +52,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml)) (define-public gpsbabel @@ -179,33 +181,31 @@ coordinates as well as partial support for adjustments in global coordinate syst (define-public gpxsee (package (name "gpxsee") - (version "11.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/tumic0/GPXSee") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1klpjiqsvpvhlg5hsfjaszsyqr817hig9r7y7w4cp0kyn8z5fzfj")))) - (build-system gnu-build-system) + (version "13.22") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tumic0/GPXSee") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15m5rqky2fwsq5n6x531350x39wwhpv1hz56m1yfaxj7acxhb2p5")))) + (build-system qt-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (replace 'configure - ;; Use lrelease to convert TS translation files into QM files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (for-each (lambda (file) - (invoke "lrelease" file)) - (find-files "lang" "\\.ts")) - (invoke "qmake" - (string-append "PREFIX=" - (assoc-ref outputs "out")))))))) - (inputs - (list qtbase-5 qtlocation-5 qtsvg-5)) - (native-inputs - (list qttools-5)) + (list + #:qtbase qtbase + #:tests? #f ; no tests + #:phases #~(modify-phases %standard-phases + (replace 'configure + ;; Use lrelease to convert TS translation files into QM files. + (lambda _ + (apply invoke "lrelease" + (find-files "lang" "\\.ts")) + (invoke "qmake" + (string-append "PREFIX=" #$output))))))) + (inputs (list libxkbcommon qtbase qtpositioning qtserialport qtsvg)) + (native-inputs (list qttools)) (home-page "https://www.gpxsee.org") (synopsis "GPS log file viewer and analyzer") (description diff --git a/gnu/packages/ipfs.scm b/gnu/packages/ipfs.scm index c4914bbb80..82d8914250 100644 --- a/gnu/packages/ipfs.scm +++ b/gnu/packages/ipfs.scm @@ -29,6 +29,7 @@ #:use-module (guix git-download) #:use-module (guix download) #:use-module (guix build-system go) + #:use-module (gnu packages gcc) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) @@ -147,7 +148,9 @@ with @url{https://github.com/ipld/cid, CIDs}.") "0qk6fshgdmhp8dip2ksm13j6nywi41m9mn0czkvmw6b697z85l2r")))) (build-system go-build-system) (arguments - `(#:go ,go-1.16 + `(#:go ,@(if (supported-package? go-1.16) + `(,go-1.16) + `(,gccgo-11)) #:unpack-path "github.com/ipfs/go-ipfs-cmdkit" #:import-path "github.com/ipfs/go-ipfs-cmdkit/files")) (home-page "https://github.com/ipfs/go-ipfs-cmdkit") @@ -366,6 +369,64 @@ IPLD graph as detailed below. Objects are demonstrated here using both order to be a part of the @acronym{IPLD, InterPlanetary Linked Data} merkle-forest.") (license license:expat))) +(define-public go-github-com-ipfs-go-ipld-legacy + (package + (name "go-github-com-ipfs-go-ipld-legacy") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipfs/go-ipld-legacy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0sc2zc3lyxy30fzynwdpfrl8jhh1ynwixn1crrv8hzn93yix6550")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/ipfs/go-ipld-legacy")) + (native-inputs (list go-github-com-stretchr-testify)) + (propagated-inputs (list go-github-com-ipfs-go-block-format + go-github-com-ipfs-go-cid + go-github-com-ipfs-go-ipld-format + go-github-com-ipld-go-ipld-prime)) + (home-page "https://github.com/ipfs/go-ipld-legacy") + (synopsis "Translation layer for IPLD legacy code") + (description + "@code{go-ipld-format} is a translation layer between @code{go-ipld-prime} nodes +and @code{go-ipld-format} legacy interface.") + (license (list license:expat license:asl2.0)))) + +(define-public go-github-com-ipld-go-codec-dagpb + (package + (name "go-github-com-ipld-go-codec-dagpb") + (version "1.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ipld/go-codec-dagpb") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1jbrwbgr222wsi95gdflbj350csja6k8vphdq7c9bm50ipr8bvkq")))) + (build-system go-build-system) + (arguments + (list + #:go go-1.21 + #:import-path "github.com/ipld/go-codec-dagpb")) + (propagated-inputs (list go-github-com-ipfs-go-cid + go-github-com-ipld-go-ipld-prime + go-google-golang-org-protobuf)) + (home-page "https://github.com/ipld/go-codec-dagpb/") + (synopsis "Implementation of the DAG-PB spec for Go") + (description + "An implementation of the @url{https://ipld.io/, IPLD DAG-PB} spec for +@code{go-ipld-prime}.") + (license (list license:expat license:asl2.0)))) + (define-public go-github-com-ipld-go-ipld-prime (package (name "go-github-com-ipld-go-ipld-prime") @@ -513,6 +574,35 @@ their levels to be controlled individually.") (list #:import-path "github.com/ipfs/go-log")))) +(define-public go-github-com-libp2p-go-socket-activation + (package + (name "go-github-com-libp2p-go-socket-activation") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-socket-activation") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1cqxzmjfg7838xifs07kigys9icardwlj1wl426mzgzmbwn6pg5s")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/libp2p/go-socket-activation")) + (propagated-inputs + (list go-github-com-coreos-go-systemd-v22 + go-github-com-ipfs-go-log + go-github-com-multiformats-go-multiaddr-0.12)) + (home-page "https://github.com/libp2p/go-socket-activation") + (synopsis "Multiaddr backed systemd socket activation") + (description + "This package provides access to sockets registered by the system's init +daemon as described in +@url{http://0pointer.de/blog/projects/socket-activation}.") + (license license:expat))) + (define-public go-github-com-whyrusleeping-cbor-gen (package (name "go-github-com-whyrusleeping-cbor-gen") @@ -541,6 +631,9 @@ their levels to be controlled individually.") types.") (license license:expat))) +;; XXX: No updates for 4 years, and depends on dated Golang modules which +;; require go-1.16 to compile, see +;; <https://github.com/whyrusleeping/gx/issues/247>. (define-public gx (package (name "gx") @@ -599,6 +692,9 @@ powerful and simple.") '(#:unpack-path "github.com/whyrusleeping/gx" #:import-path "github.com/whyrusleeping/gx/gxutil")))) +;; XXX: No updates for 4 years, and depends on dated Golang modules which +;; require go-1.16 to compile, see +;; <https://github.com/whyrusleeping/gx-go/issues/65>. (define-public gx-go (package (name "gx-go") @@ -705,12 +801,15 @@ written in Go.") "vendor/github.com/ipfs/go-ipld-cbor" "vendor/github.com/ipfs/go-ipld-format" "vendor/github.com/ipfs/go-ipld-git" + "vendor/github.com/ipfs/go-ipld-legacy" "vendor/github.com/ipfs/go-log" + "vendor/github.com/ipld/go-codec-dagpb" "vendor/github.com/ipld/go-ipld-prime" "vendor/github.com/jackpal" "vendor/github.com/jbenet" "vendor/github.com/julienschmidt" "vendor/github.com/klauspost" + "vendor/github.com/libp2p/go-socket-activation" "vendor/github.com/mattn" "vendor/github.com/mgutz" "vendor/github.com/miekg" @@ -792,7 +891,7 @@ written in Go.") go-github-com-ipfs-go-ipld-cbor go-github-com-ipfs-go-ipld-format go-github-com-ipfs-go-ipld-git - ;;go-github-com-ipfs-go-ipld-legacy + go-github-com-ipfs-go-ipld-legacy go-github-com-ipfs-go-log go-github-com-ipfs-go-log-v2 ;;go-github-com-ipfs-go-metrics-interface @@ -802,7 +901,7 @@ written in Go.") ;;go-github-com-ipfs-shipyard-nopfs-ipfs ;;go-github-com-ipld-go-car ;;go-github-com-ipld-go-car-v2 - ;;go-github-com-ipld-go-codec-dagpb + go-github-com-ipld-go-codec-dagpb go-github-com-ipld-go-ipld-prime go-github-com-jbenet-go-random go-github-com-jbenet-go-temp-err-catcher @@ -818,7 +917,7 @@ written in Go.") ;;go-github-com-libp2p-go-libp2p-record ;;go-github-com-libp2p-go-libp2p-routing-helpers ;;go-github-com-libp2p-go-libp2p-testing - ;;go-github-com-libp2p-go-socket-activation + go-github-com-libp2p-go-socket-activation go-github-com-mitchellh-go-homedir go-github-com-multiformats-go-multiaddr-0.12 go-github-com-multiformats-go-multiaddr-dns diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 34dc5c8d26..02b3677764 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -3864,7 +3864,7 @@ with image data, text data, and sequence data.") python-pyux python-sphinx python-requests)) - (home-page "https://github.com/keras-team/keras") + (home-page "https://keras.io/") (synopsis "High-level deep learning framework") (description "Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow. It was developed with a focus on diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 391c11891e..1265ae13e9 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1400,19 +1400,19 @@ in the terminal or with an external viewer.") (define-public gnuplot (package (name "gnuplot") - (version "5.4.9") + (version "6.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" version "/gnuplot-" version ".tar.gz")) (sha256 - (base32 "15vabi30s4ln4vi82csx4nvfms3ik8704rk0prcm9h1xylhs0a53")))) + (base32 "16ipf7m2c2v1cldp3kwxbjj6db6bzy0rkrpp4kzhh61a3866cnp8")))) (build-system gnu-build-system) (native-inputs (list pkg-config (texlive-updmap.cfg))) (inputs - (list cairo gd lua pango readline)) + (list cairo gd libcerf lua pango readline)) (arguments (list #:configure-flags #~(list "--with-qt=no" diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index a68d64ab8d..91aaccf06d 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -2737,7 +2737,7 @@ that block port 22.") (define-public iperf (package (name "iperf") - (version "3.16") + (version "3.17.1") (source (origin (method git-fetch) @@ -2746,7 +2746,7 @@ that block port 22.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0m8zhr050qgmkkaf0jgn2isrr7yyk8majx9c18pf1xsqpr00sxs6")))) + (base32 "14pspy3348114r7rm2gj8h4qjhq8r8q7khrfqg8ln4vi1p9dq2x5")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/tree-sitter.scm b/gnu/packages/tree-sitter.scm index eb72b415ee..2f6e6809d7 100644 --- a/gnu/packages/tree-sitter.scm +++ b/gnu/packages/tree-sitter.scm @@ -531,6 +531,14 @@ which will be used as a snippet in origin." (git-version "0.19.0" revision commit) #:commit commit))) +(define-public tree-sitter-prisma + (tree-sitter-grammar + "prisma" "Prisma" + "19zb3dkwp2kpyivygqxk8yph0jpl7hn9zzcry15mshn2n0rs9sih" + "1.4.0" + #:repository-url "https://github.com/victorhqc/tree-sitter-prisma" + #:license license:expat)) + (define-public tree-sitter-python (tree-sitter-grammar "python" "Python" diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index dfd0e19e4b..061748bb4a 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -2321,7 +2321,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (define-public skopeo (package (name "skopeo") - (version "1.15.1") + (version "1.15.2") (source (origin (method git-fetch) (uri (git-reference @@ -2330,7 +2330,7 @@ Open Container Initiative (OCI) image layout and its tagged images.") (file-name (git-file-name name version)) (sha256 (base32 - "0fhw3jrbklpz7kb1kdwn2hg3v2jyyz30710wkd0wlpfz4fyzmzb6")))) + "13y1fmv78hh5ycm7xlsg851y17s223q13b9srksnq6jcwgprqkm8")))) (build-system gnu-build-system) (native-inputs (list go-1.21 diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index c6ddae50ae..85edcf0f7d 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -33,6 +33,7 @@ ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 David Larsson <david.larsson@selfhosted.xyz> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> +;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,6 +77,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system perl) @@ -1953,3 +1955,41 @@ XML data to JSON and other formats.") (description "This package provides a Python library to convert XML to @code{OrderedDict}.") (license license:expat))) + +(define-public xml-namespace-xsd + (package + (name "xml-namespace-xsd") + (version "2009-01") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.w3.org/" + (string-replace-substring version "-" "/") + "/xml.xsd")) + (sha256 + (base32 "0agqmxbhk2q9xa38m02z7ggbb124z6avnqyhz8k43iicqhv1fw6c")))) + (build-system copy-build-system) + (arguments + (list + #:install-plan #~'(("xml.xsd" "/xml/dtd/namespace/xml.xsd") + ("catalog.xml" "/xml/dtd/namespace/catalog.xml")) + #:phases #~(modify-phases %standard-phases + (add-before 'install 'create-catalog + (lambda _ + (invoke "xmlcatalog" + "--noout" + "--create" + "--add" + "uri" + "http://www.w3.org/2001/xml.xsd" + "xml.xsd" + "catalog.xml")))))) + (native-inputs (list libxml2)) + (home-page "https://www.w3.org/XML/1998/namespace") + (synopsis "XML Schema for XML namespace") + (description + "This package provides an XML Schema and its catalog. The schema constrains the +syntax of @code{xml:lang}, @code{xml:spec}, @code{xml:base}, and @code{xml:id} in the +schema language defined by the XML Schema Recommendation Second Edition of 28 October +2004.") + (license license:w3c))) diff --git a/gnu/tests/emacs.scm b/gnu/tests/emacs.scm new file mode 100644 index 0000000000..f15eec70db --- /dev/null +++ b/gnu/tests/emacs.scm @@ -0,0 +1,101 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu tests emacs) + #:use-module (gnu tests) + #:use-module (gnu packages emacs) + #:use-module (gnu packages vim) + #:use-module (gnu services) + #:use-module (gnu system) + #:use-module (gnu system vm) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (srfi srfi-1) + #:export (%test-emacs-native-comp-replacable)) + +(define (run-native-comp-replacable-test old-emacs new-emacs) + (define vm (virtual-machine (marionette-operating-system %simple-os))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (use-modules (gnu build marionette) + (srfi srfi-1) + (srfi srfi-64)) + + (define marionette (make-marionette (list #$vm))) + (define (marionette-emacs-eval emacs code) + (marionette-eval + `(begin + (use-modules (ice-9 rdelim) (ice-9 popen)) + (read-line + (open-pipe* + OPEN_READ + ,emacs "--batch" + ,(string-append "--eval=" code)))) + marionette)) + + (define (emacs-native-comp-dir emacs) + (marionette-emacs-eval emacs "(princ comp-native-version-dir)")) + (define (emacs-abi-hash emacs) + (marionette-emacs-eval emacs "(princ comp-abi-hash)")) + (define (emacs-effective-version emacs) + (marionette-emacs-eval + emacs + "(princ + (format \"%s.%s\" emacs-major-version emacs-minor-version))")) + + (define old-emacs-bin #$(file-append old-emacs "/bin/emacs")) + (define new-emacs-bin #$(file-append new-emacs "/bin/emacs")) + + (test-runner-current (system-test-runner #$output)) + (test-begin "emacs-native-comp-replacable") + (test-equal "comp-abi-hash" + (emacs-abi-hash old-emacs-bin) + (emacs-abi-hash new-emacs-bin)) + (test-equal "native-comp-dir" + (emacs-native-comp-dir old-emacs-bin) + (emacs-native-comp-dir new-emacs-bin)) + (test-assert "old emacs has hierarchical layout" + (file-exists? + (string-append #$old-emacs "/lib/emacs/" + (emacs-effective-version old-emacs-bin) + "/native-lisp/" + (emacs-native-comp-dir old-emacs-bin) + "/preloaded/emacs-lisp/comp.eln"))) + (test-assert "new emacs has hierarchical layout" + (file-exists? + (string-append #$new-emacs "/lib/emacs/" + (emacs-effective-version new-emacs-bin) + "/native-lisp/" + (emacs-native-comp-dir new-emacs-bin) + "/preloaded/emacs-lisp/comp.eln"))) + (test-end)))) + + (gexp->derivation "emacs-native-comp-compatible" test)) + +(define (package-without-replacement pkg) + (package (inherit pkg) (replacement #f))) + +(define %test-emacs-native-comp-replacable + (system-test + (name "emacs-native-comp") + (description "Test whether an emacs replacement (if any) is valid.") + (value (run-native-comp-replacable-test + (package-without-replacement emacs) + emacs)))) |