GNU bug report logs -
#38662
[PATCH] gnu: Add emacs-next.
Previous Next
Reported by: Amin Bandali <bandali <at> gnu.org>
Date: Wed, 18 Dec 2019 20:06:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Mon, 23 Dec 2019 19:26:30 +0100
with message-id <87lfr2j3u1.fsf <at> gnu.org>
and subject line Re: [bug#38662] [PATCH] gnu: Add emacs-next.
has caused the debbugs.gnu.org bug report #38662,
regarding [PATCH] gnu: Add emacs-next.
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
38662: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=38662
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Add `emacs-next' for building latest Emacs from git.
* gnu/packages/emacs.scm (emacs-next): New variable.
(emacs): make the autoload deletion snippet not fail when eshell/esh-groups.el
does not exist. This enables reuse of the entire snippet field of `emacs' for
`emacs-next'.
---
gnu/packages/emacs.scm | 64 +++++++++++++++++++-
gnu/packages/patches/emacs27-exec-path.patch | 12 ++++
2 files changed, 73 insertions(+), 3 deletions(-)
create mode 100644 gnu/packages/patches/emacs27-exec-path.patch
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index eba7f88551..102754deed 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -17,6 +17,9 @@
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe <at> gmail.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me <at> tobias.gr>
;;; Copyright © 2019 Jesse John Gildersleve <jessejohngildersleve <at> zohomail.eu>
+;;; Copyright © 2019 Valentin Ignatev <valentignatev <at> gmail.com>
+;;; Copyright © 2019 Leo Prikler <leo.prikler <at> student.tugraz.at>
+;;; Copyright © 2019 Amin Bandali <bandali <at> gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -61,6 +64,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
+ #:use-module (gnu packages web) ; for jansson
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
@@ -83,15 +87,15 @@
"emacs-source-date-epoch.patch"))
(modules '((guix build utils)))
(snippet
- ;; Delete the bundled byte-compiled elisp files and
- ;; generated autoloads.
'(with-directory-excursion "lisp"
+ ;; Delete the bundled byte-compiled elisp files and generated
+ ;; 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.
- '("eshell/esh-groups.el")))
+ (find-files "." "eshell/esh-groups\\.el$")))
;; Make sure Tramp looks for binaries in the right places on
;; remote Guix System machines, where 'getconf PATH' returns
@@ -211,6 +215,60 @@ large Lisp programs. It has full Unicode support for nearly all human
languages.")
(license license:gpl3+)))
+(define-public emacs-next
+ (let ((commit "6008b679f65f8377a1a1b4601024ac83df013caf")
+ (revision "0"))
+ (package
+ (inherit emacs)
+ (name "emacs-next")
+ (version (git-version "27" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/emacs.git")
+ (commit commit)))
+ (sha256 (base32 "0niamywp3cq05hqc7k693c3d12jbqbzbfgl4aza9dja0jidv4b80"))
+ (file-name (git-file-name name version))
+ (patches (search-patches "emacs27-exec-path.patch"
+ "emacs-fix-scheme-indent-function.patch"
+ "emacs-source-date-epoch.patch"))
+ (modules (origin-modules (package-source emacs)))
+ (snippet (origin-snippet (package-source emacs)))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments emacs)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ ;; The 'reset-gzip-timestamps phase will throw a
+ ;; permission error if gzip files aren't writable then
+ (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$")))
+ (for-each (lambda (wrapper real)
+ (delete-file wrapper)
+ (rename-file real wrapper))
+ pdmp pdmp-real)
+ #t)))))))
+ (inputs
+ `(("jansson" ,jansson)
+ ,@(package-inputs emacs)))
+ (native-inputs
+ `(("autoconf" ,autoconf) ; needed when building from trunk
+ ,@(package-native-inputs emacs))))))
+
(define-public emacs-minimal
;; This is the version that you should use as an input to packages that just
;; need to byte-compile .el files.
diff --git a/gnu/packages/patches/emacs27-exec-path.patch b/gnu/packages/patches/emacs27-exec-path.patch
new file mode 100644
index 0000000000..368fa6e33a
--- /dev/null
+++ b/gnu/packages/patches/emacs27-exec-path.patch
@@ -0,0 +1,12 @@
+--- a/lisp/loadup.el
++++ b/lisp/loadup.el
+@@ -479,7 +479,8 @@ lost after dumping")))
+ ((equal dump-mode "dump") "emacs")
+ ((equal dump-mode "bootstrap") "emacs")
+ ((equal dump-mode "pbootstrap") "bootstrap-emacs.pdmp")
+- (t (error "unrecognized dump mode %s" dump-mode)))))
++ (t (error "unrecognized dump mode %s" dump-mode))))
++ (exec-path nil))
+ (message "Dumping under the name %s" output)
+ (condition-case ()
+ (delete-file output)
--
2.23.0
[Message part 3 (message/rfc822, inline)]
Hi Amin,
Amin Bandali <bandali <at> gnu.org> skribis:
> Thanks for the all feedback. Below you will find v2 with the requested
> changes, as well as a workaround for "EMACSLOADPATH" to use the correct
> version name, currently 27.0.50, for `emacs-next', which I forgot to
> include in my previous patch.
>
> From 3a03851868440c6c0bda81b30693e3ead1196bd2 Mon Sep 17 00:00:00 2001
> From: Amin Bandali <bandali <at> gnu.org>
> Date: Tue, 17 Dec 2019 23:49:49 -0500
> Subject: [PATCH v2] gnu: Add emacs-next.
>
> Add `emacs-next' for building latest Emacs from git.
>
> * gnu/packages/emacs.scm (emacs-next): New variable.
> (emacs): make the autoload deletion snippet not fail when eshell/esh-groups.el
> does not exist. This enables reuse of the entire snippet field of `emacs' for
> `emacs-next'.
> * gnu/packages/patches/emacs27-exec-path.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Add the above patch file to it.
Applied, thanks!
Ludo’.
This bug report was last modified 5 years and 234 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.