GNU bug report logs - #65274
29.0.91; [feature request] Readonly argument for emacs built-in sqlite support.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: Nicolas Graves <ngraves@HIDDEN>; Keywords: patch; dated Sun, 13 Aug 2023 20:36:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 29 Mar 2025 11:17:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 29 07:17:43 2025
Received: from localhost ([127.0.0.1]:57213 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tyUC7-00021S-3V
	for submit <at> debbugs.gnu.org; Sat, 29 Mar 2025 07:17:43 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48562)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tyUC5-00021C-3Y
 for 65274 <at> debbugs.gnu.org; Sat, 29 Mar 2025 07:17:41 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tyUBy-0003iS-96; Sat, 29 Mar 2025 07:17:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=Fhv503nEDvLf+RuGJ0kF6/Gr326XLMclAB/U2qta0l8=; b=AvwIlMPNdE/RPRk4D5dd
 6pk6xOz6CXrQoTHJV9wHBIyBOi1/961+SI6Zvs9OZ/2W4jej7oYD7Pa3SNNgbkKfBBcn8V8AVAHSI
 WeLJ6d9B2JgceK6fsulre211rvzAXv6GB/r2NadTfuihNV6ar7fKbpSTzrx8PViQm4unKxJXeIFcw
 9ZsoQkoh6t+6kr8N1ihRYwNM5xUbu4jlj60wonYZcZgvOMrv+NZU05j199+Kle9iXOPn2QtsqO6hO
 LT0p1/c0aa0MtbkPIrc6o+0xlzVGEveZLaOTAMBIt0+nSGJN0rXqyktRg4GQFJk9yji5p+dYc1ZSA
 HzLVP9GjE+Pnfg==;
Date: Sat, 29 Mar 2025 14:17:31 +0300
Message-Id: <8634ew84s4.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: ngraves@HIDDEN, Ship Mints <shipmints@HIDDEN>
In-Reply-To: <CAN+1HbpROswabO-NujDSyaP2qEfTzzhbeXT5-uV_gn2u+DGi9Q@HIDDEN>
 (message from Ship Mints on Thu, 13 Mar 2025 21:27:54 -0400)
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for emacs
 built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
 <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
 <86bjuti3bp.fsf@HIDDEN> <87cyekv38t.fsf@HIDDEN>
 <CAN+1HbpROswabO-NujDSyaP2qEfTzzhbeXT5-uV_gn2u+DGi9Q@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: stefankangas@HIDDEN, 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ping! Nicolas, could you please answer the question below, so we could
decide how to proceed with this issue?

> From: Ship Mints <shipmints@HIDDEN>
> Date: Thu, 13 Mar 2025 21:27:54 -0400
> Cc: Eli Zaretskii <eliz@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>, 65274 <at> debbugs.gnu.org
> 
> On Thu, Mar 13, 2025 at 8:58 PM Nicolas Graves <ngraves@HIDDEN> wrote:
> 
>  On 2025-02-23 08:26, Eli Zaretskii wrote:
> 
>  >> From: Stefan Kangas <stefankangas@HIDDEN>
>  >> Date: Sun, 23 Feb 2025 06:16:48 +0000
>  >> Cc: Nicolas Graves <ngraves@HIDDEN>, 65274 <at> debbugs.gnu.org
>  >> 
>  >> Eli Zaretskii <eliz@HIDDEN> writes:
>  >> 
>  >> > 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?
>  >> 
>  >> We never heard back from Nicolas, but the patch LGTM.
>  >> 
>  >> Maybe we should just install it?  It seems pretty straight-forward, and
>  >> why wouldn't we want to support read-only operation?  It sounds useful.
>  >
>  > If you can test the patch, I will install it.  I just didn't want to
>  > install something I cannot make sure was working with a real DB.
> 
>  It probably works for a real DB (not immutable), but my issue here was
>  more specific : opening a database with immutability (ie. even if it's
>  locked by another process, a browser in my use-case). I can confirm it
>  does NOT solve this particular issue :
> 
>  (defun ibrowse-sql--apply-command
>      (database command &optional callback immutable-p)
>    "Apply the SQL COMMAND using the SQL DATABASE, then call CALLBACK.
> 
>  If IMMUTABLE-P, use the immutable option for the database."
>    (let ((database (if immutable-p
>                        (concat "file:" database "?immutable=1")
>                      database)))
>      (funcall callback (sqlite-select (sqlite-open database t) command))))
> 
>  Without immutable-p, it fails with the error :
>  sqlite-error "database is locked" 5
>  (expected in my case)
> 
>  With immutable-p, sqlite-open fails (returns nil).
>  That's strange because
> 
>  #ifdef SQLITE_OPEN_URI
>    flags |= SQLITE_OPEN_URI;
>  #endif
> 
>  should probably enable the thing to work if the stackoverflow answer was
>  correct.
> 
> Is your emacs built with SQLITE_OPEN_URI defined?  I think that flag defaults to undefined.  Maybe try using
> CFLAGS=-DSQLITE_OPEN_URI when you run configure.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 14 Mar 2025 01:28:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 13 21:28:15 2025
Received: from localhost ([127.0.0.1]:59085 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tstqQ-0004Gb-HL
	for submit <at> debbugs.gnu.org; Thu, 13 Mar 2025 21:28:15 -0400
Received: from mail-vk1-xa32.google.com ([2607:f8b0:4864:20::a32]:59407)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <shipmints@HIDDEN>)
 id 1tstqN-0004GH-2P
 for 65274 <at> debbugs.gnu.org; Thu, 13 Mar 2025 21:28:11 -0400
Received: by mail-vk1-xa32.google.com with SMTP id
 71dfb90a1353d-523b8881d31so667877e0c.2
 for <65274 <at> debbugs.gnu.org>; Thu, 13 Mar 2025 18:28:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1741915685; x=1742520485; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc:subject:date:message-id:reply-to;
 bh=dJ27XAzCbnzvTIU+S6emCBSJX0DoyEXf2uUc3RA0RVQ=;
 b=AM3+CJKlSPeUnufyvd4PI37jhWWUMY6CiLKDInGPnMMBXDu7i9N+YKpHALCIwceRYM
 SUNvucUffoh4i+mpWV1im5T3RF38bUjJoFMDz9u1CLHgsY6RR3GK7++xFOnZWHZsvpDz
 Gl1kMDrbJ2lTo9eD0K1JmV9IAgWR2Fm/fjLy5QXcf5MzxlVqahTWqPFeQ8PlfdUwuqX2
 pSXWUjmQz6+zcAxX4AM7yM4H9bC14izwSRlvR4a6bojsv5UYStD7eUEzJmKE67kSOzS5
 Mv1jJcJkLUE+S4ZP6jS+TDxuNPtXi2AdmJksRdWHBp/iHS4SkObqz2sr7Enuef9TX4IQ
 IZjQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1741915685; x=1742520485;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
 :reply-to;
 bh=dJ27XAzCbnzvTIU+S6emCBSJX0DoyEXf2uUc3RA0RVQ=;
 b=dlvmbRwgyVkpM00OkF8I4UbdnYY8KC8cR1hnevh9ZdsMc9o4gb0pBdf/pmZ1BSx/z+
 vdiOS8ExCC7OZcmL8WQhoseYQ7NIXzjcyuaADcINZ3KfDCfmcM4TLJ5NrVHnU99L8EBe
 B5PHPxfBP7cvCJAu2j58t7DSlV72IxEX0zxYy6bHjcxIET/cyeA23Ln+B8tM1jMUoH//
 a1np9JnDawuYvVFoCo3zYz/d5Y9gBGANWoI5Y9WSpgFS3LgaF/7a5iI+O/WVEDHGr9IL
 fH1o9dX6Yo3KankWZ/NCzDJ68Z4CJjlUT/1NNVgxP0ZB4AFAblDjC+yxFszeS5x2Q4p/
 DB9g==
X-Forwarded-Encrypted: i=1;
 AJvYcCUWL0jgS1MPaEgFWUqrUPl0SC0TL/grCogp1ijvAcl+P1yXucVmCNhjbG3Z1mN9ugrALpyqFQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yyeu3D+x6ai+KAJ/RxW566lDSpD71tcyKxJyJ0wribnrBPG9tP1
 qAL8tCwr4wQ/pd4yotQJ04a0ldMKrN2ghnuJmZFHw3HRjnOBZYpoBdfQHRzQdIUswfqpreCUwqK
 /C/U97VqpkfLLEpQnRuWvnGgChlM=
X-Gm-Gg: ASbGnctkpNgteoCEYowSHzQUTfQnAubKv3l0tBotcprq4cnLmPDpSAyqHMHoYPFULkX
 EwnTiZwcqRz0WUftcL/TW/kb/fUsEyCDiTS2zkgv8sHZPahe76ASsY1R+DxtKWideD/pPTHlQwV
 qRLxmyrtqr9/vdWEIuqDb26agDlczYXMIe/KHv
X-Google-Smtp-Source: AGHT+IEt/RoLtwq/5RZWw3DtkO5ByWE2MEY6/gxMnJS54GFBwHvzaqneNnqbvOslvxQ91b5g3EkTB5uhBUBPWATltY8=
X-Received: by 2002:a05:6102:549e:b0:4bb:e8c5:b164 with SMTP id
 ada2fe7eead31-4c383147acdmr491587137.7.1741915685331; Thu, 13 Mar 2025
 18:28:05 -0700 (PDT)
MIME-Version: 1.0
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
 <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
 <86bjuti3bp.fsf@HIDDEN> <87cyekv38t.fsf@HIDDEN>
In-Reply-To: <87cyekv38t.fsf@HIDDEN>
From: Ship Mints <shipmints@HIDDEN>
Date: Thu, 13 Mar 2025 21:27:54 -0400
X-Gm-Features: AQ5f1Jr7Ja6ygEWYUkK08KAjYXac9-c3Cfvnx0TG2bQcsJtTTwV6zaYrejomBgE
Message-ID: <CAN+1HbpROswabO-NujDSyaP2qEfTzzhbeXT5-uV_gn2u+DGi9Q@HIDDEN>
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for emacs
 built-in sqlite support.
To: Nicolas Graves <ngraves@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000a72d0f0630435934"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 65274
Cc: Eli Zaretskii <eliz@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>,
 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--000000000000a72d0f0630435934
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, Mar 13, 2025 at 8:58=E2=80=AFPM Nicolas Graves <ngraves@HIDDEN>=
 wrote:

> On 2025-02-23 08:26, Eli Zaretskii wrote:
>
> >> From: Stefan Kangas <stefankangas@HIDDEN>
> >> Date: Sun, 23 Feb 2025 06:16:48 +0000
> >> Cc: Nicolas Graves <ngraves@HIDDEN>, 65274 <at> debbugs.gnu.org
> >>
> >> Eli Zaretskii <eliz@HIDDEN> writes:
> >>
> >> > 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 ca=
se
> >> > possible?
> >>
> >> We never heard back from Nicolas, but the patch LGTM.
> >>
> >> Maybe we should just install it?  It seems pretty straight-forward, an=
d
> >> why wouldn't we want to support read-only operation?  It sounds useful=
.
> >
> > If you can test the patch, I will install it.  I just didn't want to
> > install something I cannot make sure was working with a real DB.
>
> It probably works for a real DB (not immutable), but my issue here was
> more specific : opening a database with immutability (ie. even if it's
> locked by another process, a browser in my use-case). I can confirm it
> does NOT solve this particular issue :
>
> (defun ibrowse-sql--apply-command
>     (database command &optional callback immutable-p)
>   "Apply the SQL COMMAND using the SQL DATABASE, then call CALLBACK.
>
> If IMMUTABLE-P, use the immutable option for the database."
>   (let ((database (if immutable-p
>                       (concat "file:" database "?immutable=3D1")
>                     database)))
>     (funcall callback (sqlite-select (sqlite-open database t) command))))
>
> Without immutable-p, it fails with the error :
> sqlite-error "database is locked" 5
> (expected in my case)
>
> With immutable-p, sqlite-open fails (returns nil).
> That's strange because
>
> #ifdef SQLITE_OPEN_URI
>   flags |=3D SQLITE_OPEN_URI;
> #endif
>
> should probably enable the thing to work if the stackoverflow answer was
> correct.
>

Is your emacs built with SQLITE_OPEN_URI defined?  I think that flag
defaults to undefined.  Maybe try using CFLAGS=3D-DSQLITE_OPEN_URI when you
run configure.

--000000000000a72d0f0630435934
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div class=3D"gmail_default" style=3D"fon=
t-family:monospace"><span style=3D"font-family:Arial,Helvetica,sans-serif">=
On Thu, Mar 13, 2025 at 8:58=E2=80=AFPM Nicolas Graves &lt;<a href=3D"mailt=
o:ngraves@HIDDEN">ngraves@HIDDEN</a>&gt; wrote:</span></div></div><=
div class=3D"gmail_quote gmail_quote_container"><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex">On 2025-02-23 08:26, Eli Zaretskii wrote:<br>
<br>
&gt;&gt; From: Stefan Kangas &lt;<a href=3D"mailto:stefankangas@HIDDEN" =
target=3D"_blank">stefankangas@HIDDEN</a>&gt;<br>
&gt;&gt; Date: Sun, 23 Feb 2025 06:16:48 +0000<br>
&gt;&gt; Cc: Nicolas Graves &lt;<a href=3D"mailto:ngraves@HIDDEN" targe=
t=3D"_blank">ngraves@HIDDEN</a>&gt;, <a href=3D"mailto:65274@HIDDEN=
u.org" target=3D"_blank">65274 <at> debbugs.gnu.org</a><br>
&gt;&gt; <br>
&gt;&gt; Eli Zaretskii &lt;<a href=3D"mailto:eliz@HIDDEN" target=3D"_blank=
">eliz@HIDDEN</a>&gt; writes:<br>
&gt;&gt; <br>
&gt;&gt; &gt; Thanks.=C2=A0 I&#39;m not sure I understood all the intricaci=
es of this use<br>
&gt;&gt; &gt; case, but could you please see if the patches below make your=
 use case<br>
&gt;&gt; &gt; possible?<br>
&gt;&gt; <br>
&gt;&gt; We never heard back from Nicolas, but the patch LGTM.<br>
&gt;&gt; <br>
&gt;&gt; Maybe we should just install it?=C2=A0 It seems pretty straight-fo=
rward, and<br>
&gt;&gt; why wouldn&#39;t we want to support read-only operation?=C2=A0 It =
sounds useful.<br>
&gt;<br>
&gt; If you can test the patch, I will install it.=C2=A0 I just didn&#39;t =
want to<br>
&gt; install something I cannot make sure was working with a real DB.<br>
<br>
It probably works for a real DB (not immutable), but my issue here was<br>
more specific : opening a database with immutability (ie. even if it&#39;s<=
br>
locked by another process, a browser in my use-case). I can confirm it<br>
does NOT solve this particular issue :<br>
<br>
(defun ibrowse-sql--apply-command<br>
=C2=A0 =C2=A0 (database command &amp;optional callback immutable-p)<br>
=C2=A0 &quot;Apply the SQL COMMAND using the SQL DATABASE, then call CALLBA=
CK.<br>
<br>
If IMMUTABLE-P, use the immutable option for the database.&quot;<br>
=C2=A0 (let ((database (if immutable-p<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 (concat &quot;file:&quot; database &quot;?immutable=3D1&quot;)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 datab=
ase)))<br>
=C2=A0 =C2=A0 (funcall callback (sqlite-select (sqlite-open database t) com=
mand))))<br>
<br>
Without immutable-p, it fails with the error :<br>
sqlite-error &quot;database is locked&quot; 5<br>
(expected in my case)<br>
<br>
With immutable-p, sqlite-open fails (returns nil).<br>
That&#39;s strange because<br>
<br>
#ifdef SQLITE_OPEN_URI<br>
=C2=A0 flags |=3D SQLITE_OPEN_URI;<br>
#endif<br>
<br>
should probably enable the thing to work if the stackoverflow answer was<br=
>
correct.<br></blockquote><div><br></div><div class=3D"gmail_default" style=
=3D"font-family:monospace">Is your emacs built with SQLITE_OPEN_URI defined=
?=C2=A0 I think that flag defaults to undefined.=C2=A0 Maybe try using=C2=
=A0CFLAGS=3D-DSQLITE_OPEN_URI when you run configure.</div></div></div>

--000000000000a72d0f0630435934--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 14 Mar 2025 00:57:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 13 20:57:03 2025
Received: from localhost ([127.0.0.1]:59040 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tstMF-0002fk-6y
	for submit <at> debbugs.gnu.org; Thu, 13 Mar 2025 20:57:03 -0400
Received: from 1.mo583.mail-out.ovh.net ([188.165.57.91]:38105)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ngraves@HIDDEN>)
 id 1tstM6-0002f4-Hh
 for 65274 <at> debbugs.gnu.org; Thu, 13 Mar 2025 20:57:00 -0400
Received: from director4.ghost.mail-out.ovh.net (unknown [10.109.176.101])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id 4ZDQtX23Hvz1Rjk
 for <65274 <at> debbugs.gnu.org>; Fri, 14 Mar 2025 00:56:52 +0000 (UTC)
Received: from ghost-submission-5b5ff79f4f-tg68p (unknown [10.110.178.33])
 by director4.ghost.mail-out.ovh.net (Postfix) with ESMTPS id BEE681FD2F;
 Fri, 14 Mar 2025 00:56:51 +0000 (UTC)
Received: from ngraves.fr ([37.59.142.111])
 by ghost-submission-5b5ff79f4f-tg68p with ESMTPSA
 id JNSwINN+02eOxwAAo6clTw
 (envelope-from <ngraves@HIDDEN>); Fri, 14 Mar 2025 00:56:51 +0000
Authentication-Results: garm.ovh; auth=pass
 (GARM-111S005cf5d95c1-ab27-4983-ba49-eea3cd678da6,
 3056E64F8CCC4F974FAB00830B86FB7BC42AEC60) smtp.auth=ngraves@HIDDEN
X-OVh-ClientIp: 90.92.117.144
From: Nicolas Graves <ngraves@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for
 emacs built-in sqlite support.
In-Reply-To: <86bjuti3bp.fsf@HIDDEN>
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN>
 <83v8dbz8u6.fsf@HIDDEN>
 <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
 <86bjuti3bp.fsf@HIDDEN>
Date: Fri, 14 Mar 2025 01:56:50 +0100
Message-ID: <87cyekv38t.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Ovh-Tracer-Id: 9138929547271398064
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduvdelgeehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghffffkgggtsehttdertddttddtnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepveekleeujedthefgffekleekhffhffetgfdvheekleeuhfehueeljedtjefhvdfgnecukfhppeduvdejrddtrddtrddupdeltddrledvrdduudejrddugeegpdefjedrheelrddugedvrdduuddunecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepuddvjedrtddrtddruddpmhgrihhlfhhrohhmpehnghhrrghvvghssehnghhrrghvvghsrdhfrhdpnhgspghrtghpthhtohepuddprhgtphhtthhopeeihedvjeegseguvggssghughhsrdhgnhhurdhorhhgpdfovfetjfhoshhtpehmohehkeefmgdpmhhouggvpehsmhhtphhouhht
DKIM-Signature: a=rsa-sha256; bh=yNGpi/ZXHQxNGLPWFwkaQ6Vs6MqZ3seF2lM4qSVmeX8=; 
 c=relaxed/relaxed; d=ngraves.fr; h=From;
 s=ovhmo4487190-selector1; t=1741913812; v=1;
 b=1EZtl03ETm+BXg+v478jgCjZVOiGM9Jq2OTzzm2PG9ag3F41HyPkPAjfBad+Gz3aC87WTEz9
 CNFWMmaKMgcv94B9xWlDSZ8gmT52LkIATvDfRPGH0avNSknL4KuTfX0TzlsyUOaWdnvbGFG1GXy
 U8RDnLsdFSzY2IGbIypkX2BkXlkdsxdJYVr/5qsqyNE6HgLae+9ADLghZGMIdAle0zwIbLAgZ5A
 SsuLgLalbtvCD42OplDgXDejEfpdpfw4HOTC8sHnMhd+fzMX0DKA42a4eZeJfuL/iv+GpHFD5WA
 2bSaBJy4sHgZr5raRxZOztOGlQYzSA+HucfiApfeb4teQ==
X-Spam-Score: 0.9 (/)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)

On 2025-02-23 08:26, Eli Zaretskii wrote:

>> From: Stefan Kangas <stefankangas@HIDDEN>
>> Date: Sun, 23 Feb 2025 06:16:48 +0000
>> Cc: Nicolas Graves <ngraves@HIDDEN>, 65274 <at> debbugs.gnu.org
>> 
>> Eli Zaretskii <eliz@HIDDEN> writes:
>> 
>> > 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?
>> 
>> We never heard back from Nicolas, but the patch LGTM.
>> 
>> Maybe we should just install it?  It seems pretty straight-forward, and
>> why wouldn't we want to support read-only operation?  It sounds useful.
>
> If you can test the patch, I will install it.  I just didn't want to
> install something I cannot make sure was working with a real DB.

It probably works for a real DB (not immutable), but my issue here was
more specific : opening a database with immutability (ie. even if it's
locked by another process, a browser in my use-case). I can confirm it
does NOT solve this particular issue :

(defun ibrowse-sql--apply-command
    (database command &optional callback immutable-p)
  "Apply the SQL COMMAND using the SQL DATABASE, then call CALLBACK.

If IMMUTABLE-P, use the immutable option for the database."
  (let ((database (if immutable-p
                      (concat "file:" database "?immutable=1")
                    database)))
    (funcall callback (sqlite-select (sqlite-open database t) command))))

Without immutable-p, it fails with the error :
sqlite-error "database is locked" 5
(expected in my case)

With immutable-p, sqlite-open fails (returns nil).
That's strange because

#ifdef SQLITE_OPEN_URI
  flags |= SQLITE_OPEN_URI;
#endif

should probably enable the thing to work if the stackoverflow answer was
correct.

-- 
Best regards,
Nicolas Graves




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 23 Feb 2025 06:27:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 23 01:27:08 2025
Received: from localhost ([127.0.0.1]:58974 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tm5SF-0001cb-S4
	for submit <at> debbugs.gnu.org; Sun, 23 Feb 2025 01:27:08 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:57740)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tm5SB-0001c1-JN
 for 65274 <at> debbugs.gnu.org; Sun, 23 Feb 2025 01:27:05 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tm5S4-0007Ua-UR; Sun, 23 Feb 2025 01:26:56 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=wfYeNprjHjKC5LzhGpJSOptLEkWeROUoMTpA1WWOtoo=; b=pQp5Tex0zpiM
 wY9FqiTgPWMSh+iMgANQerkTEv480hsiRg2LVNmmm4j/wgvIRPMPwXFAjYOmnUjUzz5keTf97EVaJ
 I1zOAlIMkjAt/FqMmp6G5PKmNnpsHRllfaa79FWAcdSR30nhv9tAFfclM/20toNFQ3M76eBfc+vgg
 tBjnsnd83nRcbq/IPT6LzYHbx6XnZ/E+Xehiw5jWp8n3uqWi+8p+OrU+XRlpZGBKZtYdwxFsyKC0U
 FMTUv6qUm8UcqKp5ajlxfGjKgdPKUe0dsdwRVd1w+Pvr8K/aJf51XTKkzbIA7jGjGQE16Rjfhk5UN
 FYt/iH+XDu7SGHslT4IYDg==;
Date: Sun, 23 Feb 2025 08:26:50 +0200
Message-Id: <86bjuti3bp.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
 (message from Stefan Kangas on Sun, 23 Feb 2025 06:16:48 +0000)
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for emacs
 built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
 <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: ngraves@HIDDEN, 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Kangas <stefankangas@HIDDEN>
> Date: Sun, 23 Feb 2025 06:16:48 +0000
> Cc: Nicolas Graves <ngraves@HIDDEN>, 65274 <at> debbugs.gnu.org
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > 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?
> 
> We never heard back from Nicolas, but the patch LGTM.
> 
> Maybe we should just install it?  It seems pretty straight-forward, and
> why wouldn't we want to support read-only operation?  It sounds useful.

If you can test the patch, I will install it.  I just didn't want to
install something I cannot make sure was working with a real DB.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 23 Feb 2025 06:16:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 23 01:16:58 2025
Received: from localhost ([127.0.0.1]:58959 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tm5IP-00018S-Ro
	for submit <at> debbugs.gnu.org; Sun, 23 Feb 2025 01:16:58 -0500
Received: from mail-ed1-x533.google.com ([2a00:1450:4864:20::533]:49380)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <stefankangas@HIDDEN>)
 id 1tm5IN-000189-2T
 for 65274 <at> debbugs.gnu.org; Sun, 23 Feb 2025 01:16:56 -0500
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-5deb1266031so6243556a12.2
 for <65274 <at> debbugs.gnu.org>; Sat, 22 Feb 2025 22:16:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1740291409; x=1740896209; darn=debbugs.gnu.org;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=kz3qpVKcCl9EfM7Fe7FBRmvQBZzJkZPsBRHv9cF7peE=;
 b=fIJe13ekTEtAyiAElWNb7tvyOgUwIzhi3bKazRyw8R/3uXYb2nBKX3i68CtRcB0QjU
 FWImM8p4jbP2E0T7eRMa+iWv3kUOcjaIVKknDwjnuLcKXxeKd5SbDxrIDH0A+FkM0D6x
 gOGXne1bvwY/CqKTsfN6sPojCdQiCD5vbp/ffNgqrGnWfH+CG4TjRTDm2qTbg2zXOBpa
 kgEGPerJipzCMOQFRus/pbl1JYI0j5cexZTHoXxjO6pz0L9gMKzm6SlQdjA2Y3iHTt03
 aXpAIcw2jgiv/zk+iVQnPYZdzEax+wt7b90QNXVtIw5irmlpAfNVkM8T+uKmAc8outJ8
 e66w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1740291409; x=1740896209;
 h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=kz3qpVKcCl9EfM7Fe7FBRmvQBZzJkZPsBRHv9cF7peE=;
 b=JHXWvejkUzTtocLfz96V7bIVvlSVR+LNnQWJipFEZ7K5c1IEAws8uxweFXlgMMxOEz
 RHl2ODuNnKM8s15WhswCVHz/iK9rBhPwPEXl6R+ona/pmVsI1lgYYUW6mVjPwHI/eP8A
 VEobGQYqwukEKcCwymXyUzrdFUkHzWXPMLjOfSgjGFqLWwSBYaXXNZyrn+Rp3YXTMwyf
 H6JskqdwWNGmWxoFfiXq+3/2OPnVV9u1N3YPhyss3nOHf+WEeepp5QuJ81/41KaLa5T/
 86c4zkTXbwK6M9wJDfIjfKl6s3rGJ7NQOB18DBpO8x2FFHjfkjUoTHj6FXtI+7zutR8o
 BOjw==
X-Forwarded-Encrypted: i=1;
 AJvYcCVO7UmTwNkiLvyt1kopEdrrsMdYA2STk5h7f4bCtiar3wTcEXBqdmx9lEh4wbeo5++FUIhW5g==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxGrFXzN5TY+2FCFSGv5iqtC7djpjU80CiMXJzqNe61lOjA2A8l
 tuQxv/d/Klx+oW1TXlormCpoW3K4nE1u2B3JgmGn+oYZZEkZnCGXpIdC81sawpr7pDgXUMuB2wH
 1a1AxcNnd17p9MPue8MYwEe2pAzFV2pWmufY=
X-Gm-Gg: ASbGncsRHaB3WkpglpQPyt3olIiqF/jWytfNh8V5yUPYRd6qI2wWmOwwMLP3N7mr7tz
 /Ky9mQC6O8WL90wvqO+lykDP9GxAEuf6K557ki4gnzVRWPfB56EF7JqJ5gZe9zUP2F4XUNEdOvb
 IZhyvwARYA
X-Google-Smtp-Source: AGHT+IFbJkzAu9nImKx94QYXuUA8NLyBK/miObLLAV1MPTLcEnkDCZ65T+H4V5mz2YmvKk0hDsPS8oI+rS3Rz12r1VY=
X-Received: by 2002:a05:6402:50c8:b0:5e0:9607:2669 with SMTP id
 4fb4d7f45d1cf-5e0b71070a2mr8804387a12.17.1740291408818; Sat, 22 Feb 2025
 22:16:48 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sun, 23 Feb 2025 06:16:48 +0000
From: Stefan Kangas <stefankangas@HIDDEN>
In-Reply-To: <83v8dbz8u6.fsf@HIDDEN>
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
MIME-Version: 1.0
Date: Sun, 23 Feb 2025 06:16:48 +0000
X-Gm-Features: AWEUYZm90QVwbvTCnvzCeZnVv1PT3eihJR8o92d-MfEUjT-6do846SMRMsBblOc
Message-ID: <CADwFkmnZctbCmjfJidNGAEsDz12_Q=3fPWLnKwUH_5WXA6cTgw@HIDDEN>
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for emacs
 built-in sqlite support.
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 65274
Cc: Nicolas Graves <ngraves@HIDDEN>, 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Eli Zaretskii <eliz@HIDDEN> writes:

>> From: Nicolas Graves <ngraves@HIDDEN>
>> Cc: 65274 <at> 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?

We never heard back from Nicolas, but the patch LGTM.

Maybe we should just install it?  It seems pretty straight-forward, and
why wouldn't we want to support read-only operation?  It sounds useful.

> 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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 21 Nov 2023 13:41:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 21 08:41:53 2023
Received: from localhost ([127.0.0.1]:55517 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r5R0j-0008O2-5p
	for submit <at> debbugs.gnu.org; Tue, 21 Nov 2023 08:41:53 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:35410)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r5R0h-0008Nm-Hh
 for 65274 <at> debbugs.gnu.org; Tue, 21 Nov 2023 08:41:51 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r5R0Y-0000ET-7N; Tue, 21 Nov 2023 08:41:42 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=JZ1/SL1ZTav4EIFUoxVWktoEAYlYOOHuqyDdxIa1VuA=; b=lYkrV9BtPAVM
 i/DnpIdqbWgq411rPNEPiBHAmE5nasVer69fQbO9a5as8dyVvqdvwdnN/Wu3Qfrh7fj/4JUsJaJps
 sED3WANOqGRwRy61XtTpbUu/Mw0eYzleASOv8Ef0J+lWGP4eOt4Bq84dDuGmgQ28tPhgkPtgvwla5
 fh1VurCmSuU64khhyORYzLbOJ9zawnsr/+3YKf1ZGTOUf0ZuSOUcCfbNDyE0n/F8DGczo3hcrSJIz
 T6dIDvhpb+QSBL+Qgq15ANTLsVX66lExoPkU0ZybyfCH/NbEJmdSn2796yfaHeLrylIMZODzOkahh
 gY0P9i+f6BhwZJYTNIt06g==;
Date: Tue, 21 Nov 2023 15:41:30 +0200
Message-Id: <83zfz7gr5h.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Nicolas Graves <ngraves@HIDDEN>
In-Reply-To: <87il8b4k6s.fsf@HIDDEN> (message from Nicolas Graves on Fri, 
 15 Sep 2023 15:53:15 +0200)
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for
 emacs built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN>
 <83v8dbz8u6.fsf@HIDDEN> <83y1hp9h8y.fsf@HIDDEN> <831qf0kju3.fsf@HIDDEN>
 <87il8b4k6s.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Nicolas Graves <ngraves@HIDDEN>
> 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?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 15 Sep 2023 06:54:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 15 02:54:35 2023
Received: from localhost ([127.0.0.1]:41901 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qh2ip-0005xm-Ex
	for submit <at> debbugs.gnu.org; Fri, 15 Sep 2023 02:54:35 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:42512)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qh2im-0005xZ-UO
 for 65274 <at> debbugs.gnu.org; Fri, 15 Sep 2023 02:54:33 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1qh2ia-00085o-1H; Fri, 15 Sep 2023 02:54:20 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=rvPYmV8dm7hYlvvyVP+ZQQUkK7X1iMLZUWDh10D3/kM=; b=faPYwMSjtwcL
 1UETKNa881ffviadAzcCgZIt2j6VHEH+1D1CJigqYue1pesmHqdqrid8cUoLlVQ/sjUiGwg6EgJZW
 Mg6P3YX9HW9efPd7//9Q7A14gudDlOUk1EFsGr/KZiM9RFLEgp6GkQaEFdc9UmC6T8ERCqi77Rsoc
 Ty9qXnBzmbKv9gQvAK037jR/u2sNlHXIsBwEGYVwquXUcSIcAzMlcLjJ36hdEwaOhYYTlaswPbu/9
 qh6cW17S8ihTQKvDaqFcW5xbSp1uxXPfb4vwTVnjTUKBhIgtHHW6aKP/+3zUBbbbpwaE8AIHMJLEd
 4+Zd6r96kqKs03DnlzNrJw==;
Date: Fri, 15 Sep 2023 09:54:12 +0300
Message-Id: <831qf0kju3.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: ngraves@HIDDEN
In-Reply-To: <83y1hp9h8y.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 02
 Sep 2023 10:17:01 +0300)
Subject: Re: bug#65274: 29.0.91;
 [feature request] Readonly argument for emacs built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
 <83y1hp9h8y.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ping! Ping!

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

> Cc: 65274 <at> debbugs.gnu.org
> Date: Sat, 02 Sep 2023 10:17:01 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> Ping!  Nicolas, could you please try the patch?  I'd like to install
> it if it solves your problem.
> 
> > Cc: 65274 <at> debbugs.gnu.org
> > Date: Sat, 19 Aug 2023 12:21:05 +0300
> > From: Eli Zaretskii <eliz@HIDDEN>
> > 
> > > From: Nicolas Graves <ngraves@HIDDEN>
> > > Cc: 65274 <at> 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
> > 
> > 
> > 
> > 
> 
> 
> 
> 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 2 Sep 2023 07:17:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Sep 02 03:17:41 2023
Received: from localhost ([127.0.0.1]:35011 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qcKt3-0003Js-2I
	for submit <at> debbugs.gnu.org; Sat, 02 Sep 2023 03:17:41 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:56354)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qcKsz-0003Jd-La
 for 65274 <at> debbugs.gnu.org; Sat, 02 Sep 2023 03:17:39 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1qcKsh-0007zp-Ou; Sat, 02 Sep 2023 03:17:21 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=4/nq1MwPmNKWda3Ep29aA29ycGB9bVD/y+3aTq/qRjI=; b=lTS/lwedsNb9
 G+8KyfNFrsJtVMlAklU58J6+TP+F8Hlno1/ajxIh4Roua6HyJwAqZ9KBDD5hdTnrbXKC0s+CouCTa
 h/Dww1FcIVZxNsm1kXM3El9G1oTBDvn7O8XKAHD9EitgXt4avTzhwIdpeDjggHyWhiafcCDSEl7Mm
 MrJg9vNydo+SE6+SD+en34bbQVyFfSsbNXPJfyXxXG4FbexhwjIOONmaG4cEdJUbRlgk11NKKBZ+P
 KEw4ZQf8MXPgJRZ7aoVsR3wyYLjMF0XQkF9ZPRx4QQyRi3dm3V0hlyJumaZ9m3cgrX2T7uhRqNfkY
 SrDyRPVUCMDoy8B7nor1ZA==;
Date: Sat, 02 Sep 2023 10:17:01 +0300
Message-Id: <83y1hp9h8y.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: ngraves@HIDDEN
In-Reply-To: <83v8dbz8u6.fsf@HIDDEN> (message from Eli Zaretskii on Sat, 19
 Aug 2023 12:21:05 +0300)
Subject: Re: bug#65274: 29.0.91;
 [feature request] Readonly argument for emacs built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN> <83v8dbz8u6.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

> Cc: 65274 <at> debbugs.gnu.org
> Date: Sat, 19 Aug 2023 12:21:05 +0300
> From: Eli Zaretskii <eliz@HIDDEN>
> 
> > From: Nicolas Graves <ngraves@HIDDEN>
> > Cc: 65274 <at> 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
> 
> 
> 
> 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.
Added tag(s) patch. Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 19 Aug 2023 09:21:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 19 05:21:03 2023
Received: from localhost ([127.0.0.1]:49459 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qXI8k-0006ED-SH
	for submit <at> debbugs.gnu.org; Sat, 19 Aug 2023 05:21:03 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:33660)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qXI8i-0006Dc-MZ
 for 65274 <at> debbugs.gnu.org; Sat, 19 Aug 2023 05:21:01 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1qXI8b-0007mm-1V; Sat, 19 Aug 2023 05:20:53 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=ANiabqcrotZPoZo3IlVWQ+WrRA+pt966+cka7McW0j4=; b=odxRBT8pwCSR
 UeRCnHnvn9z1KySvcFVNuoLn+jNN29dVI2N6wiBwXqUSrNBg7nou82bxnOQ1+Cihf2+wjM9sa+b4e
 HrKBxgIN6nC9ilL8F8eJgr2O6aWi6tH/JU88rGUuz+zz7zuCc4LQt8n0HyEO7cRbNa/cY843H2fpv
 q7+TkZorlHS6NyfMM3vEmmnYqxAiDNPFqe8SXh+d9ueWo5LKEi9mQcRcXHJSCMX+Gjlpd3Zc/IBA5
 trKYE7YSulk8VmzWvseLlDcBCYZiixSX1W7CXqPyyHxgxz5mOXBnYRhmgFXsSuoW9XQqpLDHKuf8q
 /d3+gfO4v45Oa6Jh+jUppw==;
Date: Sat, 19 Aug 2023 12:21:05 +0300
Message-Id: <83v8dbz8u6.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Nicolas Graves <ngraves@HIDDEN>
In-Reply-To: <87wmxvl2ar.fsf@HIDDEN> (message from Nicolas Graves on Wed, 
 16 Aug 2023 12:17:00 +0200)
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for
 emacs built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN> <87wmxvl2ar.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Nicolas Graves <ngraves@HIDDEN>
> Cc: 65274 <at> 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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 16 Aug 2023 10:17:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Aug 16 06:17:10 2023
Received: from localhost ([127.0.0.1]:38902 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qWDaP-0007ke-J3
	for submit <at> debbugs.gnu.org; Wed, 16 Aug 2023 06:17:10 -0400
Received: from 11.mo581.mail-out.ovh.net ([87.98.173.157]:39175)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ngraves@HIDDEN>) id 1qWDaJ-0007kS-K4
 for 65274 <at> debbugs.gnu.org; Wed, 16 Aug 2023 06:17:06 -0400
Received: from director3.ghost.mail-out.ovh.net (unknown [10.109.138.157])
 by mo581.mail-out.ovh.net (Postfix) with ESMTP id EF7D3257D4
 for <65274 <at> debbugs.gnu.org>; Wed, 16 Aug 2023 10:17:01 +0000 (UTC)
Received: from ghost-submission-6684bf9d7b-wrkr2 (unknown [10.110.115.64])
 by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 71C321FE70;
 Wed, 16 Aug 2023 10:17:01 +0000 (UTC)
Received: from ngraves.fr ([37.59.142.97])
 by ghost-submission-6684bf9d7b-wrkr2 with ESMTPSA
 id uLk7GB2i3GRnQgAA6fNsrw
 (envelope-from <ngraves@HIDDEN>); Wed, 16 Aug 2023 10:17:01 +0000
Authentication-Results: garm.ovh; auth=pass
 (GARM-97G0029b08823b-e18b-4ec2-9c17-2e72707f31f0,
 EFC9AD881B11E31D841027839B6E0A93490164A7) smtp.auth=ngraves@HIDDEN
X-OVh-ClientIp: 81.67.140.142
From: Nicolas Graves <ngraves@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#65274: 29.0.91; [feature request] Readonly argument for
 emacs built-in sqlite support.
In-Reply-To: <83350lbmre.fsf@HIDDEN>
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
 <83350lbmre.fsf@HIDDEN>
Date: Wed, 16 Aug 2023 12:17:00 +0200
Message-ID: <87wmxvl2ar.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Ovh-Tracer-Id: 11681493012382343856
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedviedruddtledgvdeiucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvvefujghffffkgggtsehttdertddttddtnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepteehjefhueeileefleeggeffveegheduuddufeeftddvvefhfeffhfdvudehteetnecuffhomhgrihhnpehsrhdrhhhtpdhsthgrtghkohhvvghrfhhlohifrdgtohhmnecukfhppeduvdejrddtrddtrddupdekuddrieejrddugedtrddugedvpdefjedrheelrddugedvrdeljeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqpdhnsggprhgtphhtthhopedupdhrtghpthhtohepieehvdejgeesuggvsggsuhhgshdrghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekuddpmhhouggvpehsmhhtphhouhht
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

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@HIDDEN>
>>
>>
>> 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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at 65274 <at> debbugs.gnu.org:


Received: (at 65274) by debbugs.gnu.org; 14 Aug 2023 16:40:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Aug 14 12:40:44 2023
Received: from localhost ([127.0.0.1]:34253 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qVacW-0004dk-JX
	for submit <at> debbugs.gnu.org; Mon, 14 Aug 2023 12:40:44 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:49970)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qVacV-0004dY-3e
 for 65274 <at> debbugs.gnu.org; Mon, 14 Aug 2023 12:40:43 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1qVacO-0006nO-KZ; Mon, 14 Aug 2023 12:40:36 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=3pkR/PoYwx052xYSaO/xXp5l0MLfsa5CqAiQuYRBlJM=; b=rtye5qtUiqTa
 h7A3unRHBi3+My7S46KRHQLpZe3kQaZTDfLS6nVFmkjXeoBLun8vRdSHp2HBCGQyUA403/Nk6Img5
 lhEEetgDX2OTfuTU2I/6+VhUly6d8QX6l3JOyBZL3wWmSfOeyAiYI+VyKJhUWqXeA3tiwHntrFz76
 +AvmHMDyrPf979m4MkWo1+MFUuyU8ag5WJoRxjd4GYAYP5XLuvD0w/D5hLmtqa0vWc2fFp1TS01Aq
 R1rnHW7WmFPXLskaTJxVAwWpNzlrxPHTJXBSr/2YFWuZeAc+jwMlRy5ELK0SZDZjkgExjyXDoFV0h
 OF3vItCBdTk35pxDHOLr/Q==;
Date: Mon, 14 Aug 2023 19:40:37 +0300
Message-Id: <83350lbmre.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Nicolas Graves <ngraves@HIDDEN>
In-Reply-To: <875y5iznne.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#65274: 29.0.91;
 [feature request] Readonly argument for emacs built-in sqlite support.
References: <878rbc1eem.fsf@HIDDEN> <875y5iznne.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 65274
Cc: 65274 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> 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@HIDDEN>
> 
> 
> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 13 Aug 2023 20:35:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 13 16:35:47 2023
Received: from localhost ([127.0.0.1]:60369 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qVHoP-0004Bs-AC
	for submit <at> debbugs.gnu.org; Sun, 13 Aug 2023 16:35:47 -0400
Received: from lists.gnu.org ([2001:470:142::17]:55268)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ngraves@HIDDEN>) id 1qVHoL-0004Ba-BR
 for submit <at> debbugs.gnu.org; Sun, 13 Aug 2023 16:35:44 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ngraves@HIDDEN>)
 id 1qVHoF-0008CV-Rg
 for bug-gnu-emacs@HIDDEN; Sun, 13 Aug 2023 16:35:35 -0400
Received: from 11.mo583.mail-out.ovh.net ([46.105.47.167])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ngraves@HIDDEN>)
 id 1qVHoB-0006Oq-Fn
 for bug-gnu-emacs@HIDDEN; Sun, 13 Aug 2023 16:35:35 -0400
Received: from director3.ghost.mail-out.ovh.net (unknown [10.108.16.216])
 by mo583.mail-out.ovh.net (Postfix) with ESMTP id E52BC25CD8
 for <bug-gnu-emacs@HIDDEN>; Sun, 13 Aug 2023 20:35:18 +0000 (UTC)
Received: from ghost-submission-6684bf9d7b-78l97 (unknown [10.110.171.46])
 by director3.ghost.mail-out.ovh.net (Postfix) with ESMTPS id 9AD471FDB4
 for <bug-gnu-emacs@HIDDEN>; Sun, 13 Aug 2023 20:35:18 +0000 (UTC)
Received: from ngraves.fr ([37.59.142.95])
 by ghost-submission-6684bf9d7b-78l97 with ESMTPSA
 id iv8bIYY+2WSl2w4A1RVFzg (envelope-from <ngraves@HIDDEN>)
 for <bug-gnu-emacs@HIDDEN>; Sun, 13 Aug 2023 20:35:18 +0000
Authentication-Results: garm.ovh; auth=pass
 (GARM-95G0011b56d426-08e8-4f7f-b117-44216de57ec2,
 E57B9C26633FB0E23D49A2DAC22D6541FDA77170) smtp.auth=ngraves@HIDDEN
X-OVh-ClientIp: 81.67.140.142
From: Nicolas Graves <ngraves@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 29.0.91; [feature request] Readonly argument for emacs built-in
 sqlite support.
References: <878rbc1eem.fsf@HIDDEN>
Date: Sun, 13 Aug 2023 22:35:17 +0200
Message-ID: <875y5iznne.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Ovh-Tracer-Id: 4505288478928331428
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedviedruddtvddgudeglecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfqggfjpdevjffgvefmvefgnecuuegrihhlohhuthemucehtddtnecunecujfgurhephffvufhffffkgggtsehttdertddttddtnecuhfhrohhmpefpihgtohhlrghsucfirhgrvhgvshcuoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqnecuggftrfgrthhtvghrnhepudejgffffeetvdekfedugeeuudehkefffeffgefgveetfeeggfeghfetgeeujeefnecukfhppeduvdejrddtrddtrddupdekuddrieejrddugedtrddugedvpdefjedrheelrddugedvrdelheenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduvdejrddtrddtrddupdhmrghilhhfrhhomhepoehnghhrrghvvghssehnghhrrghvvghsrdhfrheqpdhnsggprhgtphhtthhopedupdhrtghpthhtohepsghughdqghhnuhdqvghmrggtshesghhnuhdrohhrghdpoffvtefjohhsthepmhhoheekfedpmhhouggvpehsmhhtphhouhht
Received-SPF: pass client-ip=46.105.47.167; envelope-from=ngraves@HIDDEN;
 helo=11.mo583.mail-out.ovh.net
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001,
 RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)


From: Nicolas Graves <ngraves@HIDDEN>
To: bug-gnu-emacs@HIDDEN
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




Acknowledgement sent to Nicolas Graves <ngraves@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#65274; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 29 Mar 2025 11:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.