diff options
Diffstat (limited to 'gnu/packages/emacs.scm')
-rw-r--r-- | gnu/packages/emacs.scm | 93 |
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 |