Subject: bug#55199: 28.1; rcirc auth-source integration doesn't handle port being a number

From: Javier Olaechea <[email-masked]>
Date: Sun, 21 Aug 2022 01:00:48 -0500

I have a simple way to reproduce the issue. Start emacs with emacs -Q. Then
evaluate the following snippet

(require 'auth-source)

(let ((auth-sources '("secrets:Login")))
  (auth-source-search :port 6697))

So the issue is not at all on rcirc, but that secrets backend assumes that
the search specs should be strings. I haven't researched the SecretService
API to know if this is a restriction of the underlying dbus service the
secrets backend works with or just a restrictive assumption of the code in
secrets.el.

On Fri, Jun 10, 2022 at 10:46 PM Javier Olaechea <[email-masked]> wrote:

> You are right I can't reproduce from emacs -Q. The only difference I can
> see is that I have secrets:Login as an auth-source. auth-sources value is
> ("~/.authinfo.gpg" "~/.authinfo" "secrets:Login"). I'll look into how
> secrets:Login is implemented to see if I can pin down the issue.
>
> On Wed, May 18, 2022 at 6:26 PM Philip Kaludercic <[email-masked]>
> wrote:
>
>> Javier Olaechea <[email-masked]> writes:
>>
>> > If rcirc-server-alist is set using the customize interface, the port in
>> the
>> > plist is going to be a number, not a string. AUTH-SOURCE-SEARCH expects
>> the
>> > port to be a string. So M-x rcirc  with the following value
>> >
>> > '(rcirc-server-alist
>> >    '(("irc.libera.chat" :nick "PuercoPop" :port 6697 :user-name
>> "PuercoPop"
>> > :channels
>> >       ("#emacs" "#rcirc")
>> >       :encryption tls)))
>> >
>> > results in AUTH-SOURCE-SEARCH throwing an error.
>>
>> The default value is already a number, as is the value in my
>> configuration, and I have never encountered this issue.  Starting rcirc
>> emacs -Q also seems to have no issue with a number.  Could you ensure
>> that this is not an issue on your end?
>>
>> > The fix could be as
>> > straighforward ensureing the port is a string before calling
>> > auth-source-search[0]. ej. (if (numberp port) (number-to-string port)
>> port)
>> >
>> > [0]:
>> >
>> https://github.com/emacs-mirror/emacs/blob/95dbe4b6ae2e88213835a8ded3928b6769d78f2c/lisp/net/rcirc.el#L576
>> >
>> > That is how I've fixed the issue locally. Not sure if other parts of
>> rcirc
>> > assume port will be a string.
>> >
>> > In GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
>> version
>> > 1.16.0, Xaw scroll bars)
>> >  of 2022-04-10 built on PuercoDesktop
>> > Windowing system distributor 'The X.Org Foundation', version
>> 11.0.12013000
>> > System Description: Ubuntu 20.04.4 LTS
>> >
>> > Configured using:
>> >  'configure --prefix=/usr/local --with-x-toolkit=lucid
>> >  --with-native-compiler'
>> >
>> > Configured features:
>> > CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
>> > LCMS2 LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG
>> > RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM
>> > LUCID ZLIB
>> >
>> > Important settings:
>> >   value of $LC_COLLATE: en_US.UTF-8
>> >   value of $LC_CTYPE: en_US.UTF-8
>> >   value of $LC_MESSAGES: en_US.UTF-8
>> >   value of $LC_MONETARY: es_PE.UTF-8
>> >   value of $LC_NUMERIC: en_US.UTF-8
>> >   value of $LC_TIME: en_US.UTF-8
>> >   value of $LANG: en_US.UTF-8
>> >   locale-coding-system: utf-8-unix
>> >
>> > Major mode: rcirc
>> >
>> > Minor modes in effect:
>> >   flyspell-mode: t
>> >   sly-symbol-completion-mode: t
>> >   electric-pair-mode: t
>> >   magit-wip-initial-backup-mode: t
>> >   magit-wip-before-change-mode: t
>> >   magit-wip-after-apply-mode: t
>> >   magit-wip-after-save-mode: t
>> >   magit-wip-mode: t
>> >   global-git-commit-mode: t
>> >   magit-auto-revert-mode: t
>> >   winner-mode: t
>> >   helm-descbinds-mode: t
>> >   helm-fuz-mode: t
>> >   helm-adaptive-mode: t
>> >   global-anzu-mode: t
>> >   anzu-mode: t
>> >   recentf-mode: t
>> >   minions-mode: t
>> >   savehist-mode: t
>> >   delete-selection-mode: t
>> >   global-auto-revert-mode: t
>> >   minibuffer-depth-indicate-mode: t
>> >   auto-compile-on-load-mode: t
>> >   auto-compile-on-save-mode: t
>> >   override-global-mode: t
>> >   rcirc-track-minor-mode: t
>> >   rcirc-omit-mode: t
>> >   helm-mode: t
>> >   helm-minibuffer-history-mode: t
>> >   shell-dirtrack-mode: t
>> >   helm--remap-mouse-mode: t
>> >   async-bytecomp-package-mode: t
>> >   global-undo-tree-mode: t
>> >   undo-tree-mode: t
>> >   tooltip-mode: t
>> >   global-eldoc-mode: t
>> >   show-paren-mode: t
>> >   electric-indent-mode: t
>> >   mouse-wheel-mode: t
>> >   use-hard-newlines: t
>> >   menu-bar-mode: t
>> >   file-name-shadow-mode: t
>> >   global-font-lock-mode: t
>> >   font-lock-mode: t
>> >   auto-composition-mode: t
>> >   auto-encryption-mode: t
>> >   auto-compression-mode: t
>> >   column-number-mode: t
>> >   line-number-mode: t
>> >   transient-mark-mode: t
>> >
>> > Load-path shadows:
>> > /home/puercopop/.emacs.d/site-lisp/sly/sly-autoloads hides
>> > /home/puercopop/.emacs.d/lib/sly/sly-autoloads
>> > /home/puercopop/.emacs.d/site-lisp/sly/sly hides
>> > /home/puercopop/.emacs.d/lib/sly/sly
>> > /home/puercopop/.emacs.d/lib/telega/test hides
>> > /home/puercopop/.emacs.d/lib/paredit/test
>> > /home/puercopop/.emacs.d/lib/telega/test hides
>> > /home/puercopop/.emacs.d/lib/libgit/test
>> > /home/puercopop/.emacs.d/lib/telega/test hides
>> > /home/puercopop/.emacs.d/lib/easy-kill/test
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-latex hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-latex
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-ref hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-ref
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-compat hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-compat
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-src hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-src
>> > /home/puercopop/.emacs.d/lib/org/lisp/oc-biblatex hides
>> > /usr/local/share/emacs/28.1/lisp/org/oc-biblatex
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-list hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-list
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-lint hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-lint
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-ditaa hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-ditaa
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-sed hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-sed
>> > /home/puercopop/.emacs.d/lib/org/lisp/oc-basic hides
>> > /usr/local/share/emacs/28.1/lisp/org/oc-basic
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-texinfo hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-texinfo
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-colview hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-colview
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-rmail hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-rmail
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-macs hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-macs
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-mouse hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-mouse
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-footnote hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-footnote
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-exp hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-exp
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-screen hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-screen
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-odt hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-odt
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-lua hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-lua
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-habit hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-habit
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-agenda hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-agenda
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-sass hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-sass
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-docview hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-docview
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-macro hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-macro
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-duration hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-duration
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-table hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-table
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-mobile hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-mobile
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-latex hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-latex
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-element hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-element
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-css hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-css
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-entities hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-entities
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-awk hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-awk
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-eww hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-eww
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-perl hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-perl
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-ruby hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-ruby
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-haskell hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-haskell
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-processing hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-processing
>> > /home/puercopop/.emacs.d/lib/org/lisp/org hides
>> > /usr/local/share/emacs/28.1/lisp/org/org
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-bibtex hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-bibtex
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-emacs-lisp hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-emacs-lisp
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-gnuplot hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-gnuplot
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-groovy hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-groovy
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-keys hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-keys
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-feed hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-feed
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-man hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-man
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-eshell hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-eshell
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-indent hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-indent
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-table hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-table
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-fortran hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-fortran
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-clock hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-clock
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-plot hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-plot
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-info hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-info
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-shell hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-shell
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-lilypond hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-lilypond
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-archive hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-archive
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-dot hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-dot
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-bbdb hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-bbdb
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-beamer hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-beamer
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-ascii hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-ascii
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-md hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-md
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-matlab hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-matlab
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-ctags hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-ctags
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-w3m hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-w3m
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-man hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-man
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-octave hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-octave
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-goto hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-goto
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-eshell hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-eshell
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-lob hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-lob
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-org hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-org
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-core hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-core
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-protocol hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-protocol
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-forth hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-forth
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-eval hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-eval
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-lisp hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-lisp
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-comint hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-comint
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-crypt hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-crypt
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-icalendar hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-icalendar
>> > /home/puercopop/.emacs.d/lib/org/lisp/oc-csl hides
>> > /usr/local/share/emacs/28.1/lisp/org/oc-csl
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-faces hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-faces
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-datetree hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-datetree
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-julia hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-julia
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-publish hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-publish
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-refile hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-refile
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-sql hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-sql
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-num hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-num
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-sqlite hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-sqlite
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-attach hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-attach
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-plantuml hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-plantuml
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-html hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-html
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-scheme hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-scheme
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-ocaml hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-ocaml
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-id hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-id
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-irc hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-irc
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-java hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-java
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-attach-git hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-attach-git
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-timer hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-timer
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-maxima hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-maxima
>> > /home/puercopop/.emacs.d/lib/org/lisp/ox-koma-letter hides
>> > /usr/local/share/emacs/28.1/lisp/org/ox-koma-letter
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-org hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-org
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-clojure hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-clojure
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-doi hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-doi
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-capture hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-capture
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-inlinetask hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-inlinetask
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-makefile hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-makefile
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-tempo hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-tempo
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-mhe hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-mhe
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-C hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-C
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-install hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-install
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-R hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-R
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol-gnus hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol-gnus
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-tangle hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-tangle
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-version hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-version
>> > /home/puercopop/.emacs.d/lib/org/lisp/oc hides
>> > /usr/local/share/emacs/28.1/lisp/org/oc
>> > /home/puercopop/.emacs.d/lib/org/lisp/oc-natbib hides
>> > /usr/local/share/emacs/28.1/lisp/org/oc-natbib
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-calc hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-calc
>> > /home/puercopop/.emacs.d/lib/org/lisp/ol hides
>> > /usr/local/share/emacs/28.1/lisp/org/ol
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-pcomplete hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-pcomplete
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-python hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-python
>> > /home/puercopop/.emacs.d/lib/org/lisp/org-loaddefs hides
>> > /usr/local/share/emacs/28.1/lisp/org/org-loaddefs
>> > /home/puercopop/.emacs.d/lib/org/lisp/ob-js hides
>> > /usr/local/share/emacs/28.1/lisp/org/ob-js
>> >
>> > Features:
>> > (shadow sort mail-extr emacsbug sendmail cus-edit disp-table
>> > network-stream helm-external misearch multi-isearch vc-hg help-fns
>> > cl-print cus-start secrets tramp-archive tramp-gvfs tramp-cache zeroconf
>> > doom-1337-theme paredit circe lui-irc-colors irc lcs lui-logging
>> > lui-format lui tracking shorten flyspell ispell circe-compat elfeed-show
>> > elfeed-search elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db
>> > elfeed-lib avl-tree xml-query mastodon mastodon-toot emojify ht socks
>> > elpher honcho sly sly-completion sly-buttons sly-messages sly-common
>> > apropos hyperspec shackle trace terraform-mode hcl-mode graphql-mode
>> > ediprolog rust-utils rust-mode rust-rustfmt rust-playpen rust-compile
>> > rust-cargo sql view qml-mode go-dlv go-mode find-file ffap gud bundler
>> > inf-ruby ruby-mode rails-log-mode chruby eglot array jsonrpc ert ewoc
>> > debug flymake-proc flymake warnings compile-eslint xref-js2 js2-mode
>> > etags fileloop tree-sitter-query scheme tree-sitter-debug generator
>> > tree-sitter-langs tree-sitter-langs-build tar-mode arc-mode archive-mode
>> > tree-sitter-hl tree-sitter tree-sitter-load tree-sitter-cli tsc tsc-dyn
>> > tsc-dyn-get dired-aux tsc-obsolete yaml-mode css-mode smie sgml-mode
>> > facemenu eww xdg url-queue shr kinsoku svg dom mm-url gnus nnheader
>> > elec-pair man xref dired-x notmuch hl-line notmuch-hello notmuch-tree
>> > notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message
>> > notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company
>> > notmuch-parser notmuch-wash coolj notmuch-query goto-addr icalendar
>> > diary-lib diary-loaddefs notmuch-tag notmuch-lib notmuch-version
>> > notmuch-compat mm-view mml-smime smime dig org-pomodoro alert
>> > notifications dbus org-timer org-feed helm-org org-protocol org-agenda
>> > org-refile org-archive org-datetree org-clock ob-shell ob-sql org
>> > org-macro org-footnote org-pcomplete org-list org-faces org-entities
>> > org-version ob-emacs-lisp org-table org-loaddefs cal-menu calendar
>> > cal-loaddefs es-mode request js cc-mode cc-fonts cc-guess cc-menus
>> > cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ob-restclient ob
>> > ob-tangle ol org-src ob-ref ob-lob ob-table ob-exp ob-comint ob-core
>> > ob-eval org-keys oc org-compat org-macs restclient-helm restclient
>> > htmlize xterm-color moody doom-themes doom-themes-base tron-legacy-theme
>> > tangotango-theme exotica-theme acme-theme parchment-theme autothemer
>> > cyberpunk-theme moe-theme moe-dark-theme moe-light-theme gh-notify
>> > forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs
>> > gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
>> > gsexp ghub let-alist forge-notify forge-revnote forge-pullreq
>> > forge-issue forge-topic yaml bug-reference forge-post markdown-mode
>> > color noutline outline forge-repo forge forge-core forge-db closql
>> > emacsql-sqlite emacsql emacsql-compiler url-http url-auth url-gw nsm
>> > magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
>> > magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
>> > magit-remote magit-commit magit-sequence magit-notes magit-worktree
>> > magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
>> > magit-status magit package url-handlers magit-repos magit-apply
>> > magit-wip magit-log which-func imenu magit-diff smerge-mode git-commit
>> > log-edit message rmc rfc822 mml mml-sec gnus-util rmail rmail-loaddefs
>> > mm-decode mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader
>> > pcvs-util add-log magit-core magit-autorevert magit-margin
>> > magit-transient magit-process with-editor server magit-mode magit-git
>> > magit-base magit-section crm dash vc-annotate vc vc-git diff-mode
>> > vc-dispatcher ediff ediff-merg ediff-mult ediff-wind ediff-diff
>> > ediff-help ediff-init ediff-util winner ace-window avy password-vault+
>> > epa-file epa derived epg rfc6068 epg-config pinentry transient darkroom
>> > face-remap helm-dash dash-docs use-package-dash-docs gnutls puny
>> > helm-descbinds helm-pages helm-bookmark helm-net browse-url xml url
>> > url-proxy url-privacy url-expand url-methods url-history url-cookie
>> > url-domsuf url-util url-parse url-vars mailcap helm-fuz helm-command
>> > helm-elisp helm-eval edebug backtrace find-func helm-info fuz fuz-extra
>> > inline fuz-core helm-adaptive consult easy-kill anzu advice thingatpt
>> > project bookmark pp proced recentf tree-widget wid-edit minions savehist
>> > jka-compr delsel autorevert mb-depth auto-compile packed use-package
>> > use-package-ensure use-package-delight use-package-diminish
>> > use-package-bind-key bind-key use-package-core rcirc helm-mode helm-misc
>> > helm-files image-dired image-mode dired dired-loaddefs exif filenotify
>> > tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat
>> > shell pcomplete parse-time iso8601 time-date ls-lisp auth-source
>> > password-cache json map helm-buffers helm-occur helm-tags helm-locate
>> > helm-grep wgrep-helm wgrep grep compile text-property-search comint
>> > ansi-color ring helm-regexp format-spec helm-utils helm-help helm-types
>> > helm helm-core easy-mmode async-bytecomp helm-global-bindings
>> > helm-source eieio eieio-core cl-macs eieio-loaddefs helm-multi-match
>> > helm-lib async undo-tree diff queue cus-load edmacro kmacro rx
>> > helm-easymenu cl-extra help-mode seq byte-opt gv cl-seq borg subr-x
>> > pcase info cl-loaddefs cl-lib bytecomp byte-compile cconv autoload
>> > radix-tree lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util
>> > ietf-drums mail-prsvr iso-transl tooltip eldoc paren electric uniquify
>> > ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
>> > term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
>> > tabulated-list replace newcomment text-mode lisp-mode prog-mode register
>> > page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
>> > scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
>> > frame minibuffer cl-generic cham georgian utf-8-lang misc-lang
>> > vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
>> > hebrew greek romanian slovak czech european ethiopic indian cyrillic
>> > chinese composite emoji-zwj charscript charprop case-table epa-hook
>> > jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button
>> > loaddefs faces cus-face macroexp files window text-properties overlay
>> > sha1 md5 base64 format env code-pages mule custom widget
>> > hashtable-print-readable backquote threads dbusbind inotify lcms2
>> > dynamic-setting system-font-setting font-render-setting cairo x-toolkit
>> > x multi-tty make-network-process emacs)
>> >
>> > Memory information:
>> > ((conses 16 698099 57754)
>> >  (symbols 48 56500 2)
>> >  (strings 32 197929 10143)
>> >  (string-bytes 1 6567580)
>> >  (vectors 16 104864)
>> >  (vector-slots 8 1221849 80720)
>> >  (floats 8 724 375)
>> >  (intervals 56 5608 1635)
>> >  (buffers 992 33))
>>
>
>
> --
> "I object to doing things that computers can do." — Olin Shivers
>

-- 
"I object to doing things that computers can do." — Olin Shivers