unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs.
  2023-06-09 16:22 [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Liliana Marie Prikler
@ 2023-06-09  8:40 ` Liliana Marie Prikler
  2023-06-09 11:28   ` [bug#63984] [PATCH emacs-team 2/2] gnu: Construct Emacs packages from bottom up Liliana Marie Prikler
  2023-06-10  6:46 ` [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Andrew Tropin
  2023-07-04  7:39 ` Mekeor Melire
  2 siblings, 1 reply; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-06-09  8:40 UTC (permalink / raw)
  To: 63984; +Cc: andrew, liliana.prikler

* 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

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





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 2/2] gnu: Construct Emacs packages from bottom up.
  2023-06-09  8:40 ` [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs Liliana Marie Prikler
@ 2023-06-09 11:28   ` Liliana Marie Prikler
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-06-09 11:28 UTC (permalink / raw)
  To: 63984; +Cc: andrew, liliana.prikler

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

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 #~'())
         #~(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
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
@ 2023-06-09 16:22 Liliana Marie Prikler
  2023-06-09  8:40 ` [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs Liliana Marie Prikler
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-06-09 16:22 UTC (permalink / raw)
  To: 63984; +Cc: andrew, liliana.prikler

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
-- 
2.40.1





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-09 16:22 [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Liliana Marie Prikler
  2023-06-09  8:40 ` [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs Liliana Marie Prikler
@ 2023-06-10  6:46 ` Andrew Tropin
  2023-06-10  7:46   ` Liliana Marie Prikler
  2023-07-04  7:39 ` Mekeor Melire
  2 siblings, 1 reply; 14+ messages in thread
From: Andrew Tropin @ 2023-06-10  6:46 UTC (permalink / raw)
  To: Liliana Marie Prikler, 63984; +Cc: liliana.prikler

[-- Attachment #1: Type: text/plain, Size: 1431 bytes --]

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?

-- 
Best regards,
Andrew Tropin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-10  6:46 ` [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Andrew Tropin
@ 2023-06-10  7:46   ` Liliana Marie Prikler
  2023-06-10  8:20     ` Andrew Tropin
  0 siblings, 1 reply; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-06-10  7:46 UTC (permalink / raw)
  To: Andrew Tropin, 63984

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.

Cheers





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-10  7:46   ` Liliana Marie Prikler
@ 2023-06-10  8:20     ` Andrew Tropin
  2023-06-10  8:51       ` Liliana Marie Prikler
  0 siblings, 1 reply; 14+ messages in thread
From: Andrew Tropin @ 2023-06-10  8:20 UTC (permalink / raw)
  To: Liliana Marie Prikler, 63984

[-- Attachment #1: Type: text/plain, Size: 2318 bytes --]

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.

-- 
Best regards,
Andrew Tropin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-10  8:20     ` Andrew Tropin
@ 2023-06-10  8:51       ` Liliana Marie Prikler
  2023-06-11  5:35         ` Andrew Tropin
  0 siblings, 1 reply; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-06-10  8:51 UTC (permalink / raw)
  To: Andrew Tropin, 63984

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.

Cheers




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-10  8:51       ` Liliana Marie Prikler
@ 2023-06-11  5:35         ` Andrew Tropin
  2023-06-11 21:09           ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Andrew Tropin @ 2023-06-11  5:35 UTC (permalink / raw)
  To: Liliana Marie Prikler, 63984

[-- Attachment #1: Type: text/plain, Size: 3336 bytes --]

On 2023-06-10 10:51, Liliana Marie Prikler wrote:

> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-11  5:35         ` Andrew Tropin
@ 2023-06-11 21:09           ` Mekeor Melire
  2023-06-12  4:30             ` Andrew Tropin
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2023-06-11 21:09 UTC (permalink / raw)
  To: Andrew Tropin; +Cc: 63984, liliana.prikler

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.




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-11 21:09           ` Mekeor Melire
@ 2023-06-12  4:30             ` Andrew Tropin
  0 siblings, 0 replies; 14+ messages in thread
From: Andrew Tropin @ 2023-06-12  4:30 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 63984, liliana.prikler

[-- Attachment #1: Type: text/plain, Size: 1329 bytes --]

On 2023-06-11 21:09, Mekeor Melire wrote:

> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-06-09 16:22 [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Liliana Marie Prikler
  2023-06-09  8:40 ` [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs Liliana Marie Prikler
  2023-06-10  6:46 ` [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Andrew Tropin
@ 2023-07-04  7:39 ` Mekeor Melire
  2023-07-08 17:04   ` Liliana Marie Prikler
  2 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2023-07-04  7:39 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 63984, andrew

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)).




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-07-04  7:39 ` Mekeor Melire
@ 2023-07-08 17:04   ` Liliana Marie Prikler
  2023-07-12 18:15     ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-07-08 17:04 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 63984, andrew

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).

Cheers 




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-07-08 17:04   ` Liliana Marie Prikler
@ 2023-07-12 18:15     ` Mekeor Melire
  2023-07-13 16:20       ` bug#63984: " Liliana Marie Prikler
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2023-07-12 18:15 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 63984, andrew

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.




^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#63984: [PATCH emacs-team 0/2] Start preparing for Emacs 29
  2023-07-12 18:15     ` Mekeor Melire
@ 2023-07-13 16:20       ` Liliana Marie Prikler
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler @ 2023-07-13 16:20 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 63984-done, andrew

Am Mittwoch, dem 12.07.2023 um 18:15 +0000 schrieb Mekeor Melire:
> 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





^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-07-13 16:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-09 16:22 [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Liliana Marie Prikler
2023-06-09  8:40 ` [bug#63984] [PATCH emacs-team 1/2] gnu: Make emacs-next-tree-sitter the new emacs Liliana Marie Prikler
2023-06-09 11:28   ` [bug#63984] [PATCH emacs-team 2/2] gnu: Construct Emacs packages from bottom up Liliana Marie Prikler
2023-06-10  6:46 ` [bug#63984] [PATCH emacs-team 0/2] Start preparing for Emacs 29 Andrew Tropin
2023-06-10  7:46   ` Liliana Marie Prikler
2023-06-10  8:20     ` Andrew Tropin
2023-06-10  8:51       ` Liliana Marie Prikler
2023-06-11  5:35         ` Andrew Tropin
2023-06-11 21:09           ` Mekeor Melire
2023-06-12  4:30             ` Andrew Tropin
2023-07-04  7:39 ` Mekeor Melire
2023-07-08 17:04   ` Liliana Marie Prikler
2023-07-12 18:15     ` Mekeor Melire
2023-07-13 16:20       ` bug#63984: " Liliana Marie Prikler

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).