Subject: [bug#70917] [PATCH] gnu: Add emacs-helm-org-ql.

From: Nicolas Graves <[email-masked]>
Date: Mon, 13 May 2024 12:49:32 +0200

* gnu/packages/emacs-xyz.scm (emacs-helm-org-ql): New variable.
(emacs-org-ql)[phases]: Add phase 'remove-helm-org-ql.
[propagated-inputs]: Remove emacs-helm, emacs-helm-org.

The author didn't mean to make the package depend on helm :
"Note that Helm is not declared as a package dependency, so this does
not cause Helm to be installed.", but the way we packaged it in Guix
did. Split the extension into a separate dependency instead, this
avoids 3 Mo to be propagated in a profile where it's not meant.

Change-Id: I3537c0b08cfffac3d66b761173761a3806497358
---
 gnu/packages/emacs-xyz.scm | 36 +++++++++++++++++++++++++++++++++---
 1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 9e3bd5ae647..861402f9f52 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -23860,15 +23860,18 @@ (define-public emacs-org-ql
     (arguments
      (list
       #:tests? #f                       ;FIXME: check phase freezes
-      #:test-command #~(list "buttercup" "-L" ".")))
+      #:test-command #~(list "buttercup" "-L" ".")
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-helm-org-ql
+            (lambda _
+              (delete-file "helm-org-ql.el"))))))
     (native-inputs
      (list emacs-buttercup emacs-with-simulated-input emacs-xr))
     (propagated-inputs
      (list emacs-compat
            emacs-dash
            emacs-f
-           emacs-helm
-           emacs-helm-org
            emacs-org
            emacs-org-super-agenda
            emacs-ov
@@ -23881,6 +23884,33 @@ (define-public emacs-org-ql
 files, allowing for actions to be performed based on search criteria.")
     (license license:gpl3+)))
 
+(define-public emacs-helm-org-ql
+  (package/inherit emacs-org-ql
+    (name "emacs-helm-org-ql")
+    (arguments
+     (list
+      #:tests? #f                       ;no tests
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-emacs-org-ql
+            (lambda _
+              (install-file "helm-org-ql.el" "..")
+              (let ((cwd (getcwd)))
+                (with-directory-excursion ".."
+                  (delete-file-recursively cwd)
+                  (mkdir cwd)
+                  (install-file "helm-org-ql.el" cwd))))))))
+    (propagated-inputs
+     (list emacs-dash
+           emacs-helm
+           emacs-helm-org
+           emacs-org-ql
+           emacs-s))
+    (synopsis "Helm commands for @code{emacs-org-ql}")
+    (description "This package provides @code{emacs-helm} commands for
+@{emacs-org-ql}, a Lispy query language for Org files, allowing for actions to
+be performed based on search criteria.")))
+
 (define-public emacs-bing-dict
   (package
     (name "emacs-bing-dict")
-- 
2.41.0