all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Morgan.J.Smith@outlook.com
To: 42738@debbugs.gnu.org
Cc: levenson@mmer.org, dnbarbato@posteo.de, cjpeople2013@gmail.com,
	Morgan Smith <Morgan.J.Smith@outlook.com>,
	guix-devel@gnu.org, jackhill@jackhill.us, mike@rohleder.de
Subject: [bug#42738] [PATCH v4] gnu: emacs: Update to 27.1.
Date: Thu, 27 Aug 2020 17:59:36 -0400	[thread overview]
Message-ID: <DM5PR1001MB210589E35972B5314D4D8381C5550@DM5PR1001MB2105.namprd10.prod.outlook.com> (raw)
In-Reply-To: <20200819040941.32696-1-jackhill@jackhill.us>

From: Morgan Smith <Morgan.J.Smith@outlook.com>

* 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(-)

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





  reply	other threads:[~2020-08-27 22:03 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-07  3:21 [bug#42738] [Work in progress] gnu: emacs: update to 27.1 Jack Hill
2020-08-07  3:23 ` [bug#42738] [PATCH] gnu: emacs: Update to 27.1-rc1 Jack Hill
2020-08-18  6:23 ` [bug#42738] [Work in progress] gnu: emacs: update to 27.1 Jack Hill
2020-08-18  6:26   ` [bug#42738] [PATCH v2] gnu: emacs: Update " Jack Hill
2020-08-18  8:57     ` Alexey Abramov
2020-08-18 13:04   ` [bug#42738] [Work in progress] gnu: emacs: update " Michael Rohleder
2020-08-19  4:08     ` Jack Hill
2020-08-19  4:09       ` [bug#42738] [PATCH v3] gnu: emacs: Update " Jack Hill
2020-08-27 21:59         ` Morgan.J.Smith [this message]
2020-08-28  5:35           ` [bug#42738] [PATCH v4] " Jack Hill
2020-08-28 14:18           ` Ludovic Courtès
2020-08-28 14:38             ` Pierre Neidhardt
2020-08-28 17:00             ` [bug#42738] " Brett Gilio
2020-08-28 17:08               ` Jack Hill
2020-08-28 17:34               ` Amin Bandali
2020-08-28 20:04                 ` Mark H Weaver
2020-08-29 10:13                   ` Ludovic Courtès
2020-08-29 21:53                     ` Mark H Weaver
2020-09-07  9:00                       ` Ludovic Courtès
2020-08-28 18:57             ` Mark H Weaver
2020-08-28 21:10               ` Morgan Smith
2020-08-28 21:10                 ` [bug#42738] " Morgan Smith
2020-08-29 20:35                 ` Mark H Weaver
2020-08-30  1:50                   ` [bug#42738] " Brett Gilio
2020-08-29 17:19               ` Giovanni Biscuolo
2020-09-04  9:03                 ` Pierre Neidhardt
2020-09-04  9:16                   ` [bug#42738] " Pierre Neidhardt
2020-09-04 10:20                     ` Giovanni Biscuolo
2020-09-07  9:44                       ` Pierre Neidhardt
2020-08-19  8:22       ` [bug#42738] [Work in progress] gnu: emacs: update " Diego Nicola Barbato
2020-08-19 13:53       ` Michael Rohleder
2020-08-19  2:53 ` [bug#42738] [PATCH v2] gnu: emacs: Update to 27.1. (fwd) Jack Hill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DM5PR1001MB210589E35972B5314D4D8381C5550@DM5PR1001MB2105.namprd10.prod.outlook.com \
    --to=morgan.j.smith@outlook.com \
    --cc=42738@debbugs.gnu.org \
    --cc=cjpeople2013@gmail.com \
    --cc=dnbarbato@posteo.de \
    --cc=guix-devel@gnu.org \
    --cc=jackhill@jackhill.us \
    --cc=levenson@mmer.org \
    --cc=mike@rohleder.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.