[PATCH emacs-team 0/2] Start preparing for Emacs 29

  • Done
  • quality assurance status badge
Details
3 participants
  • Andrew Tropin
  • Liliana Marie Prikler
  • Mekeor Melire
Owner
unassigned
Submitted by
Liliana Marie Prikler
Severity
normal
L
L
Liliana Marie Prikler wrote on 9 Jun 2023 18:22
(address . guix-patches@gnu.org)
cover.1686327727.git.liliana.prikler@gmail.com
Hi Guix,

it's already been four weeks since the newest Emacs pre-release. Time
sure flies. With that in mind, I'd like to start work in the Emacs team
focused on
1. streamlining our Emacs packages
2. improving emacs-build-system and adapting it to the new features of
Emacs 29 (including the almost forgotten [1])
3. improving our Emacs package management (i.e. making it easier to
declare variants of emacs-* packages built with different Emacsen)

This series gets us started on (1), so we can do (2) and (3) hopefully
soon.

Cheers


Liliana Marie Prikler (2):
gnu: Make emacs-next-tree-sitter the new emacs.
gnu: Construct Emacs packages from bottom up.

gnu/local.mk | 1 -
gnu/packages/emacs.scm | 467 +++++++-----------
.../patches/emacs-source-date-epoch.patch | 20 -
3 files changed, 190 insertions(+), 298 deletions(-)
delete mode 100644 gnu/packages/patches/emacs-source-date-epoch.patch


base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
--
2.40.1
L
L
Liliana Marie Prikler wrote on 9 Jun 2023 10:40
[PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs.
(address . 63984@debbugs.gnu.org)
a016453a950c53c9b7f5bcdafb8209292601b1cd.1686331406.git.liliana.prikler@gmail.com
* gnu/packages/patches/emacs-source-date-epoch.patch: Delete file
* gnu/local.mk (dist_patch_DATA): Remove it from here.
* gnu/packages/emacs.scm (emacs): Update to 29.0.91.
[source]<patches>: Remove “emacs-source-date-epoch.patch”.
Add “emacs-pgtk-super-key-fix.patch”.
[arguments]: Use “--with-native-compilation=aot” instead of #:make-flags.
[inputs]: Add sqlite and tree-sitter.
(emacs-next-pgtk): Rename to…
(emacs-pgtk): … this.
(emacs-next-pgtk-xwidgets): Rename to…
(emacs-pgtk-xwidgets): … this.
(emacs-minimal)[native-inputs]: Add texinfo.
(emacs-xwidgets): Inherit build system, configure-flags and phases normally.
(emacs-next, emacs-next-tree-sitter): Remove variables.
---
gnu/local.mk | 1 -
gnu/packages/emacs.scm | 101 +++++-------------
.../patches/emacs-source-date-epoch.patch | 20 ----
3 files changed, 27 insertions(+), 95 deletions(-)
delete mode 100644 gnu/packages/patches/emacs-source-date-epoch.patch

Toggle diff (217 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index ce16d37e2b..057903d10f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1090,7 +1090,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 7831a24922..a6b883aaa2 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -97,17 +97,23 @@ (define (%emacs-modules build-system)
(define-public emacs
(package
(name "emacs")
- (version "28.2")
+ (version "29.0.91")
(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"))
+ "09jm1q5pvd1dc0xq5rhn66v1j235zlr72kwv5i27xigvi9nfqkv1"))
(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"
@@ -145,9 +151,8 @@ (define-public emacs
#:modules (%emacs-modules build-system)
#:configure-flags #~(list "--with-modules"
"--with-cairo"
- "--with-native-compilation"
+ "--with-native-compilation=aot"
"--disable-build-details")
- #:make-flags #~(list "NATIVE_FULL_AOT=1")
#:phases
#~(modify-phases %standard-phases
(add-after 'set-paths 'set-libgccjit-path
@@ -340,6 +345,8 @@ (define-public emacs
ghostscript
poppler
elogind
+ sqlite
+ tree-sitter
;; When looking for libpng `configure' links with `-lpng -lz', so we
;; must also provide zlib as an input.
@@ -368,11 +375,6 @@ (define-public emacs
(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.
(search-path-specification
(variable "TREE_SITTER_GRAMMAR_PATH")
(files '("lib/tree-sitter")))))
@@ -390,72 +392,29 @@ (define-public emacs
languages.")
(license license:gpl3+)))
-(define-public emacs-next
+(define-public emacs-pgtk
(package
(inherit emacs)
- (name "emacs-next")
- (version "29.0.91")
- (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
- "09jm1q5pvd1dc0xq5rhn66v1j235zlr72kwv5i27xigvi9nfqkv1"))))
- (inputs
- (modify-inputs (package-inputs emacs)
- (prepend sqlite)))
- (native-inputs
- (modify-inputs (package-native-inputs emacs)
- (prepend autoconf)))))
-
-(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.")))
-
-(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))))))
+ (name "emacs-pgtk")
(arguments
- (substitute-keyword-arguments (package-arguments emacs-next-tree-sitter)
+ (substitute-keyword-arguments (package-arguments emacs)
((#:configure-flags flags #~'())
#~(cons* "--with-pgtk" #$flags))))
- (synopsis "Emacs text editor with @code{pgtk} and @code{tree-sitter} support")
+ (synopsis "Emacs text editor with @code{pgtk} frames")
(description "This Emacs build implements graphical UI purely in terms
-of GTK and supports tree-sitter.")))
+of GTK.")))
-(define-public emacs-next-pgtk-xwidgets
+(define-public emacs-pgtk-xwidgets
(package
- (inherit emacs-next-pgtk)
- (name "emacs-next-pgtk-xwidgets")
+ (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-next-pgtk)
+ (substitute-keyword-arguments (package-arguments emacs-pgtk)
((#:configure-flags flags #~'())
#~(cons "--with-xwidgets" #$flags))))
(inputs
- (modify-inputs (package-inputs emacs-next-pgtk)
+ (modify-inputs (package-inputs emacs-pgtk)
(prepend gsettings-desktop-schemas webkitgtk-with-libsoup2)))))
(define-public emacs-minimal
@@ -477,23 +436,17 @@ (define-public emacs-minimal
(delete 'restore-emacs-pdmp)
(delete 'strip-double-wrap)))))
(inputs (list ncurses coreutils gzip))
- (native-inputs (list autoconf pkg-config))))
+ (native-inputs (list autoconf pkg-config texinfo))))
(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)))))
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.

base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
--
2.40.1
L
L
Liliana Marie Prikler wrote on 9 Jun 2023 13:28
[PATCH emacs-team 2/2] gnu: Construct Emacs packages from bottom up.
(address . 63984@debbugs.gnu.org)
a3ac317ab4a90f66ac65055fa26dee58ed2367b8.1686331406.git.liliana.prikler@gmail.com
This makes relationships within the Emacs variants slightly easier to reason
about. In particular, it makes it so that inputs get added on top of the
previous stack rather than removed (which brings the risk of not adjusting
changes downwards).

* gnu/packages/emacs.scm (emacs-minimal): Expand package definition.
[inputs]: Reorder and add bash-minimal.
(emacs-no-x): Inherit from emacs-minimal.
(emacs): Inherit from emacs-no-x.
(emacs-motif, emacs-no-x-toolkit): Inherit from emacs-no-x.
Only inherit inputs from emacs.
---
gnu/packages/emacs.scm | 395 +++++++++++++++++++----------------------
1 file changed, 178 insertions(+), 217 deletions(-)

Toggle diff (446 lines)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index a6b883aaa2..046b11588d 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -54,6 +54,7 @@ (define-module (gnu packages emacs)
#: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,9 +95,9 @@ (define (%emacs-modules build-system)
(srfi srfi-1)
(ice-9 ftw))))
-(define-public emacs
+(define-public emacs-minimal
(package
- (name "emacs")
+ (name "emacs-minimal")
(version "29.0.91")
(source (origin
;; TODO: Restore url-fetch when serving 29.1
@@ -144,36 +145,14 @@ (define-public emacs
"\"~/.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=aot"
- "--disable-build-details")
+ #: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"
@@ -204,20 +183,6 @@ (define-public emacs
(("\\(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'.
@@ -259,29 +224,7 @@ (define-public emacs
(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")
@@ -290,9 +233,9 @@ (define-public emacs
(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")
@@ -305,66 +248,30 @@ (define-public emacs
;; 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
- sqlite
- tree-sitter
-
- ;; 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")
@@ -375,26 +282,135 @@ (define-public emacs
(search-path-specification
(variable "INFOPATH")
(files '("share/info")))
+ ;; 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/")
+(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-minimal)
+ (prepend gnutls
+ ;; To "unshadow" ld-wrapper in native builds
+ (make-ld-wrapper "ld-wrapper" #:binutils binutils)
+ ;; For native compilation
+ binutils
+ glibc
+ libgccjit
+
+ ;; Avoid Emacs's limited movemail substitute that retrieves POP3
+ ;; email only via insecure channels.
+ ;; This is not needed for (modern) IMAP.
+ mailutils
+
+ acl
+ alsa-lib
+ elogind
+ ghostscript
+ gpm
+ jansson
+ lcms
+ libice
+ libselinux
+ libsm
+ libxml2
+ m17n-lib
+ sqlite
+ tree-sitter
+ zlib)))))
+
+(define-public emacs
+ (package/inherit emacs-no-x
+ (name "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+)))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ (substitute-keyword-arguments (package-arguments emacs-no-x)
+ ((#:modules _) (%emacs-modules build-system))
+ ((#:configure-flags flags #~'())
+ #~(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-pgtk
- (package
- (inherit emacs)
+ (package/inherit emacs
(name "emacs-pgtk")
(arguments
(substitute-keyword-arguments (package-arguments emacs)
@@ -404,40 +420,6 @@ (define-public emacs-pgtk
(description "This Emacs build implements graphical UI purely in terms
of GTK.")))
-(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-minimal
- ;; This is the version that you should use as an input to packages that just
- ;; need to byte-compile .el files.
- (package/inherit emacs
- (name "emacs-minimal")
- (synopsis "The extensible text editor (used only for byte-compilation)")
- (build-system gnu-build-system)
- (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 texinfo))))
-
(define-public emacs-xwidgets
(package/inherit emacs
(name "emacs-xwidgets")
@@ -451,70 +433,49 @@ (define-public emacs-xwidgets
(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 #~'
This message was truncated. Download the full message here.
A
A
Andrew Tropin wrote on 10 Jun 2023 08:46
Re: [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
(address . liliana.prikler@gmail.com)
87ilbv95m8.fsf@trop.in
On 2023-06-09 18:22, Liliana Marie Prikler wrote:

Toggle quote (31 lines)
> Hi Guix,
>
> it's already been four weeks since the newest Emacs pre-release. Time
> sure flies. With that in mind, I'd like to start work in the Emacs team
> focused on
> 1. streamlining our Emacs packages
> 2. improving emacs-build-system and adapting it to the new features of
> Emacs 29 (including the almost forgotten [1])
> 3. improving our Emacs package management (i.e. making it easier to
> declare variants of emacs-* packages built with different Emacsen)
>
> This series gets us started on (1), so we can do (2) and (3) hopefully
> soon.
>
> Cheers
>
> [1] https://issues.guix.gnu.org/57122
>
> Liliana Marie Prikler (2):
> gnu: Make emacs-next-tree-sitter the new emacs.
> gnu: Construct Emacs packages from bottom up.
>
> gnu/local.mk | 1 -
> gnu/packages/emacs.scm | 467 +++++++-----------
> .../patches/emacs-source-date-epoch.patch | 20 -
> 3 files changed, 190 insertions(+), 298 deletions(-)
> delete mode 100644 gnu/packages/patches/emacs-source-date-epoch.patch
>
>
> base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36

Hi Liliana,

the patch series looks good, thank you for working on this. Do we want
to add (define-deprecated/alias) to make the transition to new emacs
package names smoother?

--
Best regards,
Andrew Tropin
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmSEHE8ACgkQIgjSCVjB
3rBE4g//TreDxitPZjjwdktSNJNMhhgDOnxIwW3Du7FxQ/lohO6aAK2BNsF7Mrtw
Gw37DfiWisaxr73nam9N26vG7o6EuD0B6pGnnq33SukJjFk6/i+85sXxr+qVeziR
M5pl99ma1Qmw0XNEt5Ins6HXUPl6+qtd+NC9uZpI0iNL5bUTSaRpkwe/DCDNpsoq
q+L0NHLvtI2Y9AtwMR46kIWMWWpVlGlsKJCW3oiJG30+u5BgCjNkVCcrv7cdm2rh
TvHDnJEq1eO4nkH2x3BS+tEud1DQvOded2dC6W8VjAhDD2fUVYBAf0TZlR6ydsI8
ijtE2sLKOcPuD8Y3Uh26WY0tHw0rIqPk5W2YUC07+WBLYLjSNxaerO+xb1q3LaRJ
Lj47e1XTmvWUPjHNB5rJ+d4kaSEfYppwSkVBGB6wm2Io9AGDARbWT2M+MsfERA0K
MihWXcdOpUBpeZgyYJx+Fm5M3+ck0e3DJ26TPT1PKT2FVAr08uZtlMOAmzfbSlxp
+ZDkKLfBcscLgPVedY+eY+JBKWuaEhw880wDtmCB6jajCHwAnSBcuU9gGFHnUbYr
LAC+xViQEY2m3XBHGb7fwQtgHxy/KxfBeFkNymbjh/0SfAtkAANJUJcs7crEqhi3
wqVYJ6jKMUgfshpzWd35raB+4zAq/hTjrInDmT0UtZib45D1JgI=
=F70d
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 10 Jun 2023 09:46
4e7bbf48998a86696247bec6de9e830cb8ba31c1.camel@gmail.com
Am Samstag, dem 10.06.2023 um 10:46 +0400 schrieb Andrew Tropin:
Toggle quote (45 lines)
> On 2023-06-09 18:22, Liliana Marie Prikler wrote:
>
> > Hi Guix,
> >
> > it's already been four weeks since the newest Emacs pre-release. 
> > Time
> > sure flies.  With that in mind, I'd like to start work in the Emacs
> > team
> > focused on
> > 1. streamlining our Emacs packages
> > 2. improving emacs-build-system and adapting it to the new features
> > of
> >    Emacs 29 (including the almost forgotten [1])
> > 3. improving our Emacs package management (i.e. making it easier to
> >    declare variants of emacs-* packages built with different
> > Emacsen)
> >
> > This series gets us started on (1), so we can do (2) and (3)
> > hopefully
> > soon.
> >
> > Cheers
> >
> > [1] https://issues.guix.gnu.org/57122
> >
> > Liliana Marie Prikler (2):
> >   gnu: Make emacs-next-tree-sitter the new emacs.
> >   gnu: Construct Emacs packages from bottom up.
> >
> >  gnu/local.mk                                  |   1 -
> >  gnu/packages/emacs.scm                        | 467 +++++++-------
> > ----
> >  .../patches/emacs-source-date-epoch.patch     |  20 -
> >  3 files changed, 190 insertions(+), 298 deletions(-)
> >  delete mode 100644 gnu/packages/patches/emacs-source-date-
> > epoch.patch
> >
> >
> > base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
>
> Hi Liliana,
>
> the patch series looks good, thank you for working on this.  Do we
> want to add (define-deprecated/alias) to make the transition to new
> emacs package names smoother?
Since it'll be a "world"-rebuilding change, I think a news entry ought
to be preferred.

Cheers
A
A
Andrew Tropin wrote on 10 Jun 2023 10:20
87fs6z919h.fsf@trop.in
On 2023-06-10 09:46, Liliana Marie Prikler wrote:

Toggle quote (49 lines)
> Am Samstag, dem 10.06.2023 um 10:46 +0400 schrieb Andrew Tropin:
>> On 2023-06-09 18:22, Liliana Marie Prikler wrote:
>>
>> > Hi Guix,
>> >
>> > it's already been four weeks since the newest Emacs pre-release. 
>> > Time
>> > sure flies.  With that in mind, I'd like to start work in the Emacs
>> > team
>> > focused on
>> > 1. streamlining our Emacs packages
>> > 2. improving emacs-build-system and adapting it to the new features
>> > of
>> >    Emacs 29 (including the almost forgotten [1])
>> > 3. improving our Emacs package management (i.e. making it easier to
>> >    declare variants of emacs-* packages built with different
>> > Emacsen)
>> >
>> > This series gets us started on (1), so we can do (2) and (3)
>> > hopefully
>> > soon.
>> >
>> > Cheers
>> >
>> > [1] https://issues.guix.gnu.org/57122
>> >
>> > Liliana Marie Prikler (2):
>> >   gnu: Make emacs-next-tree-sitter the new emacs.
>> >   gnu: Construct Emacs packages from bottom up.
>> >
>> >  gnu/local.mk                                  |   1 -
>> >  gnu/packages/emacs.scm                        | 467 +++++++-------
>> > ----
>> >  .../patches/emacs-source-date-epoch.patch     |  20 -
>> >  3 files changed, 190 insertions(+), 298 deletions(-)
>> >  delete mode 100644 gnu/packages/patches/emacs-source-date-
>> > epoch.patch
>> >
>> >
>> > base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
>>
>> Hi Liliana,
>>
>> the patch series looks good, thank you for working on this.  Do we
>> want to add (define-deprecated/alias) to make the transition to new
>> emacs package names smoother?
> Since it'll be a "world"-rebuilding change, I think a news entry ought
> to be preferred.

I don't think one excludes another. We can provide both news entry and
deprecation alias. This way we let people update guix channel version
without any changes to their configurations, let them know
emacs-next-blabla will dissapear soon and give them time to react and
update their configurations accordingly without hurry.

I'm ok proceeding without this extra step, but the deprecation workflow
seems nicer to me.

--
Best regards,
Andrew Tropin
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmSEMloACgkQIgjSCVjB
3rDq9g/8D9+GgaHTechuxZfl7vYijmV94VALV/OEThLjs2HVPWPv4D2HrNBBhNCv
FzYF8eZ3820sN11wtDuNJPwmifLu4xLe1tAZWOf1jBrZkx76XKvs6ofW45dcINqk
a75/HEG6zBh1WdKoGAIrHAtUFCdIilo6PNddw2CBZr1M/cCLVx0XKyIJMb7Gdj6c
Wfcoz3yUAfSZqVtAopGOQU1tuMe6ieXs5S2LhcLR0f1DRD0I6FZVuWwsGcz/ZHT3
iZ+J0f/O60awg5JhM2gYb4sYmvj9Rkcfcs8fzR6FH5+37Kc4/+L1CUStcZCKrt29
g5c1LSzzPdM2Kw8BfzgO6Sr9mOFvV7N2r5alBmuRRIG9kF1tbTgs16jLNe5Q35vq
zJNAGcPM6HFN8hTfnCFQPdLf2+eIXJhP+ZnsWfhYJGRddAXhSQKQ/Ri6cEnjB+VO
Z597cO6weuNPB28rlSRdjmttqGi/+N8WcfKoyqaatJuYMTHrGC9DLmPB5VK/JwEZ
dCC3fK0KP5xstK5KxblQ2Ll+YiiWbvw9DeFZVLoVdhVQczls5gDvCrL+AUkxJ71L
rRWm3h8If0WDkBK8lzpwN8B8OvwfZ6thVULlT8fJj+m+KQg50yxZRmjoYOM9GzUi
UFOut2k6V3pqVTXPAmJC0qNfIMRbHMJDrDOCoX4iMxEcmLAAGUk=
=Syw5
-----END PGP SIGNATURE-----

L
L
Liliana Marie Prikler wrote on 10 Jun 2023 10:51
d6fb6ac1a3ba5719c1d81e1e6f14e745bad11998.camel@gmail.com
Am Samstag, dem 10.06.2023 um 12:20 +0400 schrieb Andrew Tropin:
Toggle quote (64 lines)
> On 2023-06-10 09:46, Liliana Marie Prikler wrote:
>
> > Am Samstag, dem 10.06.2023 um 10:46 +0400 schrieb Andrew Tropin:
> > > On 2023-06-09 18:22, Liliana Marie Prikler wrote:
> > >
> > > > Hi Guix,
> > > >
> > > > it's already been four weeks since the newest Emacs pre-
> > > > release. 
> > > > Time
> > > > sure flies.  With that in mind, I'd like to start work in the
> > > > Emacs
> > > > team
> > > > focused on
> > > > 1. streamlining our Emacs packages
> > > > 2. improving emacs-build-system and adapting it to the new
> > > > features
> > > > of
> > > >    Emacs 29 (including the almost forgotten [1])
> > > > 3. improving our Emacs package management (i.e. making it
> > > > easier to
> > > >    declare variants of emacs-* packages built with different
> > > > Emacsen)
> > > >
> > > > This series gets us started on (1), so we can do (2) and (3)
> > > > hopefully
> > > > soon.
> > > >
> > > > Cheers
> > > >
> > > > [1] https://issues.guix.gnu.org/57122
> > > >
> > > > Liliana Marie Prikler (2):
> > > >   gnu: Make emacs-next-tree-sitter the new emacs.
> > > >   gnu: Construct Emacs packages from bottom up.
> > > >
> > > >  gnu/local.mk                                  |   1 -
> > > >  gnu/packages/emacs.scm                        | 467 +++++++---
> > > > ----
> > > > ----
> > > >  .../patches/emacs-source-date-epoch.patch     |  20 -
> > > >  3 files changed, 190 insertions(+), 298 deletions(-)
> > > >  delete mode 100644 gnu/packages/patches/emacs-source-date-
> > > > epoch.patch
> > > >
> > > >
> > > > base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
> > >
> > > Hi Liliana,
> > >
> > > the patch series looks good, thank you for working on this.  Do
> > > we want to add (define-deprecated/alias) to make the transition
> > > to new emacs package names smoother?
> > Since it'll be a "world"-rebuilding change, I think a news entry
> > ought to be preferred.
>
> I don't think one excludes another.  We can provide both news entry
> and deprecation alias.  This way we let people update guix channel
> version without any changes to their configurations, let them know
> emacs-next-blabla will dissapear soon and give them time to react and
> update their configurations accordingly without hurry.
>
> I'm ok proceeding without this extra step, but the deprecation
> workflow seems nicer to me.
You're right in that one does not exclude the other, but there are
practical limitations. When emacs itself has version 29, emacs-next
ought to be 30, imho.

Cheers
A
A
Andrew Tropin wrote on 11 Jun 2023 07:35
871qiipnmt.fsf@trop.in
On 2023-06-10 10:51, Liliana Marie Prikler wrote:

Toggle quote (69 lines)
> Am Samstag, dem 10.06.2023 um 12:20 +0400 schrieb Andrew Tropin:
>> On 2023-06-10 09:46, Liliana Marie Prikler wrote:
>>
>> > Am Samstag, dem 10.06.2023 um 10:46 +0400 schrieb Andrew Tropin:
>> > > On 2023-06-09 18:22, Liliana Marie Prikler wrote:
>> > >
>> > > > Hi Guix,
>> > > >
>> > > > it's already been four weeks since the newest Emacs pre-
>> > > > release. 
>> > > > Time
>> > > > sure flies.  With that in mind, I'd like to start work in the
>> > > > Emacs
>> > > > team
>> > > > focused on
>> > > > 1. streamlining our Emacs packages
>> > > > 2. improving emacs-build-system and adapting it to the new
>> > > > features
>> > > > of
>> > > >    Emacs 29 (including the almost forgotten [1])
>> > > > 3. improving our Emacs package management (i.e. making it
>> > > > easier to
>> > > >    declare variants of emacs-* packages built with different
>> > > > Emacsen)
>> > > >
>> > > > This series gets us started on (1), so we can do (2) and (3)
>> > > > hopefully
>> > > > soon.
>> > > >
>> > > > Cheers
>> > > >
>> > > > [1] https://issues.guix.gnu.org/57122
>> > > >
>> > > > Liliana Marie Prikler (2):
>> > > >   gnu: Make emacs-next-tree-sitter the new emacs.
>> > > >   gnu: Construct Emacs packages from bottom up.
>> > > >
>> > > >  gnu/local.mk                                  |   1 -
>> > > >  gnu/packages/emacs.scm                        | 467 +++++++---
>> > > > ----
>> > > > ----
>> > > >  .../patches/emacs-source-date-epoch.patch     |  20 -
>> > > >  3 files changed, 190 insertions(+), 298 deletions(-)
>> > > >  delete mode 100644 gnu/packages/patches/emacs-source-date-
>> > > > epoch.patch
>> > > >
>> > > >
>> > > > base-commit: 44bbfc24e4bcc48d0e3343cd3d83452721af8c36
>> > >
>> > > Hi Liliana,
>> > >
>> > > the patch series looks good, thank you for working on this.  Do
>> > > we want to add (define-deprecated/alias) to make the transition
>> > > to new emacs package names smoother?
>> > Since it'll be a "world"-rebuilding change, I think a news entry
>> > ought to be preferred.
>>
>> I don't think one excludes another.  We can provide both news entry
>> and deprecation alias.  This way we let people update guix channel
>> version without any changes to their configurations, let them know
>> emacs-next-blabla will dissapear soon and give them time to react and
>> update their configurations accordingly without hurry.
>>
>> I'm ok proceeding without this extra step, but the deprecation
>> workflow seems nicer to me.
> You're right in that one does not exclude the other, but there are
> practical limitations. When emacs itself has version 29, emacs-next
> ought to be 30, imho.

Sounds reasonable, but I think it would be ok, if after updating emacs,
emacs-next will be 29 for a couple of weeks with deprecation warning on
top of it. The meaning of -next suffix is a convention, not a technical
limitation, so it's fine to violate it for deprecation period.

Overall, deprecation is not something crucial here and people know that
guix breaks backward compatibility from time to time, so I think it's ok
to go without it.

--
Best regards,
Andrew Tropin
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmSFXRoACgkQIgjSCVjB
3rBTtA//e7U7Kgg3uCdkUZ+u8Uel1lDAQu6/Z/Gp1RwvpFUt1QO8Y8OtGIsyh0kP
z2T1DpQmTTvbn3D1TOA0k6UzZ4Jo34v7PCUPqllgQTLaxEliKjfou9iOmNO8gePw
KmFCgN8ueeq8MQO9lWj6j69TV5ro+O5bNNl9rIq+sZI5ZVzVO3EJLrbFpew+enua
23Wa3qXXOqSTqLbO/rNa6+lgRIvvZuhpfIVofcAzDrKvbrpZk3N3ZWTCCJPgQ7yP
Va0GMqmbKJi9ozjKhYaICDxPNNidREUoo2X3VMXlUnLnzSZMUZSCIsZsfTs/LjIY
quRH+0KPX0bJ2PKA+SEJ+GwcpA43RYe6QJFxAa0BZP7BXTW+seVpPg4THh8bEsBS
nUrjyC0ftHF2XxuHwADPOBRmJn0TJlCpoXd6j/aa5ukvWDZu5+qjjfx4gT2oym1r
p+ns8S4KUok7bcgmEAleu0No/Brz5lT3fjGikIGuJcpPR1fJPD7CTTkHRy5mZFXB
yByxHtAIduKqnKCvwz6uuCSXyAKUsPMHv3+GTFTJKVj49EOXIiBwkkdcAin34f/y
iMmCgegxLhvhcLjxMlKOhWouonSfG7PDY2Umk43n110rvX97NeVG/fxhOZR1Ae97
TZdJQGpW5ZkjtqsTvaJSmPybEAmeYtj4i6+1qGyUbWPF/7SBLN4=
=C9cE
-----END PGP SIGNATURE-----

M
M
Mekeor Melire wrote on 11 Jun 2023 23:09
(name . Andrew Tropin)(address . andrew@trop.in)
87sfaxwv18.fsf@posteo.de
Hello :)

2023-06-11 09:35 andrew@trop.in:

Toggle quote (10 lines)
> Sounds reasonable, but I think it would be ok, if after updating
> emacs, emacs-next will be 29 for a couple of weeks with
> deprecation warning on top of it. The meaning of -next suffix is
> a convention, not a technical limitation, so it's fine to
> violate it for deprecation period.

> Overall, deprecation is not something crucial here and people
> know that guix breaks backward compatibility from time to time,
> so I think it's ok to go without it.

I think we don't need to divert deprecation/alias from its
intended use. I think NEWS serves its job well enough.

When having emacs-next installed and keeping it upgraded, users
should be able to expect that the upcoming release of Emacs is
installed, without deprecation warnings. After all, the package is
not called emacs29 but emacs-next.

That being said, I believe it's a good idea to
define-deprecated/public-alias emacs-next-pgtk and
emacs-next-pgtk-xwidgets.
A
A
Andrew Tropin wrote on 12 Jun 2023 06:30
(name . Mekeor Melire)(address . mekeor@posteo.de)
871qihnvzq.fsf@trop.in
On 2023-06-11 21:09, Mekeor Melire wrote:

Toggle quote (26 lines)
> Hello :)
>
> 2023-06-11 09:35 andrew@trop.in:
>
>> Sounds reasonable, but I think it would be ok, if after updating
>> emacs, emacs-next will be 29 for a couple of weeks with
>> deprecation warning on top of it. The meaning of -next suffix is
>> a convention, not a technical limitation, so it's fine to
>> violate it for deprecation period.
>
>> Overall, deprecation is not something crucial here and people
>> know that guix breaks backward compatibility from time to time,
>> so I think it's ok to go without it.
>
> I think we don't need to divert deprecation/alias from its
> intended use. I think NEWS serves its job well enough.
>
> When having emacs-next installed and keeping it upgraded, users
> should be able to expect that the upcoming release of Emacs is
> installed, without deprecation warnings. After all, the package is
> not called emacs29 but emacs-next.
>
> That being said, I believe it's a good idea to
> define-deprecated/public-alias emacs-next-pgtk and
> emacs-next-pgtk-xwidgets.

All emacs-next* variables dissapear after this patch is applied and
talking about deprecation warning: I don't see much difference between
emacs-next and emacs-next-pgtk-xwidgets in this context.

--
Best regards,
Andrew Tropin
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEKEGaxlA4dEDH6S/6IgjSCVjB3rAFAmSGn0kACgkQIgjSCVjB
3rC+vg/7BGsz4LeLoAAGwvMQBXC0ifexgKm1FqFr4e9+PaGbxp+ig7kEH0DoTxpz
A4U9zUoNO7mqGB4LVyADK8REUfVgv56CH5v1L6HodLsB6u6A5WchIHizRgbpSf1O
8PnRHgwHRlARlnFUSrK+Id3H93Ow/i4wLZ/0VpY7PveuoZdST0VVuh/1oMZ83w09
0Tqaf6hb2UdWaJ0TuzoJpsu50oSmQDWESIjsWKC8oSD1uUGiLiU5zwbBeVaBdike
YyMHWYVWzDwZMjr/Za+QFKIsjnXGq2ATvy51AIrp/ZGROQUdI+9DmEAKTWIWB7Wo
4RtB+WGo+PxjtdFG+qw9MRiRyxzkaJ7XjWQimvBIK6jXNViVvx31/G1eN5YTv2LT
zp9uzFDVmV+AjiS/TJEz5N/DzlIYbPmPAfWsL4RjQP5uwkEIILEva8LckQHtxR2v
Ue+kJitFFD7BMwH7xuNvssdUiJvMoZcmsSsKuI1nJ50pGVQdorvpKP0r/TTr1Glt
KbbA7wmrV30na67MPMvt39YsMTTSRlrU1s25NTmINBCWhPuyrpM3PzPg742Cv+nQ
e1SffZow+J3O162aHJpPfNY64MNY0+D5jutHiEb5UxRNtYxtfkbfw4/sNwGNoDtd
uEK985qr82yNlASGHq+R8SZNFnsiF2vVqLbSlsn5gt+jYRMFoLc=
=CUGe
-----END PGP SIGNATURE-----

M
M
Mekeor Melire wrote on 4 Jul 2023 09:39
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
875y702ke3.fsf@posteo.de
Why don't we build emacs-minimal with the configure-flag
--with-native-compilation=aot? If I understand correctly, this
would compile all .el-files of emacs-packages to .eln-files by
default. If I understand correctly, this currently only happens
for emacs-packages that use (arguments (#:emacs emacs)).
L
L
Liliana Marie Prikler wrote on 8 Jul 2023 19:04
(name . Mekeor Melire)(address . mekeor@posteo.de)
45168c97bc29012f232cd2cf9e55028ea17cfbae.camel@gmail.com
Am Dienstag, dem 04.07.2023 um 07:39 +0000 schrieb Mekeor Melire:
Toggle quote (5 lines)
> Why don't we build emacs-minimal with the configure-flag
> --with-native-compilation=aot? If I understand correctly, this
> would compile all .el-files of emacs-packages to .eln-files by
> default. If I understand correctly, this currently only happens
> for emacs-packages that use (arguments (#:emacs emacs)).
There's no point in using emacs-minimal for native-comp. It would just
blow up our package sizes for no gain (any other emacs won't read the
natively compiled elisp stuff due to having a different hash). If you
have a use case for natively compiled emacs-minimal (e.g. for editing
stuff on a server that should only carry small packages), I think there
are better options (possibly emacs-no-x or using a "transformed"
package).

Cheers
M
M
Mekeor Melire wrote on 12 Jul 2023 20:15
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
87a5w1gfmp.fsf@posteo.de
2023-07-08 19:04 liliana.prikler@gmail.com:

Toggle quote (18 lines)
> Am Dienstag, dem 04.07.2023 um 07:39 +0000 schrieb Mekeor
> Melire:

> > Why don't we build emacs-minimal with the configure-flag
> > --with-native-compilation=aot? If I understand correctly, this
> > would compile all .el-files of emacs-packages to .eln-files by
> > default. If I understand correctly, this currently only
> > happens for emacs-packages that use (arguments (#:emacs
> > emacs)).

> There's no point in using emacs-minimal for native-comp. It
> would just blow up our package sizes for no gain (any other
> emacs won't read the natively compiled elisp stuff due to having
> a different hash). If you have a use case for natively compiled
> emacs-minimal (e.g. for editing stuff on a server that should
> only carry small packages), I think there are better options
> (possibly emacs-no-x or using a "transformed" package).

Sorry. I think my suggestion was wrong and also I should submit it as a separate discussion. I'll send it to guix-devel. Stay tuned.
L
L
Liliana Marie Prikler wrote on 13 Jul 2023 18:20
(name . Mekeor Melire)(address . mekeor@posteo.de)
51a51d718a99a5160601517f22031b9ebe616f85.camel@gmail.com
Am Mittwoch, dem 12.07.2023 um 18:15 +0000 schrieb Mekeor Melire:
Toggle quote (22 lines)
> 2023-07-08 19:04 liliana.prikler@gmail.com:
>
> > Am Dienstag, dem 04.07.2023 um 07:39 +0000 schrieb Mekeor
> > Melire:
>
> > > Why don't we build emacs-minimal with the configure-flag
> > > --with-native-compilation=aot? If I understand correctly, this
> > > would compile all .el-files of emacs-packages to .eln-files by
> > > default. If I understand correctly, this currently only
> > > happens for emacs-packages that use (arguments (#:emacs
> > > emacs)).
>
> > There's no point in using emacs-minimal for native-comp. It
> > would just blow up our package sizes for no gain (any other
> > emacs won't read the natively compiled elisp stuff due to having
> > a different hash). If you have a use case for natively compiled
> > emacs-minimal (e.g. for editing stuff on a server that should
> > only carry small packages), I think there are better options
> > (possibly emacs-no-x or using a "transformed" package).
>
> Sorry. I think my suggestion was wrong and also I should submit it as
> a separate discussion. I'll send it to guix-devel. Stay tuned.
Possibly unrelated, but since we have 29.0.92 on master by now I pushed
this series and followed up with a merge.

Cheers
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 63984@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 63984
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch