Package: guix-patches;
Reported by: Morgan Smith <Morgan.J.Smith <at> outlook.com>
Date: Mon, 24 Feb 2025 20:05:02 UTC
Severity: normal
Tags: patch
Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Morgan Smith <Morgan.J.Smith <at> outlook.com> To: 76529 <at> debbugs.gnu.org Cc: Morgan Smith <Morgan.J.Smith <at> outlook.com>, Andrew Tropin <andrew <at> trop.in>, Divya Ranjan Pattanaik <divya <at> subvertising.org>, Ian Eure <ian <at> retrospec.tv>, Katherine Cox-Buday <cox.katherine.e+guix <at> gmail.com>, Liliana Marie Prikler <liliana.prikler <at> gmail.com> Subject: [bug#76529] [PATCH v2 1/4] gnu: emacs: Update to 30.1. Date: Wed, 26 Feb 2025 12:39:43 -0500
* gnu/packages/emacs.scm (emacs-minimal): Update to 30.1. (guile-emacs): Remove now unneeded phase. * gnu/packages/aux-files/emacs/comp-integrity.el: Replace with gnu/packages/aux-files/emacs/comp-integrity-next.el. * gnu/packages/aux-files/emacs/comp-integrity-next.el: Delete. * Makefile.am: Unregister gnu/packages/aux-files/emacs/comp-integrity-next.el. * gnu/packages/patches/emacs-exec-path.patch: Replace with gnu/packages/patches/emacs-next-exec-path.patch. * gnu/packages/patches/emacs-native-comp-driver-options.patch: Replace with gnu/packages/patches/emacs-next-native-comp-driver-options.patch. * gnu/packages/patches/emacs-native-comp-fix-filenames.patch: Replace with gnu/packages/patches/emacs-next-native-comp-fix-filenames.patch. Change-Id: Ic144329bfe5a126a5d7e86dd0fdb726cf92de175 --- Makefile.am | 1 - .../aux-files/emacs/comp-integrity-next.el | 121 ------------------ .../aux-files/emacs/comp-integrity.el | 39 ++---- gnu/packages/emacs.scm | 9 +- gnu/packages/patches/emacs-exec-path.patch | 26 ++-- .../emacs-native-comp-driver-options.patch | 7 +- .../emacs-native-comp-fix-filenames.patch | 93 +++++++------- 7 files changed, 84 insertions(+), 212 deletions(-) delete mode 100644 gnu/packages/aux-files/emacs/comp-integrity-next.el diff --git a/Makefile.am b/Makefile.am index 4091a52387..2eee49c78e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -438,7 +438,6 @@ dist_noinst_DATA = \ AUX_FILES = \ gnu/packages/aux-files/chromium/master-preferences.json \ gnu/packages/aux-files/emacs/comp-integrity.el \ - gnu/packages/aux-files/emacs/comp-integrity-next.el \ gnu/packages/aux-files/emacs/guix-emacs.el \ gnu/packages/aux-files/findclass.php \ gnu/packages/aux-files/guix.vim \ diff --git a/gnu/packages/aux-files/emacs/comp-integrity-next.el b/gnu/packages/aux-files/emacs/comp-integrity-next.el deleted file mode 100644 index 74ee0952f4..0000000000 --- a/gnu/packages/aux-files/emacs/comp-integrity-next.el +++ /dev/null @@ -1,121 +0,0 @@ -(require 'ert) - -(eval-when-compile - (defmacro expect-feature (&optional feature) - `(progn - (eval-when-compile - (or (not ',feature) - (require ',feature))))) - - (defmacro expect-native (fun &optional feature) - `(progn - (expect-feature ,feature) - (should (native-comp-function-p (symbol-function ',fun))))) - - - (defmacro expect-native-if-bound (fun &optional feature) - `(and (expect-feature ,feature) - (boundp ',fun) - (should (native-comp-function-p (symbol-function ',fun))))) - - (defmacro expect-builtin (fun &optional feature) - `(should (primitive-function-p (symbol-function ',fun))))) - -(expect-native abbrev-mode) -(expect-native backquote-process) -(expect-native mode-line-widen) -(expect-native buffer-menu) -(expect-native button-mode) -(expect-native byte-run-strip-symbol-positions) -(expect-native case-table-get-table) -(expect-native cconv-convert) -(expect-native use-default-char-width-table) -(expect-native cl-generic-p) -(expect-native cl-struct-define) -(expect-native-if-bound x-setup-function-keys) -(expect-native encode-composition-rule) -(expect-native custom-declare-face) -(expect-native minibuffer-prompt-properties--setter) -(expect-native custom-add-choice) -(expect-native debug-early) -(expect-native display-table-slot disp-table) -(expect-native dnd-open-file) -(expect-native dos-mode25 dos-fns) -(expect-native find-file-text dos-w32) -(expect-native-if-bound dynamic-setting-handle-config-changed-event) -(expect-native easy-menu-item-present-p) -(expect-native eldoc-mode) -(expect-native electric-indent-mode) -(expect-native elisp-mode-syntax-propertize) -(expect-native getenv) -(expect-native epa-file-find-file-hook) -(expect-native face-list) -(expect-native find-file-noselect) -(expect-native fill-region) -(expect-native font-lock-change-mode) -(expect-native font-lock-add-keywords) -(expect-native-if-bound fontset-plain-name) -(expect-native format-read) -(expect-native frame-edges) -(expect-native-if-bound fringe-mode) -(expect-native help-quick) -(expect-native-if-bound image-type) -(expect-native indent-region) -(expect-native indian-compose-regexp) -(expect-native msdos-setup-keyboard term/internal) -(expect-native isearch-abort) -(expect-native iso-transl-set-language) -(expect-native jit-lock-mode) -(expect-native jka-compr-build-file-regexp) -(expect-native keymap-global-set) -(expect-native forward-sexp) -(expect-native lisp-string-in-doc-position-p) -(expect-native ls-lisp-set-options ls-lisp) -(expect-native macroexp-compiling-p) -(expect-native map-y-or-n-p) -(expect-native menu-find-file-existing) -(expect-native completion-boundaries) -(expect-native egyptian-shape-grouping) -(expect-native mouse-double-click-time) -(expect-native convert-define-charset-argument) -(expect-native coding-system-change-eol-conversion) -(expect-native store-substring mule-util) -(expect-native-if-bound mouse-wheel-change-button) -(expect-native advice-function-mapc) -(expect-native comment-string-strip) -(expect-builtin obarray-make) -(expect-native obarray-map) -(expect-native oclosure-type) -(expect-native forward-page) -(expect-native sentence-end) -(expect-native show-paren-function) -(expect-native pgtk-dnd-init-frame pgtk-dnd) -(expect-native prog-context-menu) -(expect-native-if-bound regexp-opt) -(expect-native get-register) -(expect-native query-replace-descr) -(expect-native rfn-eshadow-setup-minibuffer) -(expect-native read-multiple-choice) -(expect-native-if-bound scroll-bar-scale) -(expect-native gui-select-text) -(expect-native seq-first) -(expect-native hack-read-symbol-shorthands) -(expect-native next-error-find-buffer) -(expect-native exit-splash-screen) -(expect-native buffer-local-boundp) -(expect-native syntax-propertize-multiline) -(expect-native tab-bar-mode) -(expect-native tabulated-list-put-tag) -(expect-native text-mode) -(expect-native timer-activate) -(expect-native tool-bar-mode) -(expect-native tooltip-mode) -(expect-native tty-color-desc) -(expect-native ucs-normalize-hfs-nfd-comp-p ucs-normalize) -(expect-native uniquify-item-p) -(expect-native vc-mode) -(expect-native emacs-version) -(expect-native define-widget) -(expect-native window-right) -(expect-native x-dnd-init-frame x-dnd) -(expect-native-if-bound x-handle-no-bitmap-icon) diff --git a/gnu/packages/aux-files/emacs/comp-integrity.el b/gnu/packages/aux-files/emacs/comp-integrity.el index abe7e7c0c9..74ee0952f4 100644 --- a/gnu/packages/aux-files/emacs/comp-integrity.el +++ b/gnu/packages/aux-files/emacs/comp-integrity.el @@ -1,34 +1,25 @@ (require 'ert) (eval-when-compile - (require 'help-fns) - - (defmacro expect-help (fun result &optional feature) + (defmacro expect-feature (&optional feature) `(progn - (eval-when-compile (when ',feature - (require ',feature))) - - (ert-deftest ,(intern (concat "expect-" (symbol-name fun) - "-" (symbol-name result))) - () - (should - (eq ',result - (let ((desc (substring-no-properties - (with-output-to-string - (help-fns-function-description-header ',fun))))) - (cond ((string-search "native-compiled" desc) 'native) - ((string-search "byte-compiled" desc) 'byte) - ((string-search "built-in" desc) 'built-in) - (t nil)))))))) + (eval-when-compile + (or (not ',feature) + (require ',feature))))) (defmacro expect-native (fun &optional feature) - `(progn (expect-help ,fun native ,feature))) + `(progn + (expect-feature ,feature) + (should (native-comp-function-p (symbol-function ',fun))))) + - (defmacro expect-native-if-bound (fun) - `(and (boundp ',fun) (expect-help ,fun native))) + (defmacro expect-native-if-bound (fun &optional feature) + `(and (expect-feature ,feature) + (boundp ',fun) + (should (native-comp-function-p (symbol-function ',fun))))) (defmacro expect-builtin (fun &optional feature) - `(progn (expect-help ,fun built-in ,feature)))) + `(should (primitive-function-p (symbol-function ',fun))))) (expect-native abbrev-mode) (expect-native backquote-process) @@ -92,9 +83,7 @@ (expect-native-if-bound mouse-wheel-change-button) (expect-native advice-function-mapc) (expect-native comment-string-strip) -(if (>= emacs-major-version 30) - (expect-builtin obarray-make) - (expect-native obarray-make)) +(expect-builtin obarray-make) (expect-native obarray-map) (expect-native oclosure-type) (expect-native forward-page) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c5e671c6a9..4d14feb38b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -100,7 +100,7 @@ (define (%emacs-modules build-system) (define-public emacs-minimal (package (name "emacs-minimal") - (version "29.4") + (version "30.1") ;; Note: When using (replacement …), ensure that comp-native-version-dir ;; stays the same across grafts. ;; Run `make check-system TESTS=emacs-native-comp' to ensure that grafts @@ -111,7 +111,7 @@ (define-public emacs-minimal version ".tar.xz")) (sha256 (base32 - "0dd2mh6maa7dc5f49qdzj7bi4hda4wfm1cvvgq560djcz537k2ds")) + "13qkdx515qv7m8b2mpd37p16frs0xgl7bw8xvv397bz6fspc3jkc")) (patches (search-patches "emacs-disable-jit-compilation.patch" "emacs-exec-path.patch" "emacs-fix-scheme-indent-function.patch" @@ -172,7 +172,6 @@ (define-public emacs-minimal "lisp/mail/feedmail.el" "lisp/obsolete/pgg-pgp.el" "lisp/obsolete/pgg-pgp5.el" - "lisp/obsolete/terminal.el" "lisp/org/ob-eval.el" "lisp/textmodes/artist.el" "lisp/progmodes/sh-script.el" @@ -721,10 +720,6 @@ (define-public guile-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" diff --git a/gnu/packages/patches/emacs-exec-path.patch b/gnu/packages/patches/emacs-exec-path.patch index 9a76b0237d..6e33e25258 100644 --- a/gnu/packages/patches/emacs-exec-path.patch +++ b/gnu/packages/patches/emacs-exec-path.patch @@ -2,15 +2,17 @@ Do not capture the build-time value of $PATH in the 'emacs' executable since this can noticeably increase the size of the closure of Emacs with things like GCC being referenced. ---- a/lisp/loadup.el -+++ b/lisp/loadup.el -@@ -530,7 +530,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)) - (when (and (featurep 'native-compile) - (equal dump-mode "pdump")) - ;; Don't enable this before bootstrap is completed, as the +Index: emacs-next/lisp/loadup.el +=================================================================== +--- emacs-next.orig/lisp/loadup.el ++++ emacs-next/lisp/loadup.el +@@ -599,7 +599,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)) + (when (and (featurep 'native-compile) + (equal dump-mode "pdump")) + ;; Don't enable this before bootstrap is completed, as the diff --git a/gnu/packages/patches/emacs-native-comp-driver-options.patch b/gnu/packages/patches/emacs-native-comp-driver-options.patch index 308c4f1212..e4ed5a48f1 100644 --- a/gnu/packages/patches/emacs-native-comp-driver-options.patch +++ b/gnu/packages/patches/emacs-native-comp-driver-options.patch @@ -2,12 +2,13 @@ We substitute this anyway, so let's make it easier to substitute. --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el -@@ -178,8 +178,7 @@ and above." +@@ -203,9 +203,7 @@ and above." :type '(repeat string) :version "28.1") --(defcustom native-comp-driver-options (when (eq system-type 'darwin) -- '("-Wl,-w")) +-(defcustom native-comp-driver-options +- (cond ((eq system-type 'darwin) '("-Wl,-w")) +- ((eq system-type 'cygwin) '("-Wl,-dynamicbase"))) +(defcustom native-comp-driver-options nil "Options passed verbatim to the native compiler's back-end driver. Note that not all options are meaningful; typically only the options diff --git a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch index 169323f290..7897fa9b04 100644 --- a/gnu/packages/patches/emacs-native-comp-fix-filenames.patch +++ b/gnu/packages/patches/emacs-native-comp-fix-filenames.patch @@ -12,11 +12,11 @@ way into the actual variable despite attempts to remove it by calling The user-visible procedure ‘startup-redirect-eln-cache’ is kept, as packages may require it, but only pushes the new value now. -Index: emacs-29.2/src/comp.c +Index: emacs-next/src/comp.c =================================================================== ---- emacs-29.2.orig/src/comp.c -+++ emacs-29.2/src/comp.c -@@ -4396,26 +4396,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc +--- emacs-next.orig/src/comp.c ++++ emacs-next/src/comp.c +@@ -4403,26 +4403,17 @@ DEFUN ("comp-el-to-eln-rel-filename", Fc Scomp_el_to_eln_rel_filename, 1, 1, 0, doc: /* Return the relative name of the .eln file for FILENAME. FILENAME must exist, and if it's a symlink, the target must exist. @@ -49,7 +49,7 @@ Index: emacs-29.2/src/comp.c if (NILP (Ffile_exists_p (filename))) xsignal1 (Qfile_missing, filename); -@@ -4423,64 +4414,55 @@ one for the file name and another for it +@@ -4430,64 +4421,55 @@ one for the file name and another for it filename = Fw32_long_file_name (filename); #endif @@ -157,7 +157,7 @@ Index: emacs-29.2/src/comp.c } DEFUN ("comp-el-to-eln-filename", Fcomp_el_to_eln_filename, -@@ -4494,13 +4476,7 @@ If BASE-DIR is non-nil, use it as the di +@@ -4501,13 +4483,7 @@ If BASE-DIR is non-nil, use it as the di non-absolute BASE-DIR is interpreted as relative to `invocation-directory'. If BASE-DIR is omitted or nil, look for the first writable directory in `native-comp-eln-load-path', and use as BASE-DIR its subdirectory @@ -172,7 +172,7 @@ Index: emacs-29.2/src/comp.c (Lisp_Object filename, Lisp_Object base_dir) { Lisp_Object source_filename = filename; -@@ -4548,10 +4524,11 @@ the latter is supposed to be used by the +@@ -4555,10 +4531,11 @@ the latter is supposed to be used by the Lisp_Object lisp_preloaded = Fgetenv_internal (build_string ("LISP_PRELOADED"), Qnil); base_dir = Fexpand_file_name (Vcomp_native_version_dir, base_dir); @@ -186,7 +186,7 @@ Index: emacs-29.2/src/comp.c CALL1I (split-string, lisp_preloaded)))))) base_dir = Fexpand_file_name (build_string ("preloaded"), base_dir); -@@ -5863,10 +5840,7 @@ The last directory of this list is assum +@@ -5875,10 +5852,7 @@ The last directory of this list is assum the system *.eln files, which are the files produced when building Emacs. */); @@ -198,11 +198,11 @@ Index: emacs-29.2/src/comp.c DEFVAR_LISP ("native-comp-enable-subr-trampolines", Vnative_comp_enable_subr_trampolines, -Index: emacs-29.2/lisp/startup.el +Index: emacs-next/lisp/startup.el =================================================================== ---- emacs-29.2.orig/lisp/startup.el -+++ emacs-29.2/lisp/startup.el -@@ -545,9 +545,6 @@ DIRS are relative." +--- emacs-next.orig/lisp/startup.el ++++ emacs-next/lisp/startup.el +@@ -527,9 +527,6 @@ DIRS are relative." (defvar native-comp-jit-compilation) (defvar native-comp-enable-subr-trampolines) @@ -212,7 +212,7 @@ Index: emacs-29.2/lisp/startup.el (defun startup-redirect-eln-cache (cache-directory) "Redirect the user's eln-cache directory to CACHE-DIRECTORY. CACHE-DIRECTORY must be a single directory, a string. -@@ -558,22 +555,10 @@ to `user-emacs-directory'. +@@ -540,22 +537,10 @@ to `user-emacs-directory'. For best results, call this function in your early-init file, so that the rest of initialization and package loading uses the updated value." @@ -232,10 +232,10 @@ Index: emacs-29.2/lisp/startup.el - (setq startup--original-eln-load-path - (copy-sequence native-comp-eln-load-path)))) - - (defun normal-top-level () - "Emacs calls this function when it first starts up. - It sets `command-line-processed', processes the command-line, -@@ -1362,12 +1347,6 @@ please check its value") + (defun startup--rescale-elt-match-p (font-pattern font-object) + "Test whether FONT-OBJECT matches an element of `face-font-rescale-alist'. + FONT-OBJECT is a font-object that specifies a font to test. +@@ -1383,12 +1368,6 @@ please check its value") startup-init-directory))) (setq early-init-file user-init-file) @@ -248,7 +248,7 @@ Index: emacs-29.2/lisp/startup.el ;; If any package directory exists, initialize the package system. (and user-init-file package-enable-at-startup -@@ -1502,12 +1481,6 @@ please check its value") +@@ -1523,12 +1502,6 @@ please check its value") startup-init-directory)) t) @@ -261,10 +261,10 @@ Index: emacs-29.2/lisp/startup.el (when (and deactivate-mark transient-mark-mode) (with-current-buffer (window-buffer) (deactivate-mark))) -Index: emacs-29.2/lisp/loadup.el +Index: emacs-next/lisp/loadup.el =================================================================== ---- emacs-29.2.orig/lisp/loadup.el -+++ emacs-29.2/lisp/loadup.el +--- emacs-next.orig/lisp/loadup.el ++++ emacs-next/lisp/loadup.el @@ -53,6 +53,14 @@ (setq redisplay--inhibit-bidi t) @@ -280,9 +280,16 @@ Index: emacs-29.2/lisp/loadup.el ;; Add subdirectories to the load-path for files that might get ;; autoloaded when bootstrapping or running Emacs normally. -@@ -494,22 +502,20 @@ lost after dumping"))) - (concat eln-dest-dir "native-lisp/" comp-native-version-dir "/")) +@@ -538,27 +546,25 @@ This to have it working when installed o + directory got moved. This is set to be a pair in the form of: + \(rel-filename-from-install-bin . rel-filename-from-local-bin)." + (when (and load--bin-dest-dir load--eln-dest-dir) +- (setq eln-dest-dir +- (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/")) ++ (setq load--eln-versioned-dest-dir ++ (concat load--eln-dest-dir "native-lisp/" comp-native-version-dir "/")) (maphash (lambda (_ cu) + (when (stringp (native-comp-unit-file cu)) (let* ((file (native-comp-unit-file cu)) - (preloaded (equal (substring (file-name-directory file) - -10 -1) @@ -302,33 +309,33 @@ Index: emacs-29.2/lisp/loadup.el - (file-name-nondirectory - file) - eln-dest-dir-eff) -- bin-dest-dir) +- load--bin-dest-dir) + (file-relative-name + (expand-file-name + (save-match-data + (string-match native-lisp-needle file) + (substring file (match-end 0))) -+ eln-dest-dir) -+ bin-dest-dir) ++ load--eln-versioned-dest-dir) ++ load--bin-dest-dir) ;; Relative filename from the built uninstalled binary. - (file-relative-name file invocation-directory))))) - comp-loaded-comp-units-h))) -@@ -557,7 +563,9 @@ lost after dumping"))) - (equal dump-mode "pdump")) - ;; Don't enable this before bootstrap is completed, as the - ;; compiler infrastructure may not be usable yet. -- (setq native-comp-enable-subr-trampolines t)) -+ (setq native-comp-enable-subr-trampolines t -+ ;; We loaded everything we could. -+ comp-file-preloaded-p nil)) - (message "Dumping under the name %s" output) - (condition-case () - (delete-file output) -Index: emacs-29.2/src/Makefile.in + (file-relative-name file invocation-directory)))))) + comp-loaded-comp-units-h))) +@@ -644,7 +650,9 @@ directory got moved. This is set to be + (equal dump-mode "pdump")) + ;; Don't enable this before bootstrap is completed, as the + ;; compiler infrastructure may not be usable yet. +- (setq native-comp-enable-subr-trampolines t)) ++ (setq native-comp-enable-subr-trampolines t ++ ;; We loaded everything we could. ++ comp-file-preloaded-p nil)) + (message "Dumping under the name %s" output) + (condition-case () + (delete-file output) +Index: emacs-next/src/Makefile.in =================================================================== ---- emacs-29.2.orig/src/Makefile.in -+++ emacs-29.2/src/Makefile.in -@@ -553,6 +553,7 @@ shortlisp := $(filter-out ${shortlisp_fi +--- emacs-next.orig/src/Makefile.in ++++ emacs-next/src/Makefile.in +@@ -591,6 +591,7 @@ shortlisp := $(filter-out ${shortlisp_fi ## We don't really need to sort, but may as well use it to remove duplicates. shortlisp := loaddefs.el loadup.el $(sort ${shortlisp}) export LISP_PRELOADED = ${shortlisp} base-commit: 61428ccf41f21f5ea1e4f1eec722ef9b1efc3a0e -- 2.48.1
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.