summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/emacs.scm468
-rw-r--r--gnu/packages/patches/emacs-source-date-epoch.patch20
3 files changed, 191 insertions, 298 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index c817c9c926..31018bb2f3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1093,7 +1093,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-native-comp-driver-options.patch   \
   %D%/packages/patches/emacs-pasp-mode-quote-file-names.patch  \
   %D%/packages/patches/emacs-polymode-fix-lexical-variable-error.patch  \
-  %D%/packages/patches/emacs-source-date-epoch.patch		\
   %D%/packages/patches/emacs-telega-path-placeholder.patch	\
   %D%/packages/patches/emacs-telega-test-env.patch		\
   %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch	\
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 437564f6f0..638c2f7c4e 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -54,6 +54,7 @@
   #:use-module (gnu packages acl)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
@@ -94,20 +95,26 @@
       (srfi srfi-1)
       (ice-9 ftw))))
 
-(define-public emacs
+(define-public emacs-minimal
   (package
-    (name "emacs")
-    (version "28.2")
+    (name "emacs-minimal")
+    (version "29.0.92")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnu/emacs/emacs-"
-                                  version ".tar.xz"))
+              ;; TODO: Restore url-fetch when serving 29.1
+              ;; (method url-fetch)
+              ;; (uri (string-append "mirror://gnu/emacs/emacs-"
+              ;;                     version ".tar.xz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.savannah.gnu.org/git/emacs.git/")
+                    (commit (string-append "emacs-" version))))
               (sha256
                (base32
-                "12144dcaihv2ymfm7g2vnvdl4h71hqnsz1mljzf34cpg6ci1h8gf"))
+                "1h3p325859svcy43iv7wr27dp68049j9d44jq5akcynqdkxz4jjn"))
               (patches (search-patches "emacs-exec-path.patch"
                                        "emacs-fix-scheme-indent-function.patch"
-                                       "emacs-source-date-epoch.patch"))
+                                       "emacs-native-comp-driver-options.patch"
+                                       "emacs-pgtk-super-key-fix.patch"))
               (modules '((guix build utils)))
               (snippet
                '(with-directory-excursion "lisp"
@@ -138,37 +145,14 @@
                             "\"~/.guix-profile/include\""
                             "\"/var/guix/profiles/system/profile/include\"")
                       " ")))))))
-    (build-system glib-or-gtk-build-system)
+    (build-system gnu-build-system)
     (arguments
      (list
-      #:tests? #f                      ; no check target
+      #:tests? #f                       ; no check target
       #:modules (%emacs-modules build-system)
-      #:configure-flags #~(list "--with-modules"
-                                "--with-cairo"
-                                "--with-native-compilation"
-                                "--disable-build-details")
-      #:make-flags #~(list "NATIVE_FULL_AOT=1")
+      #:configure-flags #~(list "--with-gnutls=no" "--disable-build-details")
       #:phases
       #~(modify-phases %standard-phases
-          (add-after 'set-paths 'set-libgccjit-path
-            (lambda* (#:key inputs #:allow-other-keys)
-              (define (first-subdirectory/absolute directory)
-                (let ((files (scandir
-                              directory
-                              (lambda (file)
-                                (and (not (member file '("." "..")))
-                                     (file-is-directory? (string-append
-                                                          directory "/"
-                                                          file)))))))
-                  (and (not (null? files))
-                       (string-append directory "/" (car files)))))
-              (let* ((libgccjit-libdir
-                      (first-subdirectory/absolute ;; version
-                       (first-subdirectory/absolute ;; host type
-                        (search-input-directory inputs "lib/gcc")))))
-                (setenv "LIBRARY_PATH"
-                        (string-append (getenv "LIBRARY_PATH")
-                                       ":" libgccjit-libdir)))))
           (add-after 'unpack 'enable-elogind
             (lambda _
               (substitute* "configure.ac"
@@ -199,20 +183,6 @@
                 (("\\(tramp-compat-process-running-p \"(.*)\"\\)" all process)
                  (format #f "(or ~a (tramp-compat-process-running-p ~s))"
                          all (string-append "." process "-real"))))))
-          (add-after 'unpack 'patch-compilation-driver
-            (lambda _
-              (substitute* "lisp/emacs-lisp/comp.el"
-                (("\\(defcustom native-comp-driver-options nil")
-                 (format
-                  #f "(defcustom native-comp-driver-options '(~@{~s~^ ~})"
-                  (string-append
-                   "-B" #$(this-package-input "binutils") "/bin/")
-                  (string-append
-                   "-B" #$(this-package-input "glibc") "/lib/")
-                  (string-append
-                   "-B" #$(this-package-input "libgccjit") "/lib/")
-                  (string-append
-                   "-B" #$(this-package-input "libgccjit") "/lib/gcc/"))))))
           (add-before 'configure 'fix-/bin/pwd
             (lambda _
               ;; Use `pwd', not `/bin/pwd'.
@@ -254,29 +224,7 @@
                 (delete-file (string-append lisp-dir "/subdirs.el"))
                 ;; Byte compile the site-start files.
                 (emacs-byte-compile-directory lisp-dir))))
-          (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
-            ;; restore the dump file that Emacs installs somewhere in
-            ;; libexec/ to its original state
-            (lambda* (#:key outputs target #:allow-other-keys)
-              (let* ((libexec (string-append (assoc-ref outputs "out")
-                                             "/libexec"))
-                     ;; each of these ought to only match a single file,
-                     ;; but even if not (find-files) sorts by string<,
-                     ;; so the Nth element in one maps to the Nth element of
-                     ;; the other
-                     (pdmp (find-files libexec "\\.pdmp$"))
-                     (pdmp-real (find-files libexec "\\.pdmp-real$")))
-                (for-each rename-file pdmp-real pdmp))))
-          (add-after 'glib-or-gtk-wrap 'strip-double-wrap
-            (lambda* (#:key outputs #:allow-other-keys)
-              ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
-              ;; twice.  This also fixes a minor issue, where WMs would not be
-              ;; able to track emacs back to emacs.desktop.
-              (with-directory-excursion (assoc-ref outputs "out")
-                (copy-file
-                 (car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
-                 "bin/emacs"))))
-          (add-after 'strip-double-wrap 'wrap-emacs-paths
+          (add-after 'install 'wrap-emacs-paths
             (lambda* (#:key inputs outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
                      (lisp-dirs (find-files (string-append out "/share/emacs")
@@ -285,9 +233,9 @@
                 (for-each
                  (lambda (prog)
                    (wrap-program prog
-                     ;; emacs-next and variants rely on uname being in PATH for
-                     ;; Tramp.  Tramp paths can't be hardcoded, because they
-                     ;; need to be portable.
+                     ;; 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")
@@ -300,64 +248,30 @@
                              ;; environment variables from emacs.
                              ;; Likewise, we don't need to patch helper binaries
                              ;; like etags, ctags or ebrowse.
-                             "^emacs(-[0-9]+(\\.[0-9]+)*)?$"))))))))
-    (inputs
-     (list gnutls
-           ncurses
-
-           ;; To "unshadow" ld-wrapper in native builds
-           (make-ld-wrapper "ld-wrapper" #:binutils binutils)
-
-           ;; For native compilation
-           binutils
-           glibc
-           libgccjit
-
-           ;; Required for "core" functionality, such as dired and compression.
-           coreutils
-           gzip
-
-           ;; Avoid Emacs's limited movemail substitute that retrieves POP3
-           ;; email only via insecure channels.
-           ;; This is not needed for (modern) IMAP.
-           mailutils
-
-           gpm
-           libx11
-           gtk+
-           cairo
-           pango
-           harfbuzz
-           libxft
-           libtiff
-           giflib
-           lcms
-           libjpeg-turbo
-           libselinux
-           acl
-           jansson
-           gmp
-           ghostscript
-           poppler
-           elogind
-
-           ;; When looking for libpng `configure' links with `-lpng -lz', so we
-           ;; must also provide zlib as an input.
-           libpng
-           zlib
-           (librsvg-for-system)
-           libxpm
-           libxml2
-           libice
-           libsm
-           alsa-lib
-           dbus
-
-           ;; multilingualization support
-           libotf
-           m17n-lib))
-    (native-inputs
-     (list autoconf pkg-config texinfo))
+                             "^emacs(-[0-9]+(\\.[0-9]+)*)?$")))))
+          (add-after 'wrap-emacs-paths 'undo-double-wrap
+            (lambda* (#:key outputs #:allow-other-keys)
+              ;; Directly copy emacs-X.Y to emacs, so that it is not wrapped
+              ;; twice.  This also fixes a minor issue, where WMs would not be
+              ;; able to track emacs back to emacs.desktop.
+              (with-directory-excursion (assoc-ref outputs "out")
+                (copy-file
+                 (car (find-files "bin" "^emacs-([0-9]+\\.)+[0-9]+$"))
+                 "bin/emacs")))))))
+    (inputs (list bash-minimal coreutils gzip ncurses))
+    (native-inputs (list autoconf pkg-config texinfo))
+    (home-page "https://www.gnu.org/software/emacs/")
+    (synopsis "The extensible text editor (minimal build for byte-compilation)")
+    (description
+     "GNU Emacs is an extensible and highly customizable text editor.  It is
+based on an Emacs Lisp interpreter with extensions for text editing.  Emacs
+has been extended in essentially all areas of computing, giving rise to a
+vast array of packages supporting, e.g., email, IRC and XMPP messaging,
+spreadsheets, remote server editing, and much more.  Emacs includes extensive
+documentation on all aspects of the system, from basic editing to writing
+large Lisp programs.  It has full Unicode support for nearly all human
+languages.")
+    (license license:gpl3+)
     (native-search-paths
      (list (search-path-specification
             (variable "EMACSLOADPATH")
@@ -368,200 +282,200 @@
            (search-path-specification
             (variable "INFOPATH")
             (files '("share/info")))
-           ;; tree-sitter support is not yet available in emacs 28, but this
-           ;; search path won't harm and also will be beneficial for
-           ;; emacs-next and other emacs-* packages, which have tree-sitter
-           ;; support enabled.  Please, remove this comment, when emacs
-           ;; package is updated to 29.
+           ;; Most variants support tree-sitter, so let's include it here.
            (search-path-specification
             (variable "TREE_SITTER_GRAMMAR_PATH")
-            (files '("lib/tree-sitter")))))
+            (files '("lib/tree-sitter")))))))
 
-    (home-page "https://www.gnu.org/software/emacs/")
-    (synopsis "The extensible, customizable, self-documenting text editor")
-    (description
-     "GNU Emacs is an extensible and highly customizable text editor.  It is
-based on an Emacs Lisp interpreter with extensions for text editing.  Emacs
-has been extended in essentially all areas of computing, giving rise to a
-vast array of packages supporting, e.g., email, IRC and XMPP messaging,
-spreadsheets, remote server editing, and much more.  Emacs includes extensive
-documentation on all aspects of the system, from basic editing to writing
-large Lisp programs.  It has full Unicode support for nearly all human
-languages.")
-    (license license:gpl3+)))
-
-(define-public emacs-next
-  (package
-    (inherit emacs)
-    (name "emacs-next")
-    (version "29.0.92")
-    (source
-     (origin
-       (inherit (package-source emacs))
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://git.savannah.gnu.org/git/emacs.git/")
-             (commit (string-append "emacs-" version))))
-       (file-name (git-file-name name version))
-       ;; emacs-source-date-epoch.patch is no longer necessary
-       (patches (search-patches "emacs-exec-path.patch"
-                                "emacs-fix-scheme-indent-function.patch"
-                                "emacs-native-comp-driver-options.patch"))
-       (sha256
-        (base32
-         "1h3p325859svcy43iv7wr27dp68049j9d44jq5akcynqdkxz4jjn"))))
+(define-public emacs-no-x
+  (package/inherit emacs-minimal
+    (name "emacs-no-x")
+    (synopsis "The extensible, customizable, self-documenting text
+editor (console only)")
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs-minimal)
+       ((#:configure-flags flags #~'())
+        #~(cons* "--with-modules" "--with-native-compilation=aot"
+                 (delete "--with-gnutls=no" #$flags)))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            (add-after 'set-paths 'set-libgccjit-path
+              (lambda* (#:key inputs #:allow-other-keys)
+                (define (first-subdirectory/absolute directory)
+                  (let ((files (scandir
+                                directory
+                                (lambda (file)
+                                  (and (not (member file '("." "..")))
+                                       (file-is-directory? (string-append
+                                                            directory "/"
+                                                            file)))))))
+                    (and (not (null? files))
+                         (string-append directory "/" (car files)))))
+                (let* ((libgccjit-libdir
+                        (first-subdirectory/absolute ;; version
+                         (first-subdirectory/absolute ;; host type
+                          (search-input-directory inputs "lib/gcc")))))
+                  (setenv "LIBRARY_PATH"
+                          (string-append (getenv "LIBRARY_PATH")
+                                         ":" libgccjit-libdir)))))
+            (add-after 'unpack 'patch-compilation-driver
+              (lambda _
+                (substitute* "lisp/emacs-lisp/comp.el"
+                  (("\\(defcustom native-comp-driver-options nil")
+                   (format
+                    #f "(defcustom native-comp-driver-options '(~@{~s~^ ~})"
+                    (string-append
+                     "-B" #$(this-package-input "binutils") "/bin/")
+                    (string-append
+                     "-B" #$(this-package-input "glibc") "/lib/")
+                    (string-append
+                     "-B" #$(this-package-input "libgccjit") "/lib/")
+                    (string-append
+                     "-B" #$(this-package-input "libgccjit") "/lib/gcc/"))))))))))
     (inputs
-     (modify-inputs (package-inputs emacs)
-       (prepend sqlite)))
-    (native-inputs
-     (modify-inputs (package-native-inputs emacs)
-       (prepend autoconf)))))
+     (modify-inputs (package-inputs emacs-minimal)
+       (prepend gnutls
+                ;; To "unshadow" ld-wrapper in native builds
+                (make-ld-wrapper "ld-wrapper" #:binutils binutils)
+                ;; For native compilation
+                binutils
+                glibc
+                libgccjit
 
-(define-public emacs-next-tree-sitter
-  (package
-    (inherit emacs-next)
-    (name "emacs-next-tree-sitter")
-    (inputs
-     (modify-inputs (package-inputs emacs-next)
-       (prepend sqlite tree-sitter)))
-    (synopsis "Emacs text editor with @code{tree-sitter} support")
-    (description "This Emacs build supports tree-sitter.")))
+                ;; Avoid Emacs's limited movemail substitute that retrieves POP3
+                ;; email only via insecure channels.
+                ;; This is not needed for (modern) IMAP.
+                mailutils
 
-(define-public emacs-next-pgtk
-  (package
-    (inherit emacs-next-tree-sitter)
-    (name "emacs-next-pgtk")
-    (source
-     (origin
-       (inherit (package-source emacs-next-tree-sitter))
-       (patches
-        (append (search-patches "emacs-pgtk-super-key-fix.patch")
-                (origin-patches (package-source emacs-next-tree-sitter))))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments emacs-next-tree-sitter)
-       ((#:configure-flags flags #~'())
-        #~(cons* "--with-pgtk" #$flags))))
-    (synopsis "Emacs text editor with @code{pgtk} and @code{tree-sitter} support")
-    (description "This Emacs build implements graphical UI purely in terms
-of GTK and supports tree-sitter.")))
+                acl
+                alsa-lib
+                elogind
+                ghostscript
+                gpm
+                jansson
+                lcms
+                libice
+                libselinux
+                libsm
+                libxml2
+                m17n-lib
+                sqlite
+                tree-sitter
+                zlib)))))
 
-(define-public emacs-next-pgtk-xwidgets
-  (package
-    (inherit emacs-next-pgtk)
-    (name "emacs-next-pgtk-xwidgets")
-    (synopsis "Emacs text editor with @code{xwidgets} and @code{pgtk} support")
+(define-public emacs
+  (package/inherit emacs-no-x
+    (name "emacs")
+    (synopsis "The extensible, customizable, self-documenting text editor")
+    (build-system glib-or-gtk-build-system)
     (arguments
-     (substitute-keyword-arguments (package-arguments emacs-next-pgtk)
+     (substitute-keyword-arguments (package-arguments emacs-no-x)
+       ((#:modules _) (%emacs-modules build-system))
        ((#:configure-flags flags #~'())
-        #~(cons "--with-xwidgets" #$flags))))
-    (inputs
-     (modify-inputs (package-inputs emacs-next-pgtk)
-       (prepend gsettings-desktop-schemas webkitgtk-with-libsoup2)))))
+        #~(cons* "--with-cairo" #$flags))
+       ((#:phases phases)
+        #~(modify-phases #$phases
+            ;; Note: due to the changed #:modules, %standard-phases in #$phases
+            ;; refers to glib-or-gtk:%standard-phases, so we don't need to add
+            ;; them ourselves.
+            (add-after 'glib-or-gtk-wrap 'restore-emacs-pdmp
+              ;; Restore the dump file that Emacs installs somewhere in
+              ;; libexec/ to its original state.
+              (lambda* (#:key outputs target #:allow-other-keys)
+                (let* ((libexec (string-append (assoc-ref outputs "out")
+                                               "/libexec"))
+                       ;; each of these ought to only match a single file,
+                       ;; but even if not (find-files) sorts by string<,
+                       ;; so the Nth element in one maps to the Nth element of
+                       ;; the other
+                       (pdmp (find-files libexec "\\.pdmp$"))
+                       (pdmp-real (find-files libexec "\\.pdmp-real$")))
+                  (for-each rename-file pdmp-real pdmp))))))))
+    (inputs (modify-inputs (package-inputs emacs-no-x)
+              (prepend
+               cairo
+               dbus
+               gtk+
+               giflib
+               harfbuzz
+               libjpeg-turbo
+               libotf
+               libpng
+               (librsvg-for-system)
+               libtiff
+               libx11
+               libxft
+               libxpm
+               pango
+               poppler)))))
 
-(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.
+(define-public emacs-pgtk
   (package/inherit emacs
-    (name "emacs-minimal")
-    (synopsis "The extensible text editor (used only for byte-compilation)")
-    (build-system gnu-build-system)
+    (name "emacs-pgtk")
     (arguments
      (substitute-keyword-arguments (package-arguments emacs)
        ((#:configure-flags flags #~'())
-        #~(list "--with-gnutls=no" "--disable-build-details"))
-       ((#:modules _) (%emacs-modules build-system))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            (delete 'set-libgccjit-path)
-            (delete 'patch-compilation-driver)
-            (delete 'restore-emacs-pdmp)
-            (delete 'strip-double-wrap)))))
-    (inputs (list ncurses coreutils gzip))
-    (native-inputs (list autoconf pkg-config))))
+        #~(cons* "--with-pgtk" #$flags))))
+    (synopsis "Emacs text editor with @code{pgtk} frames")
+    (description "This Emacs build implements graphical UI purely in terms
+of GTK.")))
 
 (define-public emacs-xwidgets
   (package/inherit emacs
     (name "emacs-xwidgets")
     (synopsis "The extensible, customizable, self-documenting text
 editor (with xwidgets support)")
-    (build-system gnu-build-system)
     (arguments
      (substitute-keyword-arguments (package-arguments emacs)
        ((#:configure-flags flags #~'())
-        #~(cons "--with-xwidgets" #$flags))
-       ((#:modules _) (%emacs-modules build-system))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            (delete 'restore-emacs-pdmp)
-            (delete 'strip-double-wrap)))))
+        #~(cons "--with-xwidgets" #$flags))))
     (inputs
      (modify-inputs (package-inputs emacs)
        (prepend webkitgtk-with-libsoup2 libxcomposite)))))
 
+(define-public emacs-pgtk-xwidgets
+  (package
+    (inherit emacs-pgtk)
+    (name "emacs-pgtk-xwidgets")
+    (synopsis "Emacs text editor with @code{xwidgets} and @code{pgtk} support")
+    (arguments
+     (substitute-keyword-arguments (package-arguments emacs-pgtk)
+       ((#:configure-flags flags #~'())
+        #~(cons "--with-xwidgets" #$flags))))
+    (inputs
+     (modify-inputs (package-inputs emacs-pgtk)
+       (prepend gsettings-desktop-schemas webkitgtk-with-libsoup2)))))
+
 (define-public emacs-motif
-  (package/inherit emacs
+  (package/inherit emacs-no-x
     (name "emacs-motif")
     (synopsis
      "The extensible, customizable, self-documenting text editor (with Motif
 toolkit)")
-    (build-system gnu-build-system)
+    ;; Using emacs' inputs as base, since it has all the graphical stuff
     (inputs (modify-inputs (package-inputs emacs)
               (delete "gtk+")
               (prepend inotify-tools motif)))
     (arguments
      (substitute-keyword-arguments
-         (package-arguments
-          emacs)
+         (package-arguments emacs-no-x)
        ((#:configure-flags flags #~'())
         #~(cons "--with-x-toolkit=motif"
-                #$flags))
-       ((#:modules _)
-        (%emacs-modules build-system))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            (delete 'restore-emacs-pdmp)
-            (delete 'strip-double-wrap)))))))
-
-(define-public emacs-no-x
-  (package/inherit emacs
-    (name "emacs-no-x")
-    (synopsis "The extensible, customizable, self-documenting text
-editor (console only)")
-    (build-system gnu-build-system)
-    (inputs (modify-inputs (package-inputs emacs)
-              (delete "libx11" "gtk+" "libxft" "libtiff" "giflib" "libjpeg"
-                      "imagemagick" "libpng" "librsvg" "libxpm" "libice"
-                      "libsm" "cairo" "pango" "harfbuzz"
-                      ;; These depend on libx11, so remove them as well.
-                      "libotf" "m17n-lib" "dbus")))
-    (arguments
-     (substitute-keyword-arguments (package-arguments emacs)
-       ((#:configure-flags flags #~'())
-        #~(delete "--with-cairo" #$flags))
-       ((#:modules _) (%emacs-modules build-system))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            (delete 'restore-emacs-pdmp)
-            (delete 'strip-double-wrap)))))))
+                #$flags))))))
 
 (define-public emacs-no-x-toolkit
-  (package/inherit emacs
+  (package/inherit emacs-no-x
     (name "emacs-no-x-toolkit")
     (synopsis "The extensible, customizable, self-documenting text
 editor (without an X toolkit)" )
-    (build-system gnu-build-system)
+    ;; Using emacs' inputs as base, since it has all the graphical stuff
     (inputs (modify-inputs (package-inputs emacs)
               (delete "gtk+")
               (prepend inotify-tools)))
     (arguments
-     (substitute-keyword-arguments (package-arguments emacs)
+     (substitute-keyword-arguments (package-arguments emacs-no-x)
        ((#:configure-flags flags #~'())
-        #~(cons "--with-x-toolkit=no" #$flags))
-       ((#:modules _) (%emacs-modules build-system))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-           (delete 'restore-emacs-pdmp)
-           (delete 'strip-double-wrap)))))))
+        #~(cons "--with-x-toolkit=no" #$flags))))))
 
 (define-public emacs-wide-int
   (package/inherit emacs
diff --git a/gnu/packages/patches/emacs-source-date-epoch.patch b/gnu/packages/patches/emacs-source-date-epoch.patch
deleted file mode 100644
index 77ea7ac15c..0000000000
--- a/gnu/packages/patches/emacs-source-date-epoch.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Honor SOURCE_DATE_EPOCH variable to avoid non-determinism in generated
-"autoloads" files.
-
---- a/lisp/emacs-lisp/autoload.el
-+++ b/lisp/emacs-lisp/autoload.el
-@@ -419,8 +419,12 @@
-   ;;              nil t))
-   ;;        (match-end 2))))
-   (insert generate-autoload-section-header)
--  (prin1 `(autoloads ,autoloads ,load-name ,file ,time)
--	 outbuf)
-+  (let* ((env  (getenv "SOURCE_DATE_EPOCH"))
-+         (time (if env
-+                   (seconds-to-time (string-to-number env))
-+                 time)))
-+    (prin1 `(autoloads ,autoloads ,load-name ,file ,time)
-+           outbuf))
-   (terpri outbuf)
-   ;; Break that line at spaces, to avoid very long lines.
-   ;; Make each sub-line into a comment.