aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/emacs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/emacs.scm')
-rw-r--r--gnu/packages/emacs.scm93
1 files changed, 73 insertions, 20 deletions
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 16ee12ac65..c5b57211dd 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2017, 2019, 2020, 2023, 2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2017, 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2017, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -546,7 +546,7 @@ toolkit)")
(package/inherit emacs-no-x
(name "emacs-no-x-toolkit")
(synopsis "The extensible, customizable, self-documenting text
-editor (without an X toolkit)" )
+editor (without X toolkit)" )
;; Using emacs' inputs as base, since it has all the graphical stuff
(inputs (modify-inputs (package-inputs emacs)
(delete "gtk+")
@@ -567,12 +567,12 @@ editor (with wide ints)" )
#~(cons "--with-wide-int" #$flags))))))
(define-public emacs-next-minimal
- (let ((commit "9a1c76bf7ff49d886cc8e1a3f360d71e62544802")
- (revision "1"))
+ (let ((commit "881d593a9879f3355733f1b627af7cc0c12b429e")
+ (revision "0"))
(package
(inherit emacs-minimal)
(name "emacs-next-minimal")
- (version (git-version "30.0.91" revision commit))
+ (version (git-version "30.0.92" revision commit))
(source
(origin
(method git-fetch)
@@ -581,7 +581,7 @@ editor (with wide ints)" )
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1m1qbdqj1p994wz6flxcswv5c3qqbvjyjfsv0dh65qqq2ph7g4jz"))
+ (base32 "0nj3a7wsl5piqf6a8wnmfyjbpxp2dwl0r48flv9q624jx4nxfr2p"))
(patches
(search-patches "emacs-next-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
@@ -629,44 +629,97 @@ editor (with wide ints)" )
(deprecated-package "emacs-next-tree-sitter" emacs-next))
(define-public guile-emacs
- (let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")
+ (let ((upstream-version "31.0.50")
+ (commit "8f87cbc1dae6a9e77368afc5736df8c342e9153d")
(revision "0"))
(package
(inherit emacs)
(name "guile-emacs")
- (version (git-version "0.0.0" revision commit))
+ (version (git-version upstream-version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://git.hcoop.net/git/bpt/emacs.git")
+ (url "https://codeberg.org/lyrra/guilemacs")
(commit commit)))
(file-name (git-file-name name version))
- (patches (search-patches "guile-emacs-fix-configure.patch"))
+ (patches (search-patches "guile-emacs-build-fixes.patch"))
(sha256
(base32
- "0lvcvsz0f4mawj04db35p1dvkffdqkz8pkhc0jzh9j9x2i63kcz6"))))
+ "1yhxy6d5i673y35i66d2x975zih3cw6p59ylsb8xk68wds6s7xrl"))))
(native-inputs
(modify-inputs (package-native-inputs emacs)
(prepend autoconf automake guile-for-guile-emacs)))
+ (home-page "https://guile-emacs.org")
(arguments
- (substitute-keyword-arguments `(;; Build fails if we allow parallel build.
- #:parallel-build? #f
- ;; Tests aren't passing for now.
+ (substitute-keyword-arguments `(;; Tests aren't passing for now.
#:tests? #f
+ #:strip-binaries? #f
,@(package-arguments emacs))
((#:configure-flags flags ''())
- #~(delete "--with-cairo" #$flags))
+ #~`("CFLAGS=-Og -ggdb3"
+ "--with-native-compilation=no"
+ "--without-modules"
+ "--without-threads"
+ "--with-jpeg=no"
+ "--without-cairo"
+ "--without-tree-sitter"
+ ,@(fold delete #$flags '("--with-cairo"
+ "--with-modules"
+ "--with-native-compilation=aot"))))
+ ((#:make-flags flags #~'())
+ #~(list "V=1"))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'autogen
(lambda _
(invoke "sh" "autogen.sh")))
- ;; Build sometimes fails: deps/dispnew.d: No such file or directory
- (add-before 'build 'make-deps-dir
- (lambda _
- (invoke "mkdir" "-p" "src/deps")))
+ (delete 'patch-compilation-driver)
+ (delete 'set-libgccjit-path)
+ (delete 'validate-comp-integrity)
(delete 'restore-emacs-pdmp)
- (delete 'strip-double-wrap))))))))
+ (delete 'build-trampolines)
+ (delete 'install-site-start)
+ (replace 'wrap-emacs-paths
+ ;; Restrict EMACSLOADPATH to builtin packages.
+ (lambda _
+ (let ((lisp-dirs (list (string-append
+ #$output "/share/emacs/"
+ #$upstream-version "/lisp")))
+ (inputs '#$(map (match-lambda
+ ((name directory)
+ #~(#$name . #$directory)))
+ (package-inputs this-package))))
+ (for-each
+ (lambda (prog)
+ (wrap-program prog
+ ;; Some variants rely on uname being in PATH for Tramp.
+ ;; Tramp paths can't be hardcoded, because they need to
+ ;; be portable.
+ `("PATH" suffix
+ ,(map dirname
+ (list (search-input-file inputs "/bin/gzip")
+ ;; for coreutils
+ (search-input-file inputs "/bin/yes"))))
+ ;; We use "=" because loading non-builtin packages is
+ ;; currently not supported and prevents guile-emacs
+ ;; from running.
+ `("EMACSLOADPATH" = ,lisp-dirs)))
+ (find-files
+ (string-append #$output "/bin")
+ ;; Matches versioned and unversioned emacs binaries.
+ ;; We don't patch emacsclient, because it takes its
+ ;; environment variables from emacs.
+ ;; Likewise, we don't need to patch helper binaries
+ ;; like etags, ctags or ebrowse.
+ "^emacs(-[0-9]+(\\.[0-9]+)*)?$")))))
+ (add-after 'unpack 'help-patch-progam-file-names
+ (lambda _
+ (call-with-output-file "lisp/obsolete/terminal.el"
+ (lambda (port) (display port)))))
+ (add-after 'configure 'touch-lisp/finder-inf.el
+ (lambda _
+ (call-with-output-file "lisp/finder-inf.el"
+ (lambda (port) (display port))))))))))))
(define-public m17n-db
(package