* gnu/packages/emacs.scm (emacs): Update to 27.1.
[arguments]: Add --with-cairo and --with-modules to #:configure-flags. Add
restore-emacs-pdump phase.
[inputs]: Add cairo, libxaw, jansson, gmp, and harfbuzz. Remove imagemagick
and libxft.
[native-inputs]: Add texlive.
(emacs-wide-int): Mark as deprecated package.
(emacs-no-x):
[arguments]: Add --with-jpeg=no --with-gif=no --with-tiff=no
to #:configure-flags.
---
Hello!
Your patch didn't build for me so I made some slight changes. I added
libxaw as an input, and added some configure flags to emacs-no-x.
I'm now using this patch to run Emacs 27.1 on my main machine
(inadvisable I know), and my personal config is running flawlessy with
the exception of emacs-clojure-mode, emacs-elisp-regs, and
emacs-helpful.
Hopefully this helps!
Morgan
gnu/packages/emacs.scm | 76 +++++++++++++++++++++++++-----------------
1 file changed, 46 insertions(+), 30 deletions(-)
Toggle diff (162 lines)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ad8d4b0606..48ae899dcf 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -58,9 +58,9 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image)
- #:use-module (gnu packages imagemagick)
#:use-module (gnu packages linux) ; alsa-lib
#:use-module (gnu packages mail) ; for mailutils
+ #:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
@@ -75,15 +75,14 @@
(define-public emacs
(package
(name "emacs")
- (version "26.3")
+ (version "27.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emacs/emacs-"
version ".tar.xz"))
(sha256
- (base32
- "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d"))
- (patches (search-patches "emacs-exec-path.patch"
+ (base32 "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a"))
+ (patches (search-patches "emacs27-exec-path.patch"
"emacs-fix-scheme-indent-function.patch"
"emacs-ignore-empty-xim-styles.patch"
"emacs-source-date-epoch.patch"))
@@ -94,16 +93,7 @@
;; autoloads.
(for-each delete-file
(append (find-files "." "\\.elc$")
- (find-files "." "loaddefs\\.el$")
- ;; This is the only "autoloads" file that
- ;; does not have "*loaddefs.el" name.
- ;; TODO: Next time changing this package,
- ;; replace the following with a call to
- ;; `find-files', so that `delete-file'
- ;; wouldn't error out when the file is
- ;; missing, making the entire snippet field
- ;; reusable as-is for `emacs-next' below.
- '("eshell/esh-groups.el")))
+ (find-files "." "loaddefs\\.el$")))
;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns
@@ -130,6 +120,9 @@
(arguments
`(#:tests? #f ; no check target
#:configure-flags (list "--with-modules"
+ ;; --with-cairo will become the default in
+ ;; Emacs 28
+ "--with-cairo"
"--disable-build-details")
#:phases
(modify-phases %standard-phases
@@ -180,9 +173,35 @@
;; which leads to conflicts.
(delete-file (string-append lisp-dir "/subdirs.el"))
;; Byte compile the site-start files.
- (emacs-byte-compile-directory lisp-dir)))))))
+ (emacs-byte-compile-directory lisp-dir))))
+ ;; Needed when building from git
+ (add-before
+ 'reset-gzip-timestamps
+ 'make-compressed-files-writable
+ (lambda _
+ (for-each make-file-writable
+ (find-files %output ".*\\.t?gz$"))
+ #t))
+ ;; restore the dump file that Emacs installs somewhere in
+ ;; libexec/ to its original state
+ (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
+ (lambda* (#:key outputs target #:allow-other-keys)
+ (let* ((libexec (string-append (assoc-ref outputs "out")
+ "/libexec"))
+ ;; each of these find-files should return one file
+ (pdmp (find-files libexec "^emacs\\.pdmp$"))
+ (pdmp-real (find-files libexec
+ "^\\.emacs\\.pdmp-real$")))
+ (when (not (null? pdmp-real))
+ (for-each (lambda (wrapper real)
+ (delete-file wrapper)
+ (rename-file real wrapper))
+ pdmp pdmp-real))
+ #t))))))
(inputs
`(("gnutls" ,gnutls)
+ ("jansson" ,jansson)
+ ("harfbuzz" ,harfbuzz)
("ncurses" ,ncurses)
;; Avoid Emacs's limited movemail substitute that retrieves POP3 email
@@ -190,13 +209,14 @@
("mailutils" ,mailutils)
;; TODO: Add the optional dependencies.
+ ("cairo" ,cairo)
("libx11" ,libx11)
+ ("libxaw" ,libxaw)
("gtk+" ,gtk+)
- ("libxft" ,libxft)
("libtiff" ,libtiff)
("giflib" ,giflib)
+ ("gmp" ,gmp)
("libjpeg" ,libjpeg-turbo)
- ("imagemagick" ,imagemagick)
("acl" ,acl)
;; When looking for libpng `configure' links with `-lpng -lz', so we
@@ -360,7 +380,8 @@ languages.")
`(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el"))
("ncurses" ,ncurses)))
(native-inputs
- `(("pkg-config" ,pkg-config)))))
+ `(("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))))
(define-public emacs-xwidgets
(package
@@ -384,11 +405,14 @@ editor (with xwidgets support)")
(synopsis "The extensible, customizable, self-documenting text
editor (console only)")
(build-system gnu-build-system)
+ (arguments
+ (substitute-keyword-arguments (package-arguments emacs)
+ ((#:configure-flags flags ''())
+ `(list "--with-jpeg=no" "--with-gif=no" "--with-tiff=no"))))
(inputs (fold alist-delete
(package-inputs emacs)
'("libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
- "imagemagick" "libpng" "librsvg" "libxpm" "libice"
- "libsm"
+ "libpng" "librsvg" "libxpm" "libice" "libsm"
;; These depend on libx11, so remove them as well.
"libotf" "m17n-lib" "dbus")))))
@@ -407,15 +431,7 @@ editor (without an X toolkit)" )
`(cons "--with-x-toolkit=no" ,cf)))))))
(define-public emacs-wide-int
- (package
- (inherit emacs)
- (name "emacs-wide-int")
- (synopsis "The extensible, customizable, self-documenting text
-editor (with wide ints)" )
- (arguments
- (substitute-keyword-arguments (package-arguments emacs)
- ((#:configure-flags flags)
- `(cons "--with-wide-int" ,flags))))))
+ (deprecated-package "emacs-wide-int" emacs))
(define-public guile-emacs
(let ((commit "41120e0f595b16387eebfbf731fff70481de1b4b")
--
2.28.0