unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
       [not found] <878rbc1eem.fsf@ngraves.fr>
@ 2023-08-13 20:35 ` Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-14 16:40   ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-13 20:35 UTC (permalink / raw)
  To: 65274


From: Nicolas Graves <ngraves@ngraves.fr>
To: bug-gnu-emacs@gnu.org
Subject: 29.0.91; [feature request] Readonly argument for emacs built-in
 sqlite support.
Date: Wed, 19 Jul 2023 10:41:53 +0200
(email originally sent on the 19th of July, somehow wasnt recognized
properly by the bug tracker).

The sqlite3 cli tool has an option -readonly, which doesn't seem to be
available in Emacs for now. This means that if someone wants to inspect
a locked database, we would necessarily need to make a copy, while the
-readonly flag would be enough using a shell-command.

In GNU Emacs 29.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.37, cairo version 1.16.0)
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash
 SHELL=/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin/bash
 --prefix=/gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91
 --enable-fast-install --with-pgtk --with-modules --with-cairo
 --with-native-compilation --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP
NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER XIM GTK3 ZLIB

Important settings:
  value of $EMACSLOADPATH: /home/graves/.guix-home/profile/share/emacs/site-lisp:/gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp:/gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp
  value of $EMACSNATIVELOADPATH: /home/graves/.guix-home/profile/lib/emacs/native-site-lisp
  value of $LANG: fr_FR.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  info-manual+node-buffer-name-mode: t
  Info-persist-history-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  citar-embark-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  evil-commentary-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  windmove-mode: t
  global-tempel-abbrev-mode: t
  tempel-abbrev-mode: t
  rde-org-agenda-appt-mode: t
  global-org-modern-mode: t
  all-the-icons-completion-mode: t
  global-guix-prettify-mode: t
  guix-prettify-mode: t
  which-key-mode: t
  persp-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  corfu-doc-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  minions-mode: t
  global-auto-revert-mode: t
  subword-mode: t
  save-place-mode: t
  savehist-mode: t
  recentf-mode: t
  server-mode: t
  cl-old-struct-compat-mode: 1
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/gnu/store/j1qf5zl8pysg608l7szwan0qk25925wg-emacs-transient-0.4.1/share/emacs/site-lisp/transient-0.4.1/transient hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/transient
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-texinfo hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-texinfo
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-publish hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-publish
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-org hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-org
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-odt hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-odt
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-md hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-md
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-man hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-man
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-latex hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-latex
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-koma-letter hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-koma-letter
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-icalendar hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-icalendar
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-html hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-html
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-beamer hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-beamer
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ox-ascii hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ox-ascii
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-version hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-version
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-timer hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-timer
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-tempo hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-tempo
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-table hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-table
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-src hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-src
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-refile hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-refile
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-protocol hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-protocol
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-plot hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-plot
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-persist hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-persist
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-pcomplete hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-pcomplete
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-num hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-num
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-mouse hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-mouse
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-mobile hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-mobile
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-macs hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-macs
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-macro hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-macro
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-loaddefs hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-loaddefs
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-list hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-list
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-lint hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-lint
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-keys hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-keys
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-inlinetask hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-inlinetask
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-indent hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-indent
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-id hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-id
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-habit hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-habit
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-goto hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-goto
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-footnote hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-footnote
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-fold hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-fold
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-fold-core hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-fold-core
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-feed hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-feed
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-faces hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-faces
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-entities hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-entities
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-element hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-element
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-duration hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-duration
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-datetree hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-datetree
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-cycle hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-cycle
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-ctags hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-ctags
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-crypt hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-crypt
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-compat hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-compat
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-colview hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-colview
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-clock hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-clock
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-capture hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-capture
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-attach hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-attach
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-attach-git hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-attach-git
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-archive hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-archive
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/org-agenda hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/org-agenda
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-w3m hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-w3m
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-rmail hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-rmail
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-mhe hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-mhe
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-man hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-man
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-irc hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-irc
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-info hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-info
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-gnus hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-gnus
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-eww hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-eww
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-eshell hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-eshell
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-doi hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-doi
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-docview hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-docview
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-bibtex hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-bibtex
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ol-bbdb hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ol-bbdb
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc-natbib hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc-natbib
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc-csl hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc-csl
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc-bibtex hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc-bibtex
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc-biblatex hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc-biblatex
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/oc-basic hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/oc-basic
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-tangle hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-tangle
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-table hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-table
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-sqlite hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-sqlite
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-sql hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-sql
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-shell hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-shell
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-sed hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-sed
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-screen hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-screen
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-scheme hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-scheme
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-sass hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-sass
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-ruby hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-ruby
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-ref hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-ref
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-python hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-python
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-processing hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-processing
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-plantuml hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-plantuml
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-perl hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-perl
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-org hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-org
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-octave hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-octave
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-ocaml hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-ocaml
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-maxima hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-maxima
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-matlab hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-matlab
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-makefile hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-makefile
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-lua hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-lua
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-lob hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-lob
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-lisp hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-lisp
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-lilypond hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-lilypond
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-latex hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-latex
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-julia hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-julia
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-js hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-js
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-java hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-java
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-haskell hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-haskell
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-groovy hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-groovy
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-gnuplot hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-gnuplot
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-fortran hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-fortran
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-forth hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-forth
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-exp hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-exp
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-eval hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-eval
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-eshell hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-eshell
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-emacs-lisp hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-emacs-lisp
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-dot hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-dot
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-ditaa hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-ditaa
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-css hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-css
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-core hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-core
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-comint hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-comint
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-clojure hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-clojure
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-calc hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-calc
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-awk hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-awk
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-R hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-R
/gnu/store/mg7223g8mw90lccp6mm5g6f3mpjk70si-emacs-org-9.6.7/share/emacs/site-lisp/org-9.6.7/ob-C hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/org/ob-C
/gnu/store/wpbwpy52q2n6khqjplndx33gvln1clii-emacs-soap-client-3.2.3/share/emacs/site-lisp/soap-client-3.2.3/soap-inspect hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/net/soap-inspect
/gnu/store/wpbwpy52q2n6khqjplndx33gvln1clii-emacs-soap-client-3.2.3/share/emacs/site-lisp/soap-client-3.2.3/soap-client hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/net/soap-client
/gnu/store/6677fxb3s4cd0sfznsj3hcxir5qcff48-emacs-seq-2.23/share/emacs/site-lisp/seq-2.23/seq hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/emacs-lisp/seq
/gnu/store/4lnyj5wd55z478rwnixk7p5qgr02yn3z-emacs-let-alist-1.0.6/share/emacs/site-lisp/let-alist-1.0.6/let-alist hides /gnu/store/d33z4qb6na655mwzr10pixjl9a4lwbfc-emacs-next-pgtk-29.0.91/share/emacs/29.0.91/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr cape evil-collection-notmuch ol-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print
notmuch-crypto notmuch-wash coolj goto-addr icalendar hl-line
notmuch-mua notmuch-message notmuch-draft notmuch-tag
notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser
notmuch-lib notmuch-compat mm-view mml-smime smime gnutls dig emacsbug
evil-collection-custom cus-edit cus-start cus-load message yank-media
puny rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils magit-base evil-collection-magit-section
magit-section crm jka-compr face-remap pulse color consult-xref
vertico-buffer files-x cl-indent evil-collection-vc-git vc-git
evil-collection-diff-mode diff-mode easy-mmode vc-dispatcher
app-launcher evil-collection-helpful helpful cc-langs cc-vars cc-defs
evil-collection-imenu imenu trace evil-collection-edebug edebug
info-look evil-collection-info info+ info evil-collection-elisp-refs
elisp-refs misearch multi-isearch checkdoc lisp-mnt emacsql-sqlite
emacsql emacsql-compiler cl-print evil-collection-debug debug backtrace
etags fileloop evil-collection-xref xref evil-collection-flymake
flymake-proc flymake whitespace ws-butler smartparens-config
smartparens-rst smartparens-markdown smartparens-org smartparens-text
smartparens-python smartparens sql evil-collection-view view mule-util
ibrowse-history ibrowse-sql ibrowse-core citar-embark citar citar-file
citar-cache citar-format browse-url url url-proxy url-privacy url-expand
url-methods url-history url-cookie generate-lisp-file url-domsuf
url-util mailcap evil-collection-embark evil-collection-consult
embark-consult consult password-store with-editor embark-org embark ffap
auth-source-pass url-parse auth-source eieio eieio-core password-cache
url-vars dired-aux all-the-icons-dired orderless cursor-sensor origami
origami-parsers org-pomodoro alert log4e notifications dbus xml gntp
org-timer org-clock feature-loader rde-notmuch rde-flycheck rde-shell
ob-shell rde-power-menu rde-elisp rde-go ob-go rde-python ob-python
evil-collection-python python project pcase treesit rde-eval-in-repl
rde-citar oc-csl citeproc citeproc-itemgetters citeproc-biblatex
parse-time citeproc-bibtex parsebib ol-bibtex citeproc-cite
citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters
citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata
citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date
citeproc-context citeproc-prange citeproc-style citeproc-locale
citeproc-term f citeproc-rt citeproc-lib citeproc-s s let-alist queue
json bibtex iso8601 map rde-org-roam rde-elfeed rde-saving rde-evil
evil-surround evil-commentary evil-commentary-integration
evil-collection-unimpaired evil-collection-which-key
evil-collection-vertico evil-collection-tabulated-list
evil-collection-tab-bar evil-collection-simple evil-collection-replace
evil-collection-process-menu evil-collection-outline evil-collection-org
evil-collection-indent evil-collection-image image-mode
evil-collection-dired dired dired-loaddefs exif evil-collection-help
evil-collection-guix evil-collection-geiser evil-collection-elisp-mode
evil-collection-eldoc evil-collection-corfu evil-collection-compile
evil-collection-comint evil-collection-calendar calc-ext
evil-collection-calc evil-collection-buff-menu evil-collection-bookmark
evil-collection annalist evil evil-integration evil-maps evil-commands
reveal flyspell ispell evil-jumps evil-command-window evil-search
evil-ex shell evil-types evil-macros evil-repeat evil-states evil-core
evil-common windmove calc calc-loaddefs calc-macs rect evil-digraphs
evil-vars edmacro kmacro rde-tempel tempel rde-graphviz ob-dot
graphviz-dot-mode compile rde-org-agenda diary-lib diary-loaddefs
org-agenda org-element org-persist org-id avl-tree generator org-refile
rde-org org-modern rde-git rde-dired-ranger rde-spelling rde-popper
rde-info rde-xref rde-flymake rde-debbugs rde-all-the-icons
all-the-icons-completion all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons rde-help rde-webpaste rde-comint rde-eglot rde-guix
guix-prettify guix-utils bui-utils dash guix-auto-mode guix rde-geiser
ob-scheme geiser-impl help-fns radix-tree geiser-custom geiser-base
geiser rde-smartparens rde-org-protocol org-protocol org org-macro
org-pcomplete pcomplete org-list org-footnote org-faces org-entities
time-date noutline outline ob-emacs-lisp ob-sql ob ob-tangle org-src
ob-ref ob-lob ob-table ob-exp ob-comint comint ansi-osc ansi-color ring
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-compat
org-version org-macs format-spec rde-nov-el rde-pdf-tools
saveplace-pdf-view bookmark text-property-search pp rde-message
rde-monocle rde-eshell rde-dired rde-which-key which-key
rde-input-method cyrillic-dvorak-im quail rde-perspective perspective
advice thingatpt ido rde-compile rde-project rde-tramp rde-vertico
vertico-multiform byte-opt vertico-directory vertico-repeat vertico
rde-corfu corfu-doc corfu rde-completion marginalia rde-modus-themes
modus-operandi-theme modus-themes rde-appearance minions compat
compat-29 rde-emacs autorevert filenotify cap-words superword subword
saveplace savehist recentf tree-widget wid-edit rde-keymaps rde-docker
rde-youtube-dl rde-mpv rde-markdown rde-ledger rde-envrc rde-vterm
rde-fonts xdg fontaine rde-postgresql rde-pass comp comp-cstr warnings
icons subr-x cl-seq cl-macs gv cl-extra help-mode bytecomp byte-compile
server log4e-autoloads gntp-autoloads alert-autoloads
org-pomodoro-autoloads package-lint-autoloads flycheck-package-autoloads
wgrep-autoloads ht-autoloads emojify-autoloads origami-el-autoloads
consult-org-roam-autoloads yaml-autoloads treepy-autoloads
ghub-autoloads closql-autoloads forge-autoloads link-hint-autoloads
mini-frame-autoloads restart-emacs-autoloads consult-dir-autoloads
websocket-autoloads org-roam-ui-autoloads seq-autoloads
let-alist-autoloads biblio-autoloads dirvish-autoloads
git-email-autoloads consult-notmuch-autoloads ol-notmuch-autoloads
notmuch-autoloads flycheck-autoloads rde-power-menu-autoloads
ob-go-autoloads go-mode-autoloads reformatter-autoloads
python-black-autoloads eval-in-repl-geiser-autoloads
eval-in-repl-ielm-autoloads eval-in-repl-python-autoloads
eval-in-repl-shell-autoloads julia-mode-autoloads ace-window-autoloads
paredit-autoloads eval-in-repl-autoloads
org-babel-eval-in-repl-autoloads rde-eval-in-repl-autoloads
string-inflection-autoloads queue-autoloads parsebib-autoloads
citeproc-el-autoloads auctex-autoloads tex-site citar-autoloads
citar-org-roam-autoloads rde-citar-autoloads sqlite3-api-autoloads
pg-autoloads finalize-autoloads emacsql-autoloads
emacsql-sqlite3-autoloads org-roam-autoloads elfeed-org-autoloads
undo-fu-session-autoloads super-save-autoloads undo-fu-autoloads
evil-surround-autoloads evil-commentary-autoloads evil-org-autoloads
annalist-autoloads evil-collection-autoloads evil-autoloads
rde-evil-autoloads tempel-autoloads company-autoloads
graphviz-dot-mode-autoloads rde-graphviz-autoloads
rde-org-agenda-autoloads org-modern-autoloads org-appear-autoloads
org-contrib-autoloads org-autoloads rde-org-autoloads
git-gutter-transient-autoloads fringe-helper-autoloads
git-gutter-autoloads git-gutter-fringe-autoloads
git-timemachine-autoloads git-link-autoloads pcre2el-autoloads
hl-todo-autoloads magit-todos-autoloads transient-autoloads
magit-autoloads rde-git-autoloads dired-ranger-autoloads
popper-autoloads info-plus-autoloads rde-info-autoloads
soap-client-autoloads debbugs-autoloads
all-the-icons-completion-autoloads shut-up-autoloads loop-autoloads
list-utils-autoloads cl-loaddefs cl-lib elisp-refs-autoloads
helpful-autoloads deferred-autoloads request-autoloads
webpaste-autoloads rde-webpaste-autoloads consult-eglot-autoloads
daemons-autoloads magit-popup-autoloads edit-indirect-autoloads
bui-autoloads guix-autoloads gider-autoloads eros-autoloads
geiser-eros-autoloads geiser-guile-autoloads geiser-autoloads
smartparens-autoloads justify-kp-autoloads kv-autoloads esxml-autoloads
nov-el-autoloads saveplace-pdf-view-autoloads pdf-tools-autoloads
rde-pdf-tools-autoloads hide-mode-line-autoloads olivetti-autoloads
rde-monocle-autoloads eshell-prompt-extras-autoloads
eshell-syntax-highlighting-autoloads rde-eshell-autoloads
memoize-autoloads all-the-icons-autoloads all-the-icons-dired-autoloads
dired-rsync-autoloads rde-dired-autoloads which-key-autoloads
perspective-autoloads rde-perspective-autoloads rde-compile-autoloads
rde-project-autoloads rde-tramp-autoloads vertico-autoloads
corfu-doc-autoloads corfu-autoloads cape-autoloads pcmpl-args-autoloads
marginalia-autoloads orderless-autoloads rde-completion-autoloads
modus-themes-autoloads rde-modus-themes-autoloads minions-autoloads
rde-appearance-autoloads app-launcher-autoloads ws-butler-autoloads
expand-region-autoloads rde-keymaps-autoloads rde-emacs-autoloads
rde-mpv-autoloads rde-fonts-autoloads rde-pass-autoloads
feature-loader-autoloads dockerfile-mode-autoloads tablist-autoloads
json-snatcher-autoloads json-mode-autoloads rx js2-mode-autoloads
simple-httpd-autoloads skewer-mode-autoloads elfeed-autoloads
aio-autoloads docker-autoloads mpv-autoloads ytdl-autoloads
markdown-mode-autoloads ledger-mode-autoloads inheritenv-autoloads
envrc-autoloads vterm-autoloads fontaine-autoloads consult-autoloads
avy-autoloads embark-autoloads password-store-otp-autoloads
dash-autoloads f-autoloads compat-autoloads async-autoloads
with-editor-autoloads s-autoloads password-store-autoloads
pass-autoloads ess-autoloads guix-emacs rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-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 nadvice seq
simple cl-generic indonesian philippine 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 abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
gtk pgtk lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 967322 56502)
 (symbols 48 43452 3)
 (strings 32 288664 25645)
 (string-bytes 1 8423299)
 (vectors 16 85934)
 (vector-slots 8 1954741 24398)
 (floats 8 984 189)
 (intervals 56 81337 0)
 (buffers 984 30))

--
Best regards,
Nicolas Graves





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
  2023-08-13 20:35 ` bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-14 16:40   ` Eli Zaretskii
  2023-08-16 10:17     ` Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-14 16:40 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 65274

> Date: Sun, 13 Aug 2023 22:35:17 +0200
> From:  Nicolas Graves via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> 
> The sqlite3 cli tool has an option -readonly, which doesn't seem to be
> available in Emacs for now. This means that if someone wants to inspect
> a locked database, we would necessarily need to make a copy, while the
> -readonly flag would be enough using a shell-command.

Could you please explain what is a "locked database"?

The sqlite3 documentation says:

  SQLITE_OPEN_READWRITE
      The database is opened for reading and writing if possible, or
      reading only if the file is write protected by the operating
      system. In either case the database must already exist, otherwise
      an error is returned. For historical reasons, if opening in
      read-write mode fails due to OS-level permissions, an attempt is
      made to open it in read-only mode. sqlite3_db_readonly() can be
      used to determine whether the database is actually read-write.

My interpretation of this is that if opening for reading and writing
fails, SQlite will automatically attempt to open in read-only mode.
Does this not work in some cases?  IOW, in which cases would this
readonly option you are asking to add be useful?

Thanks.





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
  2023-08-14 16:40   ` Eli Zaretskii
@ 2023-08-16 10:17     ` Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-08-19  9:21       ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-08-16 10:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65274

On 2023-08-14 19:40, Eli Zaretskii wrote:

>> Date: Sun, 13 Aug 2023 22:35:17 +0200
>> From:  Nicolas Graves via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>>
>> The sqlite3 cli tool has an option -readonly, which doesn't seem to be
>> available in Emacs for now. This means that if someone wants to inspect
>> a locked database, we would necessarily need to make a copy, while the
>> -readonly flag would be enough using a shell-command.
>
> Could you please explain what is a "locked database"?
>
> The sqlite3 documentation says:
>
>   SQLITE_OPEN_READWRITE
>       The database is opened for reading and writing if possible, or
>       reading only if the file is write protected by the operating
>       system. In either case the database must already exist, otherwise
>       an error is returned. For historical reasons, if opening in
>       read-write mode fails due to OS-level permissions, an attempt is
>       made to open it in read-only mode. sqlite3_db_readonly() can be
>       used to determine whether the database is actually read-write.
>
> My interpretation of this is that if opening for reading and writing
> fails, SQlite will automatically attempt to open in read-only mode.
> Does this not work in some cases?  IOW, in which cases would this
> readonly option you are asking to add be useful?
>
> Thanks.

I'm sorry, I've resent this unsent patch from July which is rather not
precise, I now have more information.

My use-case is the package ibrowse.el, which uses sql commands to parse
in real time the database of browser (for history or bookmarks,
depending on the case)
(https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el).

Web browsers use very frequent updates and most of the time, even
trying to access it with readonly mode is not enough (I don't remember
all the details, but it's something along the lines of you can't open
even in read-only mode if the database file is currently being
updated).

Most other emacs packages which try to do the same thing circumvent the
issue by copying the whole database to /tmp and parsing it from
there. I've found another solution which doesn't require to copy the
file and it's to open it in immutable mode
(https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el#L58)
I remember the following stackoverflow link lead me to try this:
https://stackoverflow.com/questions/7857755/is-it-possible-to-open-a-locked-sqlite-database-in-read-only-mode

On the CLI, it's simply done by adding the uri file:...?immutable=1. The SQL
manual warns for possible errors if the database is being updated at the
same time, but I don't keep an open connection so I don't experience any
error whatsoever. One stackoverflow comment also hints about how it
could be done, this probably applies to emacs as well:

"To achieve the same thing with most SQLite drivers, because we can't directly set SQLITE_IOCAP_IMMUTABLE, the best way is to open the connection with the flag SQLITE_OPEN_READONLY | SQLITE_OPEN_URI to allow passing the file:...?immutable=1 URI as filename."

I've verified that this cannot be done on my version of emacs+sqlite
(currently GNU Emacs 29.0.92 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.37, cairo version 1.16.0)).

I know this is not the recommended way to use the sqlite
builtin-support (not a database by/for emacs, but parsing another app
data), but I would greatly appreciate if I can use this option with the
builtin support.

Thanks a lot for your work on emacs,

-- 
Best regards,
Nicolas Graves





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
  2023-08-16 10:17     ` Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-08-19  9:21       ` Eli Zaretskii
  2023-09-02  7:17         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-08-19  9:21 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 65274

> From: Nicolas Graves <ngraves@ngraves.fr>
> Cc: 65274@debbugs.gnu.org
> Date: Wed, 16 Aug 2023 12:17:00 +0200
> 
> My use-case is the package ibrowse.el, which uses sql commands to parse
> in real time the database of browser (for history or bookmarks,
> depending on the case)
> (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el).
> 
> Web browsers use very frequent updates and most of the time, even
> trying to access it with readonly mode is not enough (I don't remember
> all the details, but it's something along the lines of you can't open
> even in read-only mode if the database file is currently being
> updated).
> 
> Most other emacs packages which try to do the same thing circumvent the
> issue by copying the whole database to /tmp and parsing it from
> there. I've found another solution which doesn't require to copy the
> file and it's to open it in immutable mode
> (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el#L58)
> I remember the following stackoverflow link lead me to try this:
> https://stackoverflow.com/questions/7857755/is-it-possible-to-open-a-locked-sqlite-database-in-read-only-mode
> 
> On the CLI, it's simply done by adding the uri file:...?immutable=1. The SQL
> manual warns for possible errors if the database is being updated at the
> same time, but I don't keep an open connection so I don't experience any
> error whatsoever. One stackoverflow comment also hints about how it
> could be done, this probably applies to emacs as well:
> 
> "To achieve the same thing with most SQLite drivers, because we can't directly set SQLITE_IOCAP_IMMUTABLE, the best way is to open the connection with the flag SQLITE_OPEN_READONLY | SQLITE_OPEN_URI to allow passing the file:...?immutable=1 URI as filename."

Thanks.  I'm not sure I understood all the intricacies of this use
case, but could you please see if the patches below make your use case
possible?

diff --git a/src/sqlite.c b/src/sqlite.c
index fd528f2..f68edb9 100644
--- a/src/sqlite.c
+++ b/src/sqlite.c
@@ -277,13 +277,20 @@ check_sqlite (Lisp_Object db, bool is_statement)
 
 static int db_count = 0;
 
-DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 1, 0,
+DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 2, 0,
        doc: /* Open FILE as an sqlite database.
-If FILE is nil, an in-memory database will be opened instead.  */)
-  (Lisp_Object file)
+If FILE is nil, an in-memory database will be opened instead.
+If READONLY is non-nil, open the database in read-only mode,
+otherwise open it in read-write mode.  */)
+  (Lisp_Object file, Lisp_Object readonly)
 {
   Lisp_Object name;
-  int flags = (SQLITE_OPEN_CREATE  | SQLITE_OPEN_READWRITE);
+  int flags;
+
+  if (!NILP (readonly))
+    flags = SQLITE_OPEN_READONLY;
+  else
+    flags = (SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE);
 #ifdef SQLITE_OPEN_FULLMUTEX
   flags |= SQLITE_OPEN_FULLMUTEX;
 #endif





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
  2023-08-19  9:21       ` Eli Zaretskii
@ 2023-09-02  7:17         ` Eli Zaretskii
  2023-09-15  6:54           ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-09-02  7:17 UTC (permalink / raw)
  To: ngraves; +Cc: 65274

Ping!  Nicolas, could you please try the patch?  I'd like to install
it if it solves your problem.

> Cc: 65274@debbugs.gnu.org
> Date: Sat, 19 Aug 2023 12:21:05 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > From: Nicolas Graves <ngraves@ngraves.fr>
> > Cc: 65274@debbugs.gnu.org
> > Date: Wed, 16 Aug 2023 12:17:00 +0200
> > 
> > My use-case is the package ibrowse.el, which uses sql commands to parse
> > in real time the database of browser (for history or bookmarks,
> > depending on the case)
> > (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el).
> > 
> > Web browsers use very frequent updates and most of the time, even
> > trying to access it with readonly mode is not enough (I don't remember
> > all the details, but it's something along the lines of you can't open
> > even in read-only mode if the database file is currently being
> > updated).
> > 
> > Most other emacs packages which try to do the same thing circumvent the
> > issue by copying the whole database to /tmp and parsing it from
> > there. I've found another solution which doesn't require to copy the
> > file and it's to open it in immutable mode
> > (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el#L58)
> > I remember the following stackoverflow link lead me to try this:
> > https://stackoverflow.com/questions/7857755/is-it-possible-to-open-a-locked-sqlite-database-in-read-only-mode
> > 
> > On the CLI, it's simply done by adding the uri file:...?immutable=1. The SQL
> > manual warns for possible errors if the database is being updated at the
> > same time, but I don't keep an open connection so I don't experience any
> > error whatsoever. One stackoverflow comment also hints about how it
> > could be done, this probably applies to emacs as well:
> > 
> > "To achieve the same thing with most SQLite drivers, because we can't directly set SQLITE_IOCAP_IMMUTABLE, the best way is to open the connection with the flag SQLITE_OPEN_READONLY | SQLITE_OPEN_URI to allow passing the file:...?immutable=1 URI as filename."
> 
> Thanks.  I'm not sure I understood all the intricacies of this use
> case, but could you please see if the patches below make your use case
> possible?
> 
> diff --git a/src/sqlite.c b/src/sqlite.c
> index fd528f2..f68edb9 100644
> --- a/src/sqlite.c
> +++ b/src/sqlite.c
> @@ -277,13 +277,20 @@ check_sqlite (Lisp_Object db, bool is_statement)
>  
>  static int db_count = 0;
>  
> -DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 1, 0,
> +DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 2, 0,
>         doc: /* Open FILE as an sqlite database.
> -If FILE is nil, an in-memory database will be opened instead.  */)
> -  (Lisp_Object file)
> +If FILE is nil, an in-memory database will be opened instead.
> +If READONLY is non-nil, open the database in read-only mode,
> +otherwise open it in read-write mode.  */)
> +  (Lisp_Object file, Lisp_Object readonly)
>  {
>    Lisp_Object name;
> -  int flags = (SQLITE_OPEN_CREATE  | SQLITE_OPEN_READWRITE);
> +  int flags;
> +
> +  if (!NILP (readonly))
> +    flags = SQLITE_OPEN_READONLY;
> +  else
> +    flags = (SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE);
>  #ifdef SQLITE_OPEN_FULLMUTEX
>    flags |= SQLITE_OPEN_FULLMUTEX;
>  #endif
> 
> 
> 
> 





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
  2023-09-02  7:17         ` Eli Zaretskii
@ 2023-09-15  6:54           ` Eli Zaretskii
       [not found]             ` <87il8b4k6s.fsf@ngraves.fr>
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2023-09-15  6:54 UTC (permalink / raw)
  To: ngraves; +Cc: 65274

Ping! Ping!

Nicolas, did you perhaps have time to try this patch?

> Cc: 65274@debbugs.gnu.org
> Date: Sat, 02 Sep 2023 10:17:01 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> 
> Ping!  Nicolas, could you please try the patch?  I'd like to install
> it if it solves your problem.
> 
> > Cc: 65274@debbugs.gnu.org
> > Date: Sat, 19 Aug 2023 12:21:05 +0300
> > From: Eli Zaretskii <eliz@gnu.org>
> > 
> > > From: Nicolas Graves <ngraves@ngraves.fr>
> > > Cc: 65274@debbugs.gnu.org
> > > Date: Wed, 16 Aug 2023 12:17:00 +0200
> > > 
> > > My use-case is the package ibrowse.el, which uses sql commands to parse
> > > in real time the database of browser (for history or bookmarks,
> > > depending on the case)
> > > (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el).
> > > 
> > > Web browsers use very frequent updates and most of the time, even
> > > trying to access it with readonly mode is not enough (I don't remember
> > > all the details, but it's something along the lines of you can't open
> > > even in read-only mode if the database file is currently being
> > > updated).
> > > 
> > > Most other emacs packages which try to do the same thing circumvent the
> > > issue by copying the whole database to /tmp and parsing it from
> > > there. I've found another solution which doesn't require to copy the
> > > file and it's to open it in immutable mode
> > > (https://git.sr.ht/~ngraves/ibrowse.el/tree/master/item/ibrowse-sql.el#L58)
> > > I remember the following stackoverflow link lead me to try this:
> > > https://stackoverflow.com/questions/7857755/is-it-possible-to-open-a-locked-sqlite-database-in-read-only-mode
> > > 
> > > On the CLI, it's simply done by adding the uri file:...?immutable=1. The SQL
> > > manual warns for possible errors if the database is being updated at the
> > > same time, but I don't keep an open connection so I don't experience any
> > > error whatsoever. One stackoverflow comment also hints about how it
> > > could be done, this probably applies to emacs as well:
> > > 
> > > "To achieve the same thing with most SQLite drivers, because we can't directly set SQLITE_IOCAP_IMMUTABLE, the best way is to open the connection with the flag SQLITE_OPEN_READONLY | SQLITE_OPEN_URI to allow passing the file:...?immutable=1 URI as filename."
> > 
> > Thanks.  I'm not sure I understood all the intricacies of this use
> > case, but could you please see if the patches below make your use case
> > possible?
> > 
> > diff --git a/src/sqlite.c b/src/sqlite.c
> > index fd528f2..f68edb9 100644
> > --- a/src/sqlite.c
> > +++ b/src/sqlite.c
> > @@ -277,13 +277,20 @@ check_sqlite (Lisp_Object db, bool is_statement)
> >  
> >  static int db_count = 0;
> >  
> > -DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 1, 0,
> > +DEFUN ("sqlite-open", Fsqlite_open, Ssqlite_open, 0, 2, 0,
> >         doc: /* Open FILE as an sqlite database.
> > -If FILE is nil, an in-memory database will be opened instead.  */)
> > -  (Lisp_Object file)
> > +If FILE is nil, an in-memory database will be opened instead.
> > +If READONLY is non-nil, open the database in read-only mode,
> > +otherwise open it in read-write mode.  */)
> > +  (Lisp_Object file, Lisp_Object readonly)
> >  {
> >    Lisp_Object name;
> > -  int flags = (SQLITE_OPEN_CREATE  | SQLITE_OPEN_READWRITE);
> > +  int flags;
> > +
> > +  if (!NILP (readonly))
> > +    flags = SQLITE_OPEN_READONLY;
> > +  else
> > +    flags = (SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE);
> >  #ifdef SQLITE_OPEN_FULLMUTEX
> >    flags |= SQLITE_OPEN_FULLMUTEX;
> >  #endif
> > 
> > 
> > 
> > 
> 
> 
> 
> 





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

* bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.
       [not found]             ` <87il8b4k6s.fsf@ngraves.fr>
@ 2023-11-21 13:41               ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2023-11-21 13:41 UTC (permalink / raw)
  To: Nicolas Graves; +Cc: 65274

> From: Nicolas Graves <ngraves@ngraves.fr>
> Date: Fri, 15 Sep 2023 15:53:15 +0200
> 
> On 2023-09-15 09:54, Eli Zaretskii wrote:
> 
> > Ping! Ping!
> >
> > Nicolas, did you perhaps have time to try this patch?
> 
> Thanks for getting back, I didn't have time to try this, but I will and
> will come back to you. Can't really commit on a date though, but be sure
> it's in my backlog. 

Any progress with this?





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

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

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <878rbc1eem.fsf@ngraves.fr>
2023-08-13 20:35 ` bug#65274: 29.0.91; [feature request] Readonly argument for emacs built-in sqlite support Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-14 16:40   ` Eli Zaretskii
2023-08-16 10:17     ` Nicolas Graves via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-19  9:21       ` Eli Zaretskii
2023-09-02  7:17         ` Eli Zaretskii
2023-09-15  6:54           ` Eli Zaretskii
     [not found]             ` <87il8b4k6s.fsf@ngraves.fr>
2023-11-21 13:41               ` Eli Zaretskii

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

	https://git.savannah.gnu.org/cgit/emacs.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).