Subject: recoll package does not provide recollq which Emacs needs
From: Kyle Andrews <[email-masked]>
To: bug-guix <[email-masked]>
Date: Wed, 19 Apr 2023 04:52:20 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Dear Guix,

I am experimenting with using Recoll to help me discover topical files on my computer. I'm finding it very helpful, but I would rather eschew the QT interface in favor of sticking with Emacs.

There is an existing package which integrates with recoll interactively through "consult" on ELPA. Unfortunately, it depends on recoll providing an executable called recollq. Yet, recollq is not currently provided the recoll package in Guix. However, strangely the recollq man page is. The HTML documentation in the source tarball suggests it is not always built, but being unfamiliar with these complex auto-configured Makefile-based workflow I couldn't find a way to enable it.  

While I have found that `recoll -t' lets me make plain text queries from a database at a shell prompt, I was unsuccessful substituting `recollq' with `recoll -t' in the Emacs extension package since recollq apparently needed to be a file on the path. It would seem to me a lot less janky to just include that file. I included what I tried in the package recipe for emacs-consult-recoll below.

Thanks,
Kyle

P.S. - Here is the package recipe I made for emacs-consult-recoll based on the ELPA importer and reading the consult-recoll web page to simplify the description. 

```
(use-modules
 (gnu packages)
 (guix packages)
 (guix download)
 (guix build utils)
 ((guix licenses) #:prefix license:)
 (guix build-system emacs)
 (gnu packages emacs-xyz))

(define-public emacs-consult-recoll
  (package
   (name "emacs-consult-recoll")
   (version "0.8")
   (source (origin
            (method url-fetch)
            (uri (string-append
                  "https://elpa.gnu.org/packages/consult-recoll-" version
                  ".tar"))
	    ;; (modules '((guix build utils)))
            ;; (snippet
	    ;;   (substitute* "consult-recoll.el"
            ;;     (("recollq") "recoll -t -n 0")))
            (sha256
             (base32
              "02vg1rr2fkcqrrivqgggdjdq0ywvlyzazwq1xd02yah3j4sbv4ag"))))
   (build-system emacs-build-system)
   (propagated-inputs (list emacs-consult))
   (home-page "https://codeberg.org/jao/consult-recoll")
   (synopsis "Recoll queries using a consult interface in Emacs")
   (description
    " This package provides an emacs interface to perform recoll queries,
and display its results, via consult. It is also recommened that you
use a a package for vertical display of completions that works well
with consult, such as vertico.

Recoll is a local search engine that knows how to index a wide variety
of file formats, including PDFs, org and other text files and
emails. It also offers a sophisticated query language, and, for some
document kinds, snippets in the the found documents actually matching
the query at hand.")
   (license license:gpl3)))
```