Subject: [PATCH v2 23/33] gnu: emacs-geiser: Update to 0.13.

From: Leo Prikler <[email-masked]>
Date: Sat, 17 Apr 2021 19:06:38 +0200

From: Morgan Smith <[email-masked]>

* gnu/packages/patches/emacs-geiser-autoload-activate-implementation.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add it here.
* gnu/packages/emacs-xyz.scm (emacs-geiser): Update to 0.13.
[source]: Change upstream URL.
[build-system]: Change to emacs-build-system.
[arguments]: Adjust accordingly.
[native-inputs]: Remove emacs, autoconf, and automake.
[description]: State that other packages are needed for geiser to be useful.

Signed-off-by: Leo Prikler <[email-masked]>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/emacs-xyz.scm                    | 46 +++++++++++--------
 ...ser-autoload-activate-implementation.patch | 26 +++++++++++
 3 files changed, 54 insertions(+), 19 deletions(-)
 create mode 100644 gnu/packages/patches/emacs-geiser-autoload-activate-implementation.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 50b11a8ca2..393fa61bf5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -968,6 +968,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/emacs-exec-path.patch			\
   %D%/packages/patches/emacs-exwm-fix-fullscreen-states.patch	\
   %D%/packages/patches/emacs-fix-scheme-indent-function.patch	\
+  %D%/packages/patches/emacs-geiser-autoload-activate-implementation.patch	\
   %D%/packages/patches/emacs-ignore-empty-xim-styles.patch	\
   %D%/packages/patches/emacs-json-reformat-fix-tests.patch	\
   %D%/packages/patches/emacs-highlight-stages-add-gexp.patch	\
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0dc7b8961b..85295524a5 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -219,43 +219,51 @@
 (define-public emacs-geiser
   (package
     (name "emacs-geiser")
-    (version "0.12")
+    (version "0.13")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://gitlab.com/jaor/geiser/")
+             (url "https://gitlab.com/emacs-geiser/geiser.git")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0n718xpys7v94zaf9lpmsx97qgn6qxif1acr718wyvpmfr4hiv08"))))
-    (build-system gnu-build-system)
+        (base32 "0bwjcfmcyv6z0i5ivqirgcibxdkrlf5vyxcbj7k8dk7flwg1fpd9"))
+       (patches
+        (search-patches "emacs-geiser-autoload-activate-implementation.patch"))))
+    (build-system emacs-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
-         (add-after 'install 'post-install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (symlink "geiser-install.el"
-                      (string-append (assoc-ref outputs "out")
-                                     "/share/emacs/site-lisp/"
-                                     "geiser-autoloads.el"))
-             #t)))))
-    (inputs
-     `(("guile" ,guile-2.2)))
+         ;; Move the source files to the top level, which is included in
+         ;; the EMACSLOADPATH.
+         (add-after 'unpack 'move-source-files
+           (lambda _
+             (let ((el-files (find-files "./elisp" ".*\\.el$")))
+               (for-each (lambda (f)
+                           (rename-file f (basename f)))
+                         el-files))
+             #t))
+         (add-before 'install 'make-info
+           (lambda _
+             (with-directory-excursion "doc"
+               (invoke "makeinfo" "--no-split"
+                       "-o" "geiser.info" "geiser.texi")))))))
     (native-inputs
-     `(("emacs" ,emacs-minimal)
-       ("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("texinfo" ,texinfo)))
+     `(("texinfo" ,texinfo)))
     (home-page "https://nongnu.org/geiser/")
-    (synopsis "Collection of Emacs modes for Guile and Racket hacking")
+    (synopsis "Collection of Emacs modes for Scheme hacking")
     (description
      "Geiser is a collection of Emacs major and minor modes that conspire with
 one or more Scheme implementations to keep the Lisp Machine Spirit alive.  The
 continuously running Scheme interpreter takes the center of the stage in
 Geiser.  A bundle of Elisp shims orchestrates the dialog between the Scheme
 implementation, Emacs and, ultimately, the schemer, giving them access to live
-metadata.")
+metadata.
+
+This package provides just the core of Geiser.  To effectively use it with your
+favourite Scheme implementation, you also need the corresponding geiser package,
+e.g. emacs-geiser-guile for Guile.")
     (license license:bsd-3)))
 
 (define-public emacs-ac-geiser
diff --git a/gnu/packages/patches/emacs-geiser-autoload-activate-implementation.patch b/gnu/packages/patches/emacs-geiser-autoload-activate-implementation.patch
new file mode 100644
index 0000000000..47d513b3a3
--- /dev/null
+++ b/gnu/packages/patches/emacs-geiser-autoload-activate-implementation.patch
@@ -0,0 +1,26 @@
+From 9fd3174cead8bfa17a8413bffa38362853d71a02 Mon Sep 17 00:00:00 2001
+From: jao <[email-masked]>
+Date: Mon, 5 Apr 2021 23:06:56 +0100
+Subject: [PATCH] autoload geiser activate implementation
+
+---
+ elisp/geiser.el | 3 +++
+ readme.org      | 4 ++--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/elisp/geiser.el b/elisp/geiser.el
+index 887b8da..96c1dd6 100644
+--- a/elisp/geiser.el
++++ b/elisp/geiser.el
+@@ -104,6 +104,9 @@
+ ;;;###autoload
+ (autoload 'geiser-mode--maybe-activate "geiser-mode")
+
++;;;###autoload
++(autoload 'geiser-activate-implementation "geiser-impl")
++
+ ;;;###autoload
+ (mapc (lambda (group)
+         (custom-add-load group (symbol-name group))
+--
+GitLab
-- 
2.31.1