unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 3d38d1d: Add sqlite3 support to Emacs
       [not found] ` <20211211035616.984DD20A0A@vcs0.savannah.gnu.org>
@ 2021-12-11  4:17   ` Stefan Kangas
  2021-12-11  5:00     ` Po Lu
  2021-12-11  5:26     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 126+ messages in thread
From: Stefan Kangas @ 2021-12-11  4:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen, emacs-devel

larsi@gnus.org (Lars Ingebrigtsen) writes:

> branch: master
> commit 3d38d1d1345aa65c4018b42e6c648606e32216f8
> Author: Lars Ingebrigtsen <larsi@gnus.org>
> Commit: Lars Ingebrigtsen <larsi@gnus.org>
>
>     Add sqlite3 support to Emacs

Great, thank you.  Some minor nits below:

> diff --git a/lisp/sqlite.el b/lisp/sqlite.el
> new file mode 100644
> index 0000000..a47689c
> --- /dev/null
> +++ b/lisp/sqlite.el
> @@ -0,0 +1,42 @@
> +;;; sqlite.el --- Tests for empty.el  -*- lexical-binding: t; -*-

Is that file header correct?

> +This file is based on the emacs-sqlite3 package written by Syohei
> +YOSHIDA <syohex@gmail.com>, which can be found at:
> +
> +   https://github.com/syohex/emacs-sqlite3

Consider adding here: "Integrated into Emacs by Lars Ingebrigtsen."

> +DEFUN ("sqlite-load-extension", Fsqlite_load_extension,
> +       Ssqlite_load_extension, 2, 2, 0,
> +       doc: /* Load a an SQlite module into DB.
                       ^^^^

"an"

> +DEFUN ("sqlite-more-p", Fsqlite_more_p, Ssqlite_more_p, 1, 1, 0,
> +       doc: /* Say whether there's any further results in SET.  */)
                              ^^^^^^^

Should that be "there are"?

> +;;; sqlite-tests.el --- Tests for sqlite.el  -*- lexical-binding: t; -*-
[snip]
> +;; (setq db (sqlite-open))

Left-over debug statement?



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  4:17   ` master 3d38d1d: Add sqlite3 support to Emacs Stefan Kangas
@ 2021-12-11  5:00     ` Po Lu
  2021-12-11  5:29       ` Lars Ingebrigtsen
  2021-12-11  7:04       ` Po Lu
  2021-12-11  5:26     ` Lars Ingebrigtsen
  1 sibling, 2 replies; 126+ messages in thread
From: Po Lu @ 2021-12-11  5:00 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> larsi@gnus.org (Lars Ingebrigtsen) writes:
>
>> branch: master
>> commit 3d38d1d1345aa65c4018b42e6c648606e32216f8
>> Author: Lars Ingebrigtsen <larsi@gnus.org>
>> Commit: Lars Ingebrigtsen <larsi@gnus.org>
>>
>>     Add sqlite3 support to Emacs

BTW, this doesn't compile on macOS.  It complains that
`sqlite3_load_extension' is missing.

Also, shouldn't configure say something to the likes of "Does Emacs have
SQLite support?" and also add SQLITE to system-configuration-features?

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  4:17   ` master 3d38d1d: Add sqlite3 support to Emacs Stefan Kangas
  2021-12-11  5:00     ` Po Lu
@ 2021-12-11  5:26     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-11  5:26 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: emacs-devel

Stefan Kangas <stefankangas@gmail.com> writes:

> Great, thank you.  Some minor nits below:

Fixed now.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  5:00     ` Po Lu
@ 2021-12-11  5:29       ` Lars Ingebrigtsen
  2021-12-11  6:56         ` Po Lu
  2021-12-11  7:04       ` Po Lu
  1 sibling, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-11  5:29 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Kangas, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> BTW, this doesn't compile on macOS.  It complains that
> `sqlite3_load_extension' is missing.

It compiles for me on Macos, but perhaps that function is missing in
your version of sqlite?  What's your version?

> Also, shouldn't configure say something to the likes of "Does Emacs have
> SQLite support?" and also add SQLITE to system-configuration-features?

It says that for me:

  Does Emacs use -lsqlite3?                               yes


-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  5:29       ` Lars Ingebrigtsen
@ 2021-12-11  6:56         ` Po Lu
  2021-12-11  7:14           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-11  6:56 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Stefan Kangas, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Po Lu <luangruo@yahoo.com> writes:
>
>> BTW, this doesn't compile on macOS.  It complains that
>> `sqlite3_load_extension' is missing.
>
> It compiles for me on Macos, but perhaps that function is missing in
> your version of sqlite?  What's your version?

It's 3.36.0.  The headers were installed with `xcode-select --install'.

> It says that for me:
>
>   Does Emacs use -lsqlite3?                               yes

Hmm, okay.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  5:00     ` Po Lu
  2021-12-11  5:29       ` Lars Ingebrigtsen
@ 2021-12-11  7:04       ` Po Lu
  2021-12-11  8:50         ` Eli Zaretskii
                           ` (2 more replies)
  1 sibling, 3 replies; 126+ messages in thread
From: Po Lu @ 2021-12-11  7:04 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Lars Ingebrigtsen, emacs-devel, rms

Po Lu <luangruo@yahoo.com> writes:

> BTW, this doesn't compile on macOS.  It complains that
> `sqlite3_load_extension' is missing.

On a different note, SQLite3 extensions are linked dynamically, and they
could be proprietary software.  AFAIU, the SQLite3 developers even
provide a few proprietary extensions themselves, including one for
database encryption.

So I think we should check that the .so file passed to
`sqlite-load-extension' as the `module' argument contains a GPL
compatibility symbol before allowing SQLite to load it, similar to what
we do with Emacs modules.

RMS or someone else in the FSF might want to make sure loading SQLite
modules is okay from a legal perspective as well.  I don't know the
details, but we had legal problems with some SQLite modules at my
organization.

Hope this helped, thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  6:56         ` Po Lu
@ 2021-12-11  7:14           ` Lars Ingebrigtsen
  0 siblings, 0 replies; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-11  7:14 UTC (permalink / raw)
  To: Po Lu; +Cc: Stefan Kangas, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> It's 3.36.0.  The headers were installed with `xcode-select --install'.

Hm, same version that's on this Debian/bookworm...  perhaps Apple's just
remove the option to lock things down more?

In any case, I've now added more checks to configure.ac for that function.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  7:04       ` Po Lu
@ 2021-12-11  8:50         ` Eli Zaretskii
  2021-12-11  9:20           ` Po Lu
  2021-12-12  4:00         ` Richard Stallman
  2021-12-12  4:00         ` Richard Stallman
  2 siblings, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-11  8:50 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, stefankangas, rms, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: Lars Ingebrigtsen <larsi@gnus.org>,  emacs-devel@gnu.org, rms@gnu.org
> Date: Sat, 11 Dec 2021 15:04:35 +0800
> 
> Po Lu <luangruo@yahoo.com> writes:
> 
> > BTW, this doesn't compile on macOS.  It complains that
> > `sqlite3_load_extension' is missing.
> 
> On a different note, SQLite3 extensions are linked dynamically, and they
> could be proprietary software.  AFAIU, the SQLite3 developers even
> provide a few proprietary extensions themselves, including one for
> database encryption.
> 
> So I think we should check that the .so file passed to
> `sqlite-load-extension' as the `module' argument contains a GPL
> compatibility symbol before allowing SQLite to load it, similar to what
> we do with Emacs modules.

Would you like to prepare a patch to that effect, please?



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  8:50         ` Eli Zaretskii
@ 2021-12-11  9:20           ` Po Lu
  2021-12-11 11:09             ` Eli Zaretskii
                               ` (3 more replies)
  0 siblings, 4 replies; 126+ messages in thread
From: Po Lu @ 2021-12-11  9:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: larsi, stefankangas, rms, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Po Lu <luangruo@yahoo.com>
>> Cc: Lars Ingebrigtsen <larsi@gnus.org>,  emacs-devel@gnu.org, rms@gnu.org
>> Date: Sat, 11 Dec 2021 15:04:35 +0800
>> 
>> Po Lu <luangruo@yahoo.com> writes:
>> 
>> > BTW, this doesn't compile on macOS.  It complains that
>> > `sqlite3_load_extension' is missing.
>> 
>> On a different note, SQLite3 extensions are linked dynamically, and they
>> could be proprietary software.  AFAIU, the SQLite3 developers even
>> provide a few proprietary extensions themselves, including one for
>> database encryption.
>> 
>> So I think we should check that the .so file passed to
>> `sqlite-load-extension' as the `module' argument contains a GPL
>> compatibility symbol before allowing SQLite to load it, similar to what
>> we do with Emacs modules.

> Would you like to prepare a patch to that effect, please?

I would be willing to, but only if someone from a higher authority says
it's necessary, and provides some details: for instance, should the
symbol be named `plugin_is_GPL_compatible', or something like
`plugin_is_free_software' (as SQLite3 is public domain instead of under
the GPL).

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  9:20           ` Po Lu
@ 2021-12-11 11:09             ` Eli Zaretskii
  2021-12-11 12:36             ` Alexandre Garreau
                               ` (2 subsequent siblings)
  3 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-11 11:09 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel, stefankangas, rms

> From: Po Lu <luangruo@yahoo.com>
> Cc: larsi@gnus.org,  stefankangas@gmail.com,  rms@gnu.org,  emacs-devel@gnu.org
> Date: Sat, 11 Dec 2021 17:20:44 +0800
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> So I think we should check that the .so file passed to
> >> `sqlite-load-extension' as the `module' argument contains a GPL
> >> compatibility symbol before allowing SQLite to load it, similar to what
> >> we do with Emacs modules.
> 
> > Would you like to prepare a patch to that effect, please?
> 
> I would be willing to, but only if someone from a higher authority says
> it's necessary, and provides some details: for instance, should the
> symbol be named `plugin_is_GPL_compatible', or something like
> `plugin_is_free_software' (as SQLite3 is public domain instead of under
> the GPL).

OK, let's wait for Richard to chime in on this aspect.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  9:20           ` Po Lu
  2021-12-11 11:09             ` Eli Zaretskii
@ 2021-12-11 12:36             ` Alexandre Garreau
  2021-12-11 12:49               ` Po Lu
  2021-12-11 14:26             ` Stefan Monnier
  2021-12-12  3:59             ` Richard Stallman
  3 siblings, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-11 12:36 UTC (permalink / raw)
  To: emacs-devel

Le sabato, 11-a de decembro 2021, 10-a horo kaj 20:44 CET Po Lu a écrit :
> 
> 
> > Would you like to prepare a patch to that effect, please?
> 
> I would be willing to, but only if someone from a higher authority says
> it's necessary, and provides some details: for instance, should the
> symbol be named `plugin_is_GPL_compatible', or something like
> `plugin_is_free_software' (as SQLite3 is public domain instead of under
> the GPL).

It should reuse what gcc does to load its plugins.  GCC asks for a such 
symbol to check the plugins are GPLv3-compatible.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 12:36             ` Alexandre Garreau
@ 2021-12-11 12:49               ` Po Lu
  2021-12-11 12:57                 ` Alexandre Garreau
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-11 12:49 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: emacs-devel

Alexandre Garreau <galex-713@galex-713.eu> writes:

> Le sabato, 11-a de decembro 2021, 10-a horo kaj 20:44 CET Po Lu a écrit :
>> 
>> 
>> > Would you like to prepare a patch to that effect, please?
>> 
>> I would be willing to, but only if someone from a higher authority says
>> it's necessary, and provides some details: for instance, should the
>> symbol be named `plugin_is_GPL_compatible', or something like
>> `plugin_is_free_software' (as SQLite3 is public domain instead of under
>> the GPL).

> It should reuse what gcc does to load its plugins.  GCC asks for a such 
> symbol to check the plugins are GPLv3-compatible.

That is because GCC is licensed under the GPLv3.  Ditto for Emacs, which
checks for the same symbol before loading a dynamic module.

The question here is what to do with SQLite plugins, which are specific
to SQLite and not Emacs, and are not legally required to be
GPLv3-compatible.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 12:49               ` Po Lu
@ 2021-12-11 12:57                 ` Alexandre Garreau
  2021-12-11 13:29                   ` Po Lu
  2021-12-11 13:51                   ` Eli Zaretskii
  0 siblings, 2 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-11 12:57 UTC (permalink / raw)
  To: emacs-devel

Le sabato, 11-a de decembro 2021, 13-a horo kaj 49:36 CET Po Lu a écrit :
> 
> 
> > It should reuse what gcc does to load its plugins.  GCC asks for a
> > such
> > symbol to check the plugins are GPLv3-compatible.
> 
> That is because GCC is licensed under the GPLv3.  Ditto for Emacs, which
> checks for the same symbol before loading a dynamic module.
> 
> The question here is what to do with SQLite plugins, which are specific
> to SQLite and not Emacs, and are not legally required to be
> GPLv3-compatible.

Shouldn’t we hack both sqlite and its module to integrate just the same 
symbol?

If ever sqlite people disagree (if they write proprietary software, 
they’re likely not that librists, hence maybe anti-copyleft), we could 
convince distributions to force that change instead.  Most distributions 
patch software.  Debian would be a first candidate (and would cascade effect 
on many of its derivatives).  It would just as well be in the interest of 
RedHat.  Arch and Gentoo are usually less enthusiasts about such issues, 
but they’re versatile and if bigger distributions start doing it, and 
doing otherwise breaks software, they’ll end up changing that too.

Plus it doesn’t seem to be a very complex change, hence maintaining a 
single patch for that shouldn’t be that difficult over time.




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 12:57                 ` Alexandre Garreau
@ 2021-12-11 13:29                   ` Po Lu
  2021-12-11 13:45                     ` Alexandre Garreau
  2021-12-11 13:51                   ` Eli Zaretskii
  1 sibling, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-11 13:29 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: emacs-devel

Alexandre Garreau <galex-713@galex-713.eu> writes:

> Shouldn’t we hack both sqlite and its module to integrate just the same 
> symbol?

I don't understand what you're asking.  I was asking whether or not
`plugin_is_GPL_compatible' is the appropriate name for a symbol we will
use to determine if a SQLite plugin is suitable for use inside Emacs.

We don't need to patch SQLite to look for such a symbol inside a plugin,
but I don't know what name would be appropriate for it.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 13:29                   ` Po Lu
@ 2021-12-11 13:45                     ` Alexandre Garreau
  0 siblings, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-11 13:45 UTC (permalink / raw)
  To: emacs-devel

Le sabato, 11-a de decembro 2021, 14-a horo kaj 29:41 CET Po Lu a écrit :
> Alexandre Garreau <galex-713@galex-713.eu> writes:
> 
> 
> 
> > Shouldn’t we hack both sqlite and its module to integrate just the
> > same
> > symbol?
> 
> I don't understand what you're asking.  I was asking whether or not
> `plugin_is_GPL_compatible' is the appropriate name for a symbol we will
> use to determine if a SQLite plugin is suitable for use inside Emacs.
> 
> We don't need to patch SQLite to look for such a symbol inside a plugin,
> but I don't know what name would be appropriate for it.

well what’s the name for the symbol used by gcc for that same usage? I 
already asked that…

…wait it is indeed plugin_is_GPL_compatible, so why not using that? that’s 
precisely what I suggested to do.

Why wouldn’t such hacking be needed? as of now both sqlite and its plugins 
don’t include such a symbol, right?




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 12:57                 ` Alexandre Garreau
  2021-12-11 13:29                   ` Po Lu
@ 2021-12-11 13:51                   ` Eli Zaretskii
  2021-12-11 13:55                     ` Alexandre Garreau
  1 sibling, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-11 13:51 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: emacs-devel

> From: Alexandre Garreau <galex-713@galex-713.eu>
> Date: Sat, 11 Dec 2021 13:57:55 +0100
> 
> Shouldn’t we hack both sqlite and its module to integrate just the same 
> symbol?

No, we won't be making local changes in the sqlite3 library.  That way
lies madness.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 13:51                   ` Eli Zaretskii
@ 2021-12-11 13:55                     ` Alexandre Garreau
  2021-12-11 16:47                       ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-11 13:55 UTC (permalink / raw)
  To: emacs-devel

Le sabato, 11-a de decembro 2021, 14-a horo kaj 51:17 CET Eli Zaretskii a 
écrit :
> > From: Alexandre Garreau <galex-713@galex-713.eu>
> > Date: Sat, 11 Dec 2021 13:57:55 +0100
> > 
> > Shouldn’t we hack both sqlite and its module to integrate just the
> > same
> > symbol?
> 
> No, we won't be making local changes in the sqlite3 library.  That way
> lies madness.

so how do we check license?




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  9:20           ` Po Lu
  2021-12-11 11:09             ` Eli Zaretskii
  2021-12-11 12:36             ` Alexandre Garreau
@ 2021-12-11 14:26             ` Stefan Monnier
  2021-12-12  3:59             ` Richard Stallman
  3 siblings, 0 replies; 126+ messages in thread
From: Stefan Monnier @ 2021-12-11 14:26 UTC (permalink / raw)
  To: Po Lu; +Cc: Eli Zaretskii, larsi, stefan, rms, emacs-devel

> I would be willing to, but only if someone from a higher authority says
> it's necessary, and provides some details: for instance, should the
> symbol be named `plugin_is_GPL_compatible', or something like
> `plugin_is_free_software' (as SQLite3 is public domain instead of under
> the GPL).

Intuitively, I think `plugin_is_GPL_compatible` is right: when sqlite is
linked with Emacs, the whole becomes GPLv3+, so in order for sqlite's
plugins to be compatible with that they too need to be compatible with
GPLv3+.


        Stefan




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11 13:55                     ` Alexandre Garreau
@ 2021-12-11 16:47                       ` Eli Zaretskii
  0 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-11 16:47 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: emacs-devel

> From: Alexandre Garreau <galex-713@galex-713.eu>
> Date: Sat, 11 Dec 2021 14:55:00 +0100
> 
> Le sabato, 11-a de decembro 2021, 14-a horo kaj 51:17 CET Eli Zaretskii a 
> écrit :
> > > From: Alexandre Garreau <galex-713@galex-713.eu>
> > > Date: Sat, 11 Dec 2021 13:57:55 +0100
> > > 
> > > Shouldn’t we hack both sqlite and its module to integrate just the
> > > same
> > > symbol?
> > 
> > No, we won't be making local changes in the sqlite3 library.  That way
> > lies madness.
> 
> so how do we check license?

We are still discussing this, stay tuned.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  9:20           ` Po Lu
                               ` (2 preceding siblings ...)
  2021-12-11 14:26             ` Stefan Monnier
@ 2021-12-12  3:59             ` Richard Stallman
  2021-12-12  4:46               ` Po Lu
                                 ` (2 more replies)
  3 siblings, 3 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-12  3:59 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, larsi, stefankangas

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > >> So I think we should check that the .so file passed to
  > >> `sqlite-load-extension' as the `module' argument contains a GPL
  > >> compatibility symbol before allowing SQLite to load it, similar to what
  > >> we do with Emacs modules.

  > > Would you like to prepare a patch to that effect, please?

  > I would be willing to, but only if someone from a higher authority says
  > it's necessary,

It's absolutely necessary.  Emacs should not be a base for nonfree
extensions.

                    and provides some details: for instance, should the
  > symbol be named `plugin_is_GPL_compatible', or something like
  > `plugin_is_free_software' (as SQLite3 is public domain instead of under
  > the GPL).

I don't know anything technically about sqlite3, so I can't begin
to think about how to implement this, and I'm not sure what your
suggestions really mean.

What I do know is this: the crucial question is not what name that
symbol should have, but rather, Which programs need to define it?
Are you proposing to modify the free plug-ins to define this symbol,
and make sqlite3 itself check for it?

We really should have addressed this _before_ putting sqlite3 into the
Emacs repository at all.

Alexandre Garreau <galex-713@galex-713.eu> wrote:

  > It should reuse what gcc does to load its plugins.  GCC asks for a such 
  > symbol to check the plugins are GPLv3-compatible.

That's a good thing to do, but note that every plugin for GCC was
written specifically for dynamic linking with GCC.  The plugin's
developers define ths symbols to be checked.

If we put the same mechanism into a modified sqlite3 -- let's call it
"GNUish sqlite3" -- we will need to make GNUish modified versions of
the plug-ins as well.

Maybe that's not a lot of work.  How many free plug-ins are there?

  > The question here is what to do with SQLite plugins, which are specific
  > to SQLite and not Emacs, and are not legally required to be
  > GPLv3-compatible.

Can we make Emacs load the plug-in, and check for the symbol,
then arrange for sqlite3 to talk with it?

We would need to prevent sqlite3 from loading plug-ins itself.
But I think that all designs require some sort of change to
sqlite3, because what it's designed to do is not acceptable as it stands.
I see no way around the need to change sqlite3.

Stefan Monnier wrote:

  > Intuitively, I think `plugin_is_GPL_compatible` is right: when sqlite is
  > linked with Emacs, the whole becomes GPLv3+, so in order for sqlite's
  > plugins to be compatible with that they too need to be compatible with
  > GPLv3+.

I think you're right.  That seems to settle the question of what name to use.
But we still have to deal with how to design this code to work.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  7:04       ` Po Lu
  2021-12-11  8:50         ` Eli Zaretskii
@ 2021-12-12  4:00         ` Richard Stallman
  2021-12-12  4:00         ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-12  4:00 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > RMS or someone else in the FSF might want to make sure loading SQLite
  > modules is okay from a legal perspective as well.  I don't know the
  > details, but we had legal problems with some SQLite modules at my
  > organization.

If I ask a very broad question, a lawyer would have no idea what the
issue is, and could not answer.  Can you inquire what sort of legal
issue the plug-ins raised, and tell me privately?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-11  7:04       ` Po Lu
  2021-12-11  8:50         ` Eli Zaretskii
  2021-12-12  4:00         ` Richard Stallman
@ 2021-12-12  4:00         ` Richard Stallman
  2021-12-12  4:48           ` Po Lu
  2 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-12  4:00 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > So I think we should check that the .so file passed to
  > `sqlite-load-extension' as the `module' argument contains a GPL

What is `sqlite-load-extension', and what does it do?
What are its arguments, and what do they mean?
I have no information about this.

Could you please send me the specifications of these functions?
Of this interface?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  3:59             ` Richard Stallman
@ 2021-12-12  4:46               ` Po Lu
  2021-12-13  3:44                 ` Richard Stallman
  2021-12-12  5:07               ` Alexandre Garreau
  2021-12-12 12:17               ` Eli Zaretskii
  2 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-12  4:46 UTC (permalink / raw)
  To: Richard Stallman; +Cc: eliz, emacs-devel, larsi, stefankangas

Richard Stallman <rms@gnu.org> writes:

> I don't know anything technically about sqlite3, so I can't begin
> to think about how to implement this, and I'm not sure what your
> suggestions really mean.

Basically, SQLite has the ability to load extensions (in the form of
shared libraries) at runtime.  But it doesn't provide a mechanism to let
programs determine whether an extension is acceptable before loading it.

Even worse, SQLite is under the public domain and not the GPL, so it is
legally permissible to create proprietary extensions.  The developers of
SQLite also maintain proprietary extensions for database compression and
encryption, both of which can be loaded through the mechanism currently
present in Emacs.

For more technical details, you can look at the following web page:
https://www.sqlite.org/loadext.html.  It should work from any browser
without JavaScript.

> What I do know is this: the crucial question is not what name that
> symbol should have, but rather, Which programs need to define it?
> Are you proposing to modify the free plug-ins to define this symbol,
> and make sqlite3 itself check for it?

No, I'm proposing to modify the free plug-ins to define this symbol, and
then to make Emacs to check for it before telling SQLite to load the
plugin.  It would work the same, and it'd also be much easier than
modifying SQLite and having to maintain the modified version, and so on
and so forth.

> Can we make Emacs load the plug-in, and check for the symbol,
> then arrange for sqlite3 to talk with it?

That's not possible, but we can check the .so file of the plugin for
such a symbol before telling SQLite3 to load it.

> We would need to prevent sqlite3 from loading plug-ins itself.
> But I think that all designs require some sort of change to
> sqlite3, because what it's designed to do is not acceptable as it stands.
> I see no way around the need to change sqlite3.

We could also remove the ability to load SQLite extensions from Emacs.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  4:00         ` Richard Stallman
@ 2021-12-12  4:48           ` Po Lu
  0 siblings, 0 replies; 126+ messages in thread
From: Po Lu @ 2021-12-12  4:48 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> What is `sqlite-load-extension', and what does it do?  What are its
> arguments, and what do they mean?  I have no information about this.

> Could you please send me the specifications of these functions?
> Of this interface?

`sqlite-load-extension' takes two arguments `db' and `module'.  DB is an
SQLite database that the module will be loaded into, and `module' is a
path to the shared library that comprises the extension.

I explained what such an extension is in my other reply to you.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  3:59             ` Richard Stallman
  2021-12-12  4:46               ` Po Lu
@ 2021-12-12  5:07               ` Alexandre Garreau
  2021-12-12  5:17                 ` Po Lu
  2021-12-13  3:44                 ` Richard Stallman
  2021-12-12 12:17               ` Eli Zaretskii
  2 siblings, 2 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-12  5:07 UTC (permalink / raw)
  To: Po Lu, emacs-devel; +Cc: eliz, stefankangas, larsi, rms, emacs-devel

Le dimanĉo, 12-a de decembro 2021, 4-a horo kaj 59:53 CET Richard Stallman 
a écrit :
>                     and provides some details: for instance, should the
> 
>   > symbol be named `plugin_is_GPL_compatible', or something like
>   > `plugin_is_free_software' (as SQLite3 is public domain instead of
>   > under
>   > the GPL).
> 
> I don't know anything technically about sqlite3, so I can't begin
> to think about how to implement this, and I'm not sure what your
> suggestions really mean.
> 
> What I do know is this: the crucial question is not what name that
> symbol should have, but rather, Which programs need to define it?
> Are you proposing to modify the free plug-ins to define this symbol,
> and make sqlite3 itself check for it?
> 
> We really should have addressed this _before_ putting sqlite3 into the
> Emacs repository at all.
> 
> Alexandre Garreau <galex-713@galex-713.eu> wrote:
>   > It should reuse what gcc does to load its plugins.  GCC asks for a
>   > such
>   > symbol to check the plugins are GPLv3-compatible.
> 
> That's a good thing to do, but note that every plugin for GCC was
> written specifically for dynamic linking with GCC.  The plugin's
> developers define ths symbols to be checked.
> 
> If we put the same mechanism into a modified sqlite3 -- let's call it
> "GNUish sqlite3" -- we will need to make GNUish modified versions of
> the plug-ins as well.
> 
> Maybe that's not a lot of work.  How many free plug-ins are there?

How is that important? adding a symbol should be atomicly simple.  We 
should automate the making of a patch adding a such definition to any 
library.  Then directly suggest it to distributions such as Debian, as I 
suggested before.  If sqlite people care so little about freedom to 
distribute proprietary plugins, they won’t dare include such symbols, and 
will consider it as esoteric nitpicking, especially when their license is 
“public domain” (which btw isn’t even legal in europe).  But serious 
distributions such as Debian, upon which most of distributions depend, 
would take that seriously.  Other important distributions like RedHat may 
as well.  All other distributions are smaller, and even when they don’t 
really care, such as Arch (but parabola would care), they would follow, as 
soon as not following would break software (and we would make so that it 
would break certain features of emacs).

Btw I’m starting to think that if we’re gonna to push such changes on 
several external plugins to some other software, maybe we should push 
similar changes to gstreamer plugins as well.  To me, it would definitely 
be a cleaner solution to the “don’t load proprietary plugins” as well (and 
would avoid to discriminate against plugins which are free but patent-
encumbered).  We could try to convince GNOME people, and if (or rather 
“once”, imho, since I think they don’t really care about freedom but are 
rather “open source” people), apply the same strategy to their software.




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  5:07               ` Alexandre Garreau
@ 2021-12-12  5:17                 ` Po Lu
  2021-12-12  5:20                   ` Alexandre Garreau
  2021-12-13  3:44                 ` Richard Stallman
  1 sibling, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-12  5:17 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: emacs-devel, eliz, stefankangas, larsi, rms

Alexandre Garreau <galex-713@galex-713.eu> writes:

> We could try to convince GNOME people, and if (or rather “once”, imho,
> since I think they don’t really care about freedom but are rather
> “open source” people), apply the same strategy to their software.

GStreamer is not developed by GNOME people, who as part of the GNU
project will likely care more about this.  It is developed by
Freedesktop.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  5:17                 ` Po Lu
@ 2021-12-12  5:20                   ` Alexandre Garreau
  0 siblings, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-12  5:20 UTC (permalink / raw)
  To: emacs-devel

Le dimanĉo, 12-a de decembro 2021, 6-a horo kaj 17:36 CET Po Lu a écrit :
> Alexandre Garreau <galex-713@galex-713.eu> writes:
> 
> 
> 
> > We could try to convince GNOME people, and if (or rather “once”, imho,
> > since I think they don’t really care about freedom but are rather
> > “open source” people), apply the same strategy to their software.
> 
> GStreamer is not developed by GNOME people, who as part of the GNU
> project will likely care more about this. 

It may be true historically but politically GNOME people (especially GNOME 
foundation) don’t consider themselves part of GNU anymore, and they often 
talk about “open source” or “cloud” as positive things on themselves, and 
talk little about freedom.

> It is developed by
> Freedesktop.

What does the G stand for then?




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  3:59             ` Richard Stallman
  2021-12-12  4:46               ` Po Lu
  2021-12-12  5:07               ` Alexandre Garreau
@ 2021-12-12 12:17               ` Eli Zaretskii
  2 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-12 12:17 UTC (permalink / raw)
  To: rms; +Cc: luangruo, larsi, stefankangas, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Cc: eliz@gnu.org, larsi@gnus.org, stefankangas@gmail.com,
> 	emacs-devel@gnu.org
> Date: Sat, 11 Dec 2021 22:59:53 -0500
> 
>                     and provides some details: for instance, should the
>   > symbol be named `plugin_is_GPL_compatible', or something like
>   > `plugin_is_free_software' (as SQLite3 is public domain instead of under
>   > the GPL).
> 
> I don't know anything technically about sqlite3, so I can't begin
> to think about how to implement this, and I'm not sure what your
> suggestions really mean.
> 
> What I do know is this: the crucial question is not what name that
> symbol should have, but rather, Which programs need to define it?
> Are you proposing to modify the free plug-ins to define this symbol,
> and make sqlite3 itself check for it?
> 
> We really should have addressed this _before_ putting sqlite3 into the
> Emacs repository at all.

The issue of loading extensions is somewhat orthogonal to sqlite3
support itself.  Loading of sqlite3 extensions requires an explicit
call to an Emacs primitive, it cannot happen automatically.

>   > It should reuse what gcc does to load its plugins.  GCC asks for a such 
>   > symbol to check the plugins are GPLv3-compatible.
> 
> That's a good thing to do, but note that every plugin for GCC was
> written specifically for dynamic linking with GCC.  The plugin's
> developers define ths symbols to be checked.
> 
> If we put the same mechanism into a modified sqlite3 -- let's call it
> "GNUish sqlite3" -- we will need to make GNUish modified versions of
> the plug-ins as well.

No, the idea is that Emacs itself will verify the compatibility before
asking sqlite3 to load the extension.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  4:46               ` Po Lu
@ 2021-12-13  3:44                 ` Richard Stallman
  2021-12-13  4:01                   ` Lars Ingebrigtsen
  2021-12-13 22:35                   ` Andy Moreton
  0 siblings, 2 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-13  3:44 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, stefankangas, larsi, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > No, I'm proposing to modify the free plug-ins to define this symbol, and
  > then to make Emacs to check for it before telling SQLite to load the
  > plugin.  It would work the same, and it'd also be much easier than
  > modifying SQLite and having to maintain the modified version, and so on
  > and so forth.

I don't think that is legally adequate.  I have an idea for a solution
to that problem, but I need to check it with a lawyer first.

For the mean time, Emacs _should not_ offer any interface to load
sqlite3 extensions.

But eliminating that is _not_ enough to solve the problem, because
sqlite3 offers another way to load one!  It defines an SQL function,
load_extension, to load an extension.  Whatever testing that Emacs
would try to do on an extension before loading it, load_extension
would bypass it.

Is there a way we can undefine that SQL function?  The equivalent of
fmakunbound in Lisp?

Is there a way Emacs can delete that function from the SQL function
table before the user can run any SQL code?

Does SQL have a way undefine a function?  If so, Emacs could run the
SQL to undefine that function, before it lets the user run any SQL
code.

Not as nice, because less modular: Emacs could patch the SQL function
table "by hand" to remove that definition.

We could patch the code in sqlite3 that loads extensions to make it
call a hook, and ask the developers to include it so that we can
use the standard version of sqlite3.  For the mean time, we would
need to use the patched version.

The clean way to do this is to add a C function to sqlite3 which you
call with a pointer to your hook function.  That would be an upward
compatible change to sqlite3, thus no trouble for upstream.

Since Emacs will call this C function, this will prevent simply
linking Emacs with the unmodified sqlite3.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-12  5:07               ` Alexandre Garreau
  2021-12-12  5:17                 ` Po Lu
@ 2021-12-13  3:44                 ` Richard Stallman
  2021-12-13  5:30                   ` Po Lu
  1 sibling, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-13  3:44 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: luangruo, larsi, eliz, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Btw I’m starting to think that if we’re gonna to push such changes on 
  > several external plugins to some other software, maybe we should push 
  > similar changes to gstreamer plugins as well.

The Gstreamer case and the sqlite3 case are structurally analogous,
but I think they are very different in practice.  Correct me if I'm wrong,
but my understanding is that EVERY use of Gstreamer requires plug-ins,
but hardly any user of sqlite3 uses plug-ins.

If I am right about that, it would be adequate, for sqlite3, to
prevent loading plug-ins at all, but doing that for Gstreamer would
make it useless.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  3:44                 ` Richard Stallman
@ 2021-12-13  4:01                   ` Lars Ingebrigtsen
  2021-12-14  4:12                     ` Richard Stallman
  2021-12-13 22:35                   ` Andy Moreton
  1 sibling, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-13  4:01 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Po Lu, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> But eliminating that is _not_ enough to solve the problem, because
> sqlite3 offers another way to load one!  It defines an SQL function,
> load_extension, to load an extension.

That SQL function is only available if it has been enabled on the C
level.  We don't do that, so it's irrelevant.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  3:44                 ` Richard Stallman
@ 2021-12-13  5:30                   ` Po Lu
  2021-12-13  5:36                     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-13  5:30 UTC (permalink / raw)
  To: Richard Stallman
  Cc: Alexandre Garreau, larsi, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> The Gstreamer case and the sqlite3 case are structurally analogous,
> but I think they are very different in practice.  Correct me if I'm wrong,
> but my understanding is that EVERY use of Gstreamer requires plug-ins,
> but hardly any user of sqlite3 uses plug-ins.
>
> If I am right about that, it would be adequate, for sqlite3, to
> prevent loading plug-ins at all, but doing that for Gstreamer would
> make it useless.

Your understanding is correct.  Lars, I think it would be appropriate to
remove the Lisp function for loading SQLite extensions for the time
being.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  5:30                   ` Po Lu
@ 2021-12-13  5:36                     ` Lars Ingebrigtsen
  2021-12-13  6:01                       ` Po Lu
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-13  5:36 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, Alexandre Garreau,
	stefankangas

Po Lu <luangruo@yahoo.com> writes:

> Your understanding is correct.  Lars, I think it would be appropriate to
> remove the Lisp function for loading SQLite extensions for the time
> being.

We're still exploring options.  It's a long time 'til Emacs 29.

One simple possibility would be to have a whitelist of useful (and free)
sqlite plugins.  I doubt it'd be very long.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  5:36                     ` Lars Ingebrigtsen
@ 2021-12-13  6:01                       ` Po Lu
  2021-12-13  8:30                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-13  6:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen
  Cc: eliz, emacs-devel, Richard Stallman, Alexandre Garreau,
	stefankangas

Lars Ingebrigtsen <larsi@gnus.org> writes:

> One simple possibility would be to have a whitelist of useful (and
> free) sqlite plugins.  I doubt it'd be very long.

How would that work?  Not many SQLite plugin binaries are reproducible,
and unlike GStreamer their names do not have any special meaning.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  6:01                       ` Po Lu
@ 2021-12-13  8:30                         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-13  8:30 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, stefankangas, Richard Stallman, Alexandre Garreau,
	emacs-devel

Po Lu <luangruo@yahoo.com> writes:

>> One simple possibility would be to have a whitelist of useful (and
>> free) sqlite plugins.  I doubt it'd be very long.
>
> How would that work?  Not many SQLite plugin binaries are reproducible,
> and unlike GStreamer their names do not have any special meaning.

Just a list of names.  There is, after all, no actual technical way to
stop anybody from loading whatever they want into the Emacs binary, from
playing games with LD_PRELOAD to rebuilding Emacs.  All the "technical"
things we do (checksumming, checking for symbols with GPL in them) are
just a way of saying "we'd rather not cater to this use case".

But users are welcome to do whatever they want to, of course.  It's free
software.  (And we couldn't stop them even if we wanted to, fortunately.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  3:44                 ` Richard Stallman
  2021-12-13  4:01                   ` Lars Ingebrigtsen
@ 2021-12-13 22:35                   ` Andy Moreton
  2021-12-15  5:14                     ` Richard Stallman
  1 sibling, 1 reply; 126+ messages in thread
From: Andy Moreton @ 2021-12-13 22:35 UTC (permalink / raw)
  To: emacs-devel

On Sun 12 Dec 2021, Richard Stallman wrote:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > No, I'm proposing to modify the free plug-ins to define this symbol, and
>   > then to make Emacs to check for it before telling SQLite to load the
>   > plugin.  It would work the same, and it'd also be much easier than
>   > modifying SQLite and having to maintain the modified version, and so on
>   > and so forth.
>
> I don't think that is legally adequate.  I have an idea for a solution
> to that problem, but I need to check it with a lawyer first.
>
> For the mean time, Emacs _should not_ offer any interface to load
> sqlite3 extensions.
>
> But eliminating that is _not_ enough to solve the problem, because
> sqlite3 offers another way to load one!  It defines an SQL function,
> load_extension, to load an extension.  Whatever testing that Emacs
> would try to do on an extension before loading it, load_extension
> would bypass it.
>
> Is there a way we can undefine that SQL function?  The equivalent of
> fmakunbound in Lisp?

Perhaps disabling the SQL extension API would be sufficient ?

The documentation notes that sqlite3_db_config can be used to enable
only the C sqlite3_load_extension API without also enabling the SQL
extension loading API:

    https://www.sqlite.org/c3ref/enable_load_extension.html

The security warning on that page recommends using sqlite3_db_config,
and NOT using sqlite3_enable_load_extension.

    AndyM




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13  4:01                   ` Lars Ingebrigtsen
@ 2021-12-14  4:12                     ` Richard Stallman
  2021-12-14  4:36                       ` Po Lu
  0 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-14  4:12 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: luangruo, eliz, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > But eliminating that is _not_ enough to solve the problem, because
  > > sqlite3 offers another way to load one!  It defines an SQL function,
  > > load_extension, to load an extension.

  > That SQL function is only available if it has been enabled on the C
  > level.  We don't do that, so it's irrelevant.

That's good news.

For now, we should disable the Lisp function to load sqlite3.
Whatever is in master is already being downloaded and run.
It should not offer this capability.

If people develop a safe way to define it, then we can enable it.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  4:12                     ` Richard Stallman
@ 2021-12-14  4:36                       ` Po Lu
  2021-12-14  7:23                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-14  4:36 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Lars Ingebrigtsen, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> For now, we should disable the Lisp function to load sqlite3.
> Whatever is in master is already being downloaded and run.
> It should not offer this capability.

Thanks.  Lars, when excising this support, should I remove the configure
code that checks for the presence of `sqlite_load_extension' as well, or
is it used elsewhere?



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  4:36                       ` Po Lu
@ 2021-12-14  7:23                         ` Lars Ingebrigtsen
  2021-12-14  7:40                           ` Po Lu
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-14  7:23 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

> Richard Stallman <rms@gnu.org> writes:
>
>> For now, we should disable the Lisp function to load sqlite3.
>> Whatever is in master is already being downloaded and run.
>> It should not offer this capability.
>
> Thanks.  Lars, when excising this support, should I remove the configure
> code that checks for the presence of `sqlite_load_extension' as well, or
> is it used elsewhere?

I disagree with Richard that we should remove the sqlite-load-extension
function right away, so don't do that.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  7:23                         ` Lars Ingebrigtsen
@ 2021-12-14  7:40                           ` Po Lu
  2021-12-14  8:30                             ` Lars Ingebrigtsen
  2021-12-15  5:15                             ` Richard Stallman
  0 siblings, 2 replies; 126+ messages in thread
From: Po Lu @ 2021-12-14  7:40 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> Thanks.  Lars, when excising this support, should I remove the configure
>> code that checks for the presence of `sqlite_load_extension' as well, or
>> is it used elsewhere?

> I disagree with Richard that we should remove the sqlite-load-extension
> function right away, so don't do that.

IANAL, but I think it would be safer to avoid the legal complications of
that by removing it immediately, until the relevant lawyers find a
solution.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  7:40                           ` Po Lu
@ 2021-12-14  8:30                             ` Lars Ingebrigtsen
  2021-12-14  9:16                               ` Po Lu
  2021-12-15  5:15                             ` Richard Stallman
  1 sibling, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-14  8:30 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, stefankangas, Richard Stallman, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> IANAL, but I think it would be safer to avoid the legal complications of
> that by removing it immediately, until the relevant lawyers find a
> solution.

There aren't any legal complications -- it's just a matter of what we
want to promote by making easy (or not).

I've now implemented the previously mentioned allowlist, and initialised
it with a couple of modules that seemed obviously useful (pcre and
csvtable).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  8:30                             ` Lars Ingebrigtsen
@ 2021-12-14  9:16                               ` Po Lu
  2021-12-14 10:27                                 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-14  9:16 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: eliz, stefankangas, Richard Stallman, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I've now implemented the previously mentioned allowlist, and
> initialised it with a couple of modules that seemed obviously useful
> (pcre and csvtable).

The problem is that such a whitelist has to operate on a list of names
by principle, but if the doc string is to be trusted, legitimate plugins
(and proprietary ones) can also be referred to by an absolute file path
to a shared library.

How did you work around this problem?  Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  9:16                               ` Po Lu
@ 2021-12-14 10:27                                 ` Lars Ingebrigtsen
  2021-12-14 13:12                                   ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-14 10:27 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, stefankangas, Richard Stallman

Po Lu <luangruo@yahoo.com> writes:

> The problem is that such a whitelist has to operate on a list of names
> by principle, but if the doc string is to be trusted, legitimate plugins
> (and proprietary ones) can also be referred to by an absolute file path
> to a shared library.
>
> How did you work around this problem?  Thanks.

I didn't.  As I explained before, there's no technical way to block a
user from loading whatever they way, either via LD_PRELOAD or any number
of other mechanisms.  We can only discourage it, which this allowlist
does.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14 10:27                                 ` Lars Ingebrigtsen
@ 2021-12-14 13:12                                   ` Eli Zaretskii
  2021-12-14 13:15                                     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-14 13:12 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: luangruo, emacs-devel, stefankangas, rms

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: eliz@gnu.org,  stefankangas@gmail.com,  Richard Stallman <rms@gnu.org>,
>   emacs-devel@gnu.org
> Date: Tue, 14 Dec 2021 11:27:31 +0100
> 
> > How did you work around this problem?  Thanks.
> 
> I didn't.  As I explained before, there's no technical way to block a
> user from loading whatever they way, either via LD_PRELOAD or any number
> of other mechanisms.  We can only discourage it, which this allowlist
> does.

What about Andy Moreton's suggestion to disable loading the extensions
via sqlite3_db_config?  It sounds like a good idea, even if it's
orthogonal to the reason for having a whitelist.




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14 13:12                                   ` Eli Zaretskii
@ 2021-12-14 13:15                                     ` Lars Ingebrigtsen
  2021-12-14 13:38                                       ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-14 13:15 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, emacs-devel, stefankangas, rms

Eli Zaretskii <eliz@gnu.org> writes:

> What about Andy Moreton's suggestion to disable loading the extensions
> via sqlite3_db_config?  It sounds like a good idea, even if it's
> orthogonal to the reason for having a whitelist.

Do you mean the SQL command for loading extensions?  From my reading of
the documentation, it's not enabled by default -- you have to call a C
level function to enable it, and we don't.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14 13:15                                     ` Lars Ingebrigtsen
@ 2021-12-14 13:38                                       ` Eli Zaretskii
  2021-12-14 23:41                                         ` Andy Moreton
  0 siblings, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-14 13:38 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: luangruo, emacs-devel, stefankangas, rms

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Cc: luangruo@yahoo.com,  stefankangas@gmail.com,  rms@gnu.org,
>   emacs-devel@gnu.org
> Date: Tue, 14 Dec 2021 14:15:46 +0100
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> > What about Andy Moreton's suggestion to disable loading the extensions
> > via sqlite3_db_config?  It sounds like a good idea, even if it's
> > orthogonal to the reason for having a whitelist.
> 
> Do you mean the SQL command for loading extensions?  From my reading of
> the documentation, it's not enabled by default -- you have to call a C
> level function to enable it, and we don't.

Then maybe I misunderstood what Andy was saying, or the documentation
he pointed to (or both).  I'll let Andy respond.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14 13:38                                       ` Eli Zaretskii
@ 2021-12-14 23:41                                         ` Andy Moreton
  2021-12-15 14:53                                           ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Andy Moreton @ 2021-12-14 23:41 UTC (permalink / raw)
  To: emacs-devel

On Tue 14 Dec 2021, Eli Zaretskii wrote:

>> From: Lars Ingebrigtsen <larsi@gnus.org>
>> Cc: luangruo@yahoo.com,  stefankangas@gmail.com,  rms@gnu.org,
>>   emacs-devel@gnu.org
>> Date: Tue, 14 Dec 2021 14:15:46 +0100
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> > What about Andy Moreton's suggestion to disable loading the extensions
>> > via sqlite3_db_config?  It sounds like a good idea, even if it's
>> > orthogonal to the reason for having a whitelist.
>> 
>> Do you mean the SQL command for loading extensions?  From my reading of
>> the documentation, it's not enabled by default -- you have to call a C
>> level function to enable it, and we don't.
>
> Then maybe I misunderstood what Andy was saying, or the documentation
> he pointed to (or both).  I'll let Andy respond.

I'm not at all expert on SQL matters - I read the sqlite documentation
which points out that there are two ways to allow loading of sqlite
extensions from C:

a) sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,..)
   - enables sqlite3_load_extension()
   - does not enable SQL function "load_extension"

b) sqlite3_enable_load_extension()
   - enables sqlite3_load_extension()
   - ALSO enables SQL function "load_extension"

So if sqlite extensions are to be allowed in emacs, option (a) should be
preferred. This is explicitly called out as a security issue in the docs.

Loading sqlite extensions should be disabled by default, and only be
enabled by explicit user configuration.

    AndyM





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-13 22:35                   ` Andy Moreton
@ 2021-12-15  5:14                     ` Richard Stallman
  2021-12-15  7:10                       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-15  5:14 UTC (permalink / raw)
  To: Andy Moreton; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The documentation notes that sqlite3_db_config can be used to enable
  > only the C sqlite3_load_extension API without also enabling the SQL
  > extension loading API:

Is it desirable to enable the C version of sqlite3_load_extension?
What uses that?

I have a feeling that if can only do harm, not good -- that either it
will never be used, or it could be used to load nonfree eetxnsions.
Why take a risk?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14  7:40                           ` Po Lu
  2021-12-14  8:30                             ` Lars Ingebrigtsen
@ 2021-12-15  5:15                             ` Richard Stallman
  2021-12-15  7:07                               ` Lars Ingebrigtsen
                                                 ` (2 more replies)
  1 sibling, 3 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-15  5:15 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, stefankangas, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > IANAL, but I think it would be safer to avoid the legal complications of
  > that by removing it immediately, until the relevant lawyers find a
  > solution.

You have the right basic approach to this problem.  The problem is
grave and hard; we don't know whether there is an adequate solution.
We won't know unless/until we find one.

While a feature is in that state of doubt, it should not be included.
We should install it if and when we know it is correct to do so.
Installing it prematurely is unwise, so we need to de-install it.

I want to correct one detail.  This is not a legal problem, it's a
moral problem.  There is no "answer" that lawyers could tell us that
would fix it.

We have discussed technical solutions that could make dynamic loading
of modules morally ok, but implementing them seems like a hassle.  It
looks like few users will use them anyway, which would imply that
implementing a solution is not worth the trouble.

If we confirm that, it will follows that the right thing to do is to
keep dynamic loading of sqlite3 modules completely off in Emacs.
It seems that's easy.

Unless/until we know that it is ok to give Emacs the dynamic sqlite3
module feature, we should not install it.

Po Lu, would you please remove that feature (disable that code)?

If we do find later that it is ok to enable that feature, it won't be
hard to install it then.

Lars is right that there are always ways for users do modify a free
program to do whatever they wish.  That's the nature of free software.
That's how things should be.

So if we were trying to make it _impossible_ for users to modify Emacs
to run with a nonfree dynamically loaded sqlite3 module, that would be
futile -- and wrong.  As developers of a free program, we can't _stop_
users from modifying it to do whatever they wish, and we don't want to
try.

Which is why this issue is not about "stopping" users from making such
modifications, or whether we can "stop" them.  Those questions are
distractions.  This question is about what Emacs _as we distribute it_
does, and what it should do.

Unless we find a way to make the sqlite3 dynamical module capability
ok, we should not implement that capability.

Po Lu, would you please turn off that sqlite3 dynamical module capability?

Lars metioned something called LD_PRELOAD.  I don't know what that is,
and I can't find it in the documentation I have here.  I don't know
whether it makes a difference for this issue, and I would like to
study that question.

Would someone please point me at an explanation of what LD_PRELOAD
does, with docs for how to use it?  Also, which part of the GNU/Linux
system implements it?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  5:15                             ` Richard Stallman
@ 2021-12-15  7:07                               ` Lars Ingebrigtsen
  2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
  2021-12-15  7:26                               ` master 3d38d1d: Add sqlite3 support to Emacs Po Lu
  2021-12-15 14:22                               ` Alexandre Garreau
  2 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  7:07 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Po Lu, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Unless/until we know that it is ok to give Emacs the dynamic sqlite3
> module feature, we should not install it.
>
> Po Lu, would you please remove that feature (disable that code)?

No, don't do that.

> If we do find later that it is ok to enable that feature, it won't be
> hard to install it then.

There's an allowlist in place.  Only the pcre and csvtable modules (both
free modules) can be installed now via the current loading mechanism.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  5:14                     ` Richard Stallman
@ 2021-12-15  7:10                       ` Lars Ingebrigtsen
  2021-12-16  4:41                         ` Richard Stallman
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  7:10 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Andy Moreton, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> I have a feeling that if can only do harm, not good -- that either it
> will never be used, or it could be used to load nonfree eetxnsions.

The use case is to load the pcre module, which will allow us to list
stored data based on regexp matches.  I.e., it will give users greater
power to inspect .sqlite files.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs)
  2021-12-15  7:07                               ` Lars Ingebrigtsen
@ 2021-12-15  7:17                                 ` Po Lu
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
                                                     ` (3 more replies)
  0 siblings, 4 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15  7:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Richard Stallman, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Unless/until we know that it is ok to give Emacs the dynamic sqlite3
> module feature, we should not install it.
>
> Po Lu, would you please remove that feature (disable that code)?

Lars Ingebrigtsen <larsi@gnus.org> writes:

> No, don't do that.

Who do I listen to..? It is already confusing enough to participate in
the development of a large piece of software in my spare time as it is,
so please don't confuse me further with contradictory instructions.

That being said, I'm personally in favour of removing the code.  It
doesn't seem right to leave such a half baked solution to a serious
problem in place.

> There's an allowlist in place.  Only the pcre and csvtable modules (both
> free modules) can be installed now via the current loading mechanism.

It's still based on looking at the names of modules: proprietary modules
could easily be renamed so that their filenames are the same as the free
ones, and vice versa: it is not concrete at all.

The PCRE and csvtable modules are also in the public domain.
Proprietary versions of them could be created ino the future.

BTW, the term "allowlist" is confusing.  It took me a while to guess its
meaning.  Why not use the industry-standard term "whitelist" instead?



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

* Re: Contradictiory directions
  2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
@ 2021-12-15  7:23                                   ` Lars Ingebrigtsen
  2021-12-15  7:36                                     ` Po Lu
                                                       ` (2 more replies)
  2021-12-15 10:14                                   ` Óscar Fuentes
                                                     ` (2 subsequent siblings)
  3 siblings, 3 replies; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  7:23 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

> Who do I listen to..?

Eli and I are the maintainers.

> It is already confusing enough to participate in
> the development of a large piece of software in my spare time as it is,
> so please don't confuse me further with contradictory instructions.

Yes, it's confusing when other people are trying to give you orders, but
you can just disregard them.

> It's still based on looking at the names of modules: proprietary modules
> could easily be renamed so that their filenames are the same as the free
> ones, and vice versa: it is not concrete at all.
>
> The PCRE and csvtable modules are also in the public domain.
> Proprietary versions of them could be created ino the future.

There are no guarantees in this world.  Anybody could be making
proprietary versions of absolutely all modules Emacs is loading,
including libc.so, and there's no technical ways of stopping Emacs from
loading them.

> BTW, the term "allowlist" is confusing.  It took me a while to guess its
> meaning.  Why not use the industry-standard term "whitelist" instead?

The industry standard is allowlist/blocklist.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  5:15                             ` Richard Stallman
  2021-12-15  7:07                               ` Lars Ingebrigtsen
@ 2021-12-15  7:26                               ` Po Lu
  2021-12-16  4:41                                 ` Richard Stallman
  2021-12-15 14:22                               ` Alexandre Garreau
  2 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-15  7:26 UTC (permalink / raw)
  To: Richard Stallman; +Cc: larsi, stefankangas, eliz, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Lars metioned something called LD_PRELOAD.  I don't know what that is,
> and I can't find it in the documentation I have here.  I don't know
> whether it makes a difference for this issue, and I would like to
> study that question.
>
> Would someone please point me at an explanation of what LD_PRELOAD
> does, with docs for how to use it?  Also, which part of the GNU/Linux
> system implements it?

It's implemented by the dynamic linker component of the GNU C Library.

See the sections "environment" and "files" of the manual page for ld.so,
but if that's not on your system, here are the relevant parts for your
convenience.


       LD_PRELOAD
              A  list  of additional, user-specified, ELF shared objects to be
              loaded before all others.  This feature can be  used  to  selec‐
              tively override functions in other shared objects.

              The  items of the list can be separated by spaces or colons, and
              there is no support for escaping either separator.  The  objects
              are  searched  for using the rules given under DESCRIPTION.  Ob‐
              jects are searched for and added to the link map in the left-to-
              right order specified in the list.

              In  secure-execution  mode, preload pathnames containing slashes
              are ignored.  Furthermore, shared  objects  are  preloaded  only
              from  the standard search directories and only if they have set-
              user-ID mode bit enabled (which is not typical).

              Within the names specified in the LD_PRELOAD list,  the  dynamic
              linker  understands  the tokens $ORIGIN, $LIB, and $PLATFORM (or
              the versions using curly braces around the names)  as  described
              above  in  Dynamic  string  tokens.  (See also the discussion of
              quoting under the description of LD_LIBRARY_PATH.)

              There are various methods of specifying  libraries  to  be  pre‐
              loaded, and these are handled in the following order:

              (1) The LD_PRELOAD environment variable.

              (2) The  --preload command-line option when invoking the dynamic
                  linker directly.

              (3) The /etc/ld.so.preload file (described below).

       /etc/ld.so.preload
              File  containing  a  whitespace-separated list of ELF shared ob‐
              jects to be loaded before the program.  See  the  discussion  of
              LD_PRELOAD above.  If both LD_PRELOAD and /etc/ld.so.preload are
              employed, the libraries specified by  LD_PRELOAD  are  preloaded
              first.  /etc/ld.so.preload has a system-wide effect, causing the
              specified libraries to be preloaded for all  programs  that  are
              executed  on  the  system.  (This is usually undesirable, and is
              typically employed only as an emergency remedy, for example,  as
              a temporary workaround to a library misconfiguration issue.)



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

* Re: Contradictiory directions
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
@ 2021-12-15  7:36                                     ` Po Lu
  2021-12-15  7:41                                       ` Lars Ingebrigtsen
  2021-12-15 15:15                                     ` Alexandre Garreau
  2021-12-16  4:41                                     ` Richard Stallman
  2 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-15  7:36 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Richard Stallman, eliz, stefankangas, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> There are no guarantees in this world.  Anybody could be making
> proprietary versions of absolutely all modules Emacs is loading,
> including libc.so, and there's no technical ways of stopping Emacs from
> loading them.

I think the idea is that for us to _distribute_ a version of Emacs that
allows to dynamically load proprietary modules is wrong and sets a bad
example for the GNU project.

> The industry standard is allowlist/blocklist.

If so, it is certainly a standard I don't know about.  In nearly three
decades, I've heard many variants of "list", but never "allowlist" or
"blocklist".  Can we agree to use the terminology that everyone knows
about in Emacs, to keep the situation simple?



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

* Re: Contradictiory directions
  2021-12-15  7:36                                     ` Po Lu
@ 2021-12-15  7:41                                       ` Lars Ingebrigtsen
  2021-12-15  7:48                                         ` Po Lu
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  7:41 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

> I think the idea is that for us to _distribute_ a version of Emacs that
> allows to dynamically load proprietary modules is wrong and sets a bad
> example for the GNU project.

It is impossible to disallow such a thing, so I'm not sure what your
point is.

>> The industry standard is allowlist/blocklist.
>
> If so, it is certainly a standard I don't know about.  In nearly three
> decades, I've heard many variants of "list", but never "allowlist" or
> "blocklist".  Can we agree to use the terminology that everyone knows
> about in Emacs, to keep the situation simple?

Seems simple enough to me.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Contradictiory directions
  2021-12-15  7:41                                       ` Lars Ingebrigtsen
@ 2021-12-15  7:48                                         ` Po Lu
  2021-12-15  7:52                                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-15  7:48 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Richard Stallman, eliz, stefankangas, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> It is impossible to disallow such a thing, so I'm not sure what your
> point is.

It's bad to distribute a version of Emacs capable of such a thing.
Users are of course free to do whatever they want with their copies, but
we are morally and legally responsible for the versions of Emacs that we
distribute.

glibc (and hence, LD_PRELOAD) is special in this regard: it is a system
library.  There is a detailed explanation somewhere I don't recall
anymore, but there is a simplified version here:
https://www.gnu.org/licenses/why-not-lgpl.html.

>> If so, it is certainly a standard I don't know about.  In nearly three
>> decades, I've heard many variants of "list", but never "allowlist" or
>> "blocklist".  Can we agree to use the terminology that everyone knows
>> about in Emacs, to keep the situation simple?

> Seems simple enough to me.

So we agree to use the existing terms "whitelist" and "blacklist" then?
LGTM, thanks!



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

* Re: Contradictiory directions
  2021-12-15  7:48                                         ` Po Lu
@ 2021-12-15  7:52                                           ` Lars Ingebrigtsen
  2021-12-15  7:59                                             ` Po Lu
  0 siblings, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  7:52 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

>> It is impossible to disallow such a thing, so I'm not sure what your
>> point is.
>
> It's bad to distribute a version of Emacs capable of such a thing.

Uhm...  then it's bad, I guess?  Since all versions of Emacs have been,
since the very first one, capable of that.

>>> If so, it is certainly a standard I don't know about.  In nearly three
>>> decades, I've heard many variants of "list", but never "allowlist" or
>>> "blocklist".  Can we agree to use the terminology that everyone knows
>>> about in Emacs, to keep the situation simple?
>
>> Seems simple enough to me.
>
> So we agree to use the existing terms "whitelist" and "blacklist" then?
> LGTM, thanks!

We're using the existing terms allowlist/blocklist.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Contradictiory directions
  2021-12-15  7:52                                           ` Lars Ingebrigtsen
@ 2021-12-15  7:59                                             ` Po Lu
  2021-12-15  8:04                                               ` Lars Ingebrigtsen
  2021-12-16  4:40                                               ` Richard Stallman
  0 siblings, 2 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15  7:59 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Richard Stallman, eliz, stefankangas, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> It's bad to distribute a version of Emacs capable of such a thing.

> Uhm...  then it's bad, I guess?  Since all versions of Emacs have been,
> since the very first one, capable of that.

We did not gain any type of dynamic module loading feature until Emacs
25.

> We're using the existing terms allowlist/blocklist.

"Blacklist" and "whitelist" appear in the Emacs source tree a total of
432 times, while "allowlist" and "blocklist" appear a total of 259 times
exclusively in the context of mh-e.

So it seems to be terminology specific to mh-e, with no reason to
warrant its adoption throughout Emacs.



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

* Re: Contradictiory directions
  2021-12-15  7:59                                             ` Po Lu
@ 2021-12-15  8:04                                               ` Lars Ingebrigtsen
  2021-12-15  8:13                                                 ` Po Lu
  2021-12-16  4:40                                               ` Richard Stallman
  1 sibling, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15  8:04 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

> We did not gain any type of dynamic module loading feature until Emacs
> 25.

I'm not talking about dynamic Emacs modules.  I'm talking about basic
libraries.  We can't check whether whatever libraries we're loading,
whether it's libc.so or libsrvg.so or whatever, aren't proprietary
variations on the libraries we're expecting.

> So it seems to be terminology specific to mh-e, with no reason to
> warrant its adoption throughout Emacs.

The reason is that the world has moved on to the new terms.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Contradictiory directions
  2021-12-15  8:04                                               ` Lars Ingebrigtsen
@ 2021-12-15  8:13                                                 ` Po Lu
  2021-12-15  9:16                                                   ` tomas
                                                                     ` (3 more replies)
  0 siblings, 4 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15  8:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Richard Stallman, eliz, stefankangas, emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I'm not talking about dynamic Emacs modules.  I'm talking about basic
> libraries.  We can't check whether whatever libraries we're loading,
> whether it's libc.so or libsrvg.so or whatever, aren't proprietary
> variations on the libraries we're expecting.

These are system libraries, all of which are either free or have free
replacements.  I don't think we allow features that depend on
proprietary libraries that have no free replacement.  And to distribute
a binary of Emacs that links against a non-free non-system library would
be illegal.

>> So it seems to be terminology specific to mh-e, with no reason to
>> warrant its adoption throughout Emacs.
>
> The reason is that the world has moved on to the new terms.

It certainly hasn't: this was the first time I ever came across the term
"allowlist" being used, and it was in the form of an email, not code.

Even if the world has "moved on" (which is hardly a given), software
(Emacs even more so) has historically used the "old" terms, which there
is no need to change.  So as I said, can we please keep the situation
simple by using the terminology which we have always used, which is to
say, "blacklist" and "whitelist".



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

* Re: Contradictiory directions
  2021-12-15  8:13                                                 ` Po Lu
@ 2021-12-15  9:16                                                   ` tomas
  2021-12-15  9:49                                                     ` Po Lu
  2021-12-15  9:17                                                   ` Lele Gaifax
                                                                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 126+ messages in thread
From: tomas @ 2021-12-15  9:16 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]

On Wed, Dec 15, 2021 at 04:13:39PM +0800, Po Lu wrote:

[...]

> >> So it seems to be terminology specific to mh-e, with no reason to
> >> warrant its adoption throughout Emacs.
> >
> > The reason is that the world has moved on to the new terms.
> 
> It certainly hasn't: this was the first time I ever came across the term
> "allowlist" being used, and it was in the form of an email, not code.
> 
> Even if the world has "moved on" (which is hardly a given), software
> (Emacs even more so) has historically used the "old" terms, which there
> is no need to change.  So as I said, can we please keep the situation
> simple by using the terminology which we have always used, which is to
> say, "blacklist" and "whitelist".

This is a politically loaded discussion. Still, I think it is important.
If there is a reason to assume that "blacklist"/"whitelist" might offend
some people, I think it does make sense to look for alternatives.

Perhaps it doesn't make sense to mass-patch old code, but when writing
new code... why not?

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-15  8:13                                                 ` Po Lu
  2021-12-15  9:16                                                   ` tomas
@ 2021-12-15  9:17                                                   ` Lele Gaifax
  2021-12-15 12:39                                                   ` Lars Ingebrigtsen
  2021-12-16  4:40                                                   ` Richard Stallman
  3 siblings, 0 replies; 126+ messages in thread
From: Lele Gaifax @ 2021-12-15  9:17 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Lars Ingebrigtsen <larsi@gnus.org> writes:
>>
>> The reason is that the world has moved on to the new terms.
>
> It certainly hasn't: this was the first time I ever came across the term
> "allowlist" being used, and it was in the form of an email, not code.
>
> Even if the world has "moved on" (which is hardly a given), software
> (Emacs even more so) has historically used the "old" terms, which there
> is no need to change.  So as I said, can we please keep the situation
> simple by using the terminology which we have always used, which is to
> say, "blacklist" and "whitelist".

The world is slowly moving toward a more "inclusive" and "politically correct"
terminology, because using "black" and "white" for such things may sound
inappropriate, as "master"/"slave" in other contexts.

ciao, lele.
-- 
nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri
real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia.
lele@metapensiero.it  |                 -- Fortunato Depero, 1929.




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

* Re: Contradictiory directions
  2021-12-15  9:16                                                   ` tomas
@ 2021-12-15  9:49                                                     ` Po Lu
  2021-12-15  9:59                                                       ` tomas
                                                                         ` (2 more replies)
  0 siblings, 3 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15  9:49 UTC (permalink / raw)
  To: tomas; +Cc: emacs-devel

<tomas@tuxteam.de> writes:

> This is a politically loaded discussion. Still, I think it is important.
> If there is a reason to assume that "blacklist"/"whitelist" might offend
> some people, I think it does make sense to look for alternatives.

This is not a political discussion, but one based on technical issues,
namely how using two different terms to refer to the same thing hinders
the development of Emacs.

The only goal is to develop free software, which necessitates not being
sidetracked by the attempts of other movements (which may or may not be
admirable) to introduce new terminology.

There is a node "Other Politics" in the Information for Maintainers of
GNU Software, which says:

  A GNU package should not seriously advocate any other political
  causes.  Not that the GNU Project opposes those other causes.  Rather,
  it is neutral on them, and GNU packages should be neutral too.

And my discussion proceeded on those neutral lines as well.  Please do
not bring political issues into this.



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

* Re: Contradictiory directions
  2021-12-15  9:49                                                     ` Po Lu
@ 2021-12-15  9:59                                                       ` tomas
  2021-12-15 10:06                                                         ` Po Lu
  2021-12-15 12:25                                                       ` Dmitry Gutov
  2021-12-16 17:45                                                       ` Stephen Leake
  2 siblings, 1 reply; 126+ messages in thread
From: tomas @ 2021-12-15  9:59 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 909 bytes --]

On Wed, Dec 15, 2021 at 05:49:30PM +0800, Po Lu wrote:

Hi,

this is going to be my last post to this thread. I think it isn't useful
to extend those discussions beyond some point.

> <tomas@tuxteam.de> writes:
> 
> > This is a politically loaded discussion. Still, I think it is important.
> > If there is a reason to assume that "blacklist"/"whitelist" might offend
> > some people, I think it does make sense to look for alternatives.
> 
> This is not a political discussion, but one based on technical issues,

[...]

This "we decide exclusively on technical grounds" is usually a higly
political decision hidden behind a tree. My hunch is that this is one of
those cases.

But, as I said above, I'll rest my case. We have stated our positions,
we won't convince each other, so that's the maximum use we can expect
this thread can have.

Let's agree to differ.

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-15  9:59                                                       ` tomas
@ 2021-12-15 10:06                                                         ` Po Lu
  0 siblings, 0 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15 10:06 UTC (permalink / raw)
  To: tomas; +Cc: emacs-devel

tomas@tuxteam.de writes:

> This "we decide exclusively on technical grounds" is usually a higly
> political decision hidden behind a tree. My hunch is that this is one of
> those cases.

No, it is not.  I would not agree to a change from (for example) "frame"
to "window" and from "window" to "pane" for the exact same reason.



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

* Re: Contradictiory directions
  2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
@ 2021-12-15 10:14                                   ` Óscar Fuentes
  2021-12-15 10:24                                     ` Po Lu
  2021-12-15 15:11                                     ` Alexandre Garreau
  2021-12-15 13:36                                   ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Eli Zaretskii
  2021-12-15 14:34                                   ` Alexandre Garreau
  3 siblings, 2 replies; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 10:14 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> It's still based on looking at the names of modules: proprietary modules
> could easily be renamed so that their filenames are the same as the free
> ones, and vice versa: it is not concrete at all.

Propietary modules can define any symbol, so the
"this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
gcc modules is even less of a solution. I can foresee a propietary
module playing that trick, but changing the name of the module and
creating a name collision with some of the most popular modules out
there is a bit too risky even for the most adventurous propietary
vendor.

> The PCRE and csvtable modules are also in the public domain.
> Proprietary versions of them could be created ino the future.

So you just decidead that all those versions that allow to distribute
non-free versions of the code are incompatible with the GPL after all?
<sigh>

> BTW, the term "allowlist" is confusing.  It took me a while to guess its
> meaning.  Why not use the industry-standard term "whitelist" instead?

Today you are in the mood of picking an argument, aren't you? ;-)




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

* Re: Contradictiory directions
  2021-12-15 10:14                                   ` Óscar Fuentes
@ 2021-12-15 10:24                                     ` Po Lu
  2021-12-15 10:32                                       ` Óscar Fuentes
  2021-12-15 13:51                                       ` Eli Zaretskii
  2021-12-15 15:11                                     ` Alexandre Garreau
  1 sibling, 2 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15 10:24 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> Propietary modules can define any symbol, so the
> "this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
> gcc modules is even less of a solution. I can foresee a propietary
> module playing that trick, but changing the name of the module and
> creating a name collision with some of the most popular modules out
> there is a bit too risky even for the most adventurous propietary
> vendor.

Then as RMS said, we should remove the feature wholesale, until a
solution is found.

> So you just decidead that all those versions that allow to distribute
> non-free versions of the code are incompatible with the GPL after all?

GPL compatibility is not the solution to the problem here, which is a
moral one.

> Today you are in the mood of picking an argument, aren't you? ;-)

I'm not picking an argument, only noting what I found to be confusing.



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

* Re: Contradictiory directions
  2021-12-15 10:24                                     ` Po Lu
@ 2021-12-15 10:32                                       ` Óscar Fuentes
  2021-12-15 10:42                                         ` Po Lu
  2021-12-16  4:40                                         ` Richard Stallman
  2021-12-15 13:51                                       ` Eli Zaretskii
  1 sibling, 2 replies; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 10:32 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Óscar Fuentes <ofv@wanadoo.es> writes:
>
>> Propietary modules can define any symbol, so the
>> "this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
>> gcc modules is even less of a solution. I can foresee a propietary
>> module playing that trick, but changing the name of the module and
>> creating a name collision with some of the most popular modules out
>> there is a bit too risky even for the most adventurous propietary
>> vendor.
>
> Then as RMS said, we should remove the feature wholesale, until a
> solution is found.

My point is that if the symbol trick is considered an acceptable
solution, name-based blocking should be acceptable too because it is
much more effective in practice.




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

* Re: Contradictiory directions
  2021-12-15 10:32                                       ` Óscar Fuentes
@ 2021-12-15 10:42                                         ` Po Lu
  2021-12-15 12:44                                           ` Óscar Fuentes
  2021-12-16  4:40                                         ` Richard Stallman
  1 sibling, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-15 10:42 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

>> Then as RMS said, we should remove the feature wholesale, until a
>> solution is found.

> My point is that if the symbol trick is considered an acceptable
> solution

My understanding is that the symbol trick is considered acceptable
because it will be more likely to hold up in court to mean that whoever
wrote the non-free module fully understood that it had to be compatible
with the GPL.  (And it certainly took a long time to devise that method,
as there were already patches for Emacs 20 adding dynamic loading
support, but it took us all the way until Emacs 25 to get where we are
now.)

But apparently SQLite modules, even those intended for use with Emacs,
are not legally required to comply with the GPL, so that is out of the
question here.



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

* Re: Contradictiory directions
  2021-12-15  9:49                                                     ` Po Lu
  2021-12-15  9:59                                                       ` tomas
@ 2021-12-15 12:25                                                       ` Dmitry Gutov
  2021-12-15 12:31                                                         ` Po Lu
  2021-12-16 17:45                                                       ` Stephen Leake
  2 siblings, 1 reply; 126+ messages in thread
From: Dmitry Gutov @ 2021-12-15 12:25 UTC (permalink / raw)
  To: Po Lu, tomas; +Cc: emacs-devel

On 15.12.2021 12:49, Po Lu wrote:
> This is not a political discussion, but one based on technical issues,
> namely how using two different terms to refer to the same thing hinders
> the development of Emacs.

It's a discussion where one side is aware of the political connotations 
of the terms and the reasons why "the world has moved on from them", and 
another stays willfully ignorant of them.



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

* Re: Contradictiory directions
  2021-12-15 12:25                                                       ` Dmitry Gutov
@ 2021-12-15 12:31                                                         ` Po Lu
  2021-12-15 13:52                                                           ` Dmitry Gutov
  0 siblings, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-15 12:31 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: tomas, emacs-devel

Dmitry Gutov <dgutov@yandex.ru> writes:

> It's a discussion where one side is aware of the political
> connotations of the terms and the reasons why "the world has moved on
> from them", and another stays willfully ignorant of them.

Either way, I did not start a discussion about politics, so please don't
turn it into one.

Would you accept a change from "window" to "glass sheet", especially if
"window" will still be used inside Emacs in many places?

Developing software is hard enough, so please try not to make it even
more confusing with sudden (and partial) changes in terminology.

Thanks.



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

* Re: Contradictiory directions
  2021-12-15  8:13                                                 ` Po Lu
  2021-12-15  9:16                                                   ` tomas
  2021-12-15  9:17                                                   ` Lele Gaifax
@ 2021-12-15 12:39                                                   ` Lars Ingebrigtsen
  2021-12-16  4:40                                                   ` Richard Stallman
  3 siblings, 0 replies; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-15 12:39 UTC (permalink / raw)
  To: Po Lu; +Cc: eliz, emacs-devel, Richard Stallman, stefankangas

Po Lu <luangruo@yahoo.com> writes:

> These are system libraries, all of which are either free or have free
> replacements.  I don't think we allow features that depend on
> proprietary libraries that have no free replacement.

We don't link against such libraries, but there's nothing we can do to
disallow a user from doing so.  Fortunately.

> And to distribute a binary of Emacs that links against a non-free
> non-system library would be illegal.

Distribution is a whole nother kettle of fish.

> Even if the world has "moved on" (which is hardly a given), software
> (Emacs even more so) has historically used the "old" terms, which there
> is no need to change.  So as I said, can we please keep the situation
> simple by using the terminology which we have always used, which is to
> say, "blacklist" and "whitelist".

Sorry, no.  And I find it pretty odd to quibble about
allowlist/blocklist -- they're clearly better terms than the vague
whitelist/blacklist terms.  They're self explanatory terms, while the
old ones were jargon you had to learn.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Contradictiory directions
  2021-12-15 10:42                                         ` Po Lu
@ 2021-12-15 12:44                                           ` Óscar Fuentes
  2021-12-15 13:04                                             ` Po Lu
  2021-12-15 14:54                                             ` Alexandre Garreau
  0 siblings, 2 replies; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 12:44 UTC (permalink / raw)
  To: emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> Óscar Fuentes <ofv@wanadoo.es> writes:
>
>>> Then as RMS said, we should remove the feature wholesale, until a
>>> solution is found.
>
>> My point is that if the symbol trick is considered an acceptable
>> solution
>
> My understanding is that the symbol trick is considered acceptable
> because it will be more likely to hold up in court to mean that whoever
> wrote the non-free module fully understood that it had to be compatible
> with the GPL.

So someone at the FSF thought that creating a module, which requires
studying, understanding and complying with a bunch of technical
requisites mandated by the host application (Emacs or Gcc), could open
the possibility of a credible "I didn't care to read the license", but
using a GPL'ed library, that often requires less technical effort, is
not equally impacted by the same risk :-/

> But apparently SQLite modules, even those intended for use with Emacs,
> are not legally required to comply with the GPL, so that is out of the
> question here.

Nothing is legally required to comply with the GPL. The FSF does not
dictate law, it uses a license and hopes for the best.

The scenario of someone sneaking in a non-free SQLite extension against
the user's wishes is a bit far-fetched, to say the least. So we are
wasting a lot of energy worrying about how to effectively inconvenience
our users for "protecting" them from an unlikely event no matter how
much limitations are imposed on the feature being discussed. I thought
that the gcc/llvm debacle would be understood at this point.




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

* Re: Contradictiory directions
  2021-12-15 12:44                                           ` Óscar Fuentes
@ 2021-12-15 13:04                                             ` Po Lu
  2021-12-15 14:33                                               ` dick
                                                                 ` (2 more replies)
  2021-12-15 14:54                                             ` Alexandre Garreau
  1 sibling, 3 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15 13:04 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

Óscar Fuentes <ofv@wanadoo.es> writes:

> Nothing is legally required to comply with the GPL. The FSF does not
> dictate law, it uses a license and hopes for the best.

IANAL, but the FSF has them, and as far as they can see, the GPL is a
valid license.  Not to mention that it has already been declared valid
in court many times.

So instead of being pedantic, it is reasonable to say that people
creating Emacs and GCC modules are legally required to comply with the
GPL.

> The scenario of someone sneaking in a non-free SQLite extension
> against the user's wishes is a bit far-fetched, to say the least.
>
> So we are wasting a lot of energy worrying about how to effectively
> inconvenience our users for "protecting" them from an unlikely event
> no matter how much limitations are imposed on the feature being
> discussed.  I thought that the gcc/llvm debacle would be understood at
> this point.

That sounds like defeatism.  Whether or not it will work, we are going
to try, and when we discover a problem, we are going to try to solve it
the best way we can.

See https://www.gnu.org/philosophy/compromise.html.



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

* Re: Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs)
  2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
  2021-12-15 10:14                                   ` Óscar Fuentes
@ 2021-12-15 13:36                                   ` Eli Zaretskii
  2021-12-15 14:34                                   ` Alexandre Garreau
  3 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-15 13:36 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel, rms, stefankangas

> From: Po Lu <luangruo@yahoo.com>
> Cc: Richard Stallman <rms@gnu.org>,  eliz@gnu.org,  stefankangas@gmail.com,
>   emacs-devel@gnu.org
> Date: Wed, 15 Dec 2021 15:17:55 +0800
> 
> It doesn't seem right to leave such a half baked solution to a
> serious problem in place.

Please be more polite.  There's nothing half-baked about the code
that's on master now.



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

* Re: Contradictiory directions
  2021-12-15 10:24                                     ` Po Lu
  2021-12-15 10:32                                       ` Óscar Fuentes
@ 2021-12-15 13:51                                       ` Eli Zaretskii
  2021-12-15 13:56                                         ` Po Lu
  1 sibling, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-15 13:51 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

> From: Po Lu <luangruo@yahoo.com>
> Cc: emacs-devel@gnu.org
> Date: Wed, 15 Dec 2021 18:24:05 +0800
> 
> Óscar Fuentes <ofv@wanadoo.es> writes:
> 
> > Propietary modules can define any symbol, so the
> > "this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
> > gcc modules is even less of a solution. I can foresee a propietary
> > module playing that trick, but changing the name of the module and
> > creating a name collision with some of the most popular modules out
> > there is a bit too risky even for the most adventurous propietary
> > vendor.
> 
> Then as RMS said, we should remove the feature wholesale, until a
> solution is found.

You mean, also remove the loadable modules from GCC, GNU Make, Gawk,
etc.?



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

* Re: Contradictiory directions
  2021-12-15 12:31                                                         ` Po Lu
@ 2021-12-15 13:52                                                           ` Dmitry Gutov
  0 siblings, 0 replies; 126+ messages in thread
From: Dmitry Gutov @ 2021-12-15 13:52 UTC (permalink / raw)
  To: Po Lu; +Cc: tomas, emacs-devel

On 15.12.2021 15:31, Po Lu wrote:
> Dmitry Gutov <dgutov@yandex.ru> writes:
> 
>> It's a discussion where one side is aware of the political
>> connotations of the terms and the reasons why "the world has moved on
>> from them", and another stays willfully ignorant of them.
> 
> Either way, I did not start a discussion about politics, so please don't
> turn it into one.

You started to ask questions which are easily answered by doing some 
research (via searching the web) outside of this mailing list.

There is indeed little point in rehashing this argument which has 
occurred in a myriad of places by now.

> Would you accept a change from "window" to "glass sheet", especially if
> "window" will still be used inside Emacs in many places?

Irrelevant.

> Developing software is hard enough, so please try not to make it even
> more confusing with sudden (and partial) changes in terminology.

There is nothing confusing in "allowlist" and "denylist". Those are 
plain English.

FWIW, personally I'm in no hurry to move on from "white/black" and 
"master/slave" in all my projects across the board, but it's clear by 
now that such a move must occur eventually. So arguing about undoing 
such changes that have already been made is counter-productive.



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

* Re: Contradictiory directions
  2021-12-15 13:51                                       ` Eli Zaretskii
@ 2021-12-15 13:56                                         ` Po Lu
  0 siblings, 0 replies; 126+ messages in thread
From: Po Lu @ 2021-12-15 13:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ofv, emacs-devel

Eli Zaretskii <eliz@gnu.org> writes:

> You mean, also remove the loadable modules from GCC, GNU Make, Gawk,
> etc.?

No, no, just the SQLite module feature, where the question of GPL
compatiblility doesn't really apply.

Thanks.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  5:15                             ` Richard Stallman
  2021-12-15  7:07                               ` Lars Ingebrigtsen
  2021-12-15  7:26                               ` master 3d38d1d: Add sqlite3 support to Emacs Po Lu
@ 2021-12-15 14:22                               ` Alexandre Garreau
  2021-12-16  4:40                                 ` Richard Stallman
  2 siblings, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 14:22 UTC (permalink / raw)
  To: Po Lu, emacs-devel; +Cc: larsi, eliz, stefankangas, rms, emacs-devel

Le merkredo, 15-a de decembro 2021, 6-a horo kaj 15:22 CET Richard 
Stallman a écrit :
> Lars metioned something called LD_PRELOAD.  I don't know what that is,
> and I can't find it in the documentation I have here.  I don't know
> whether it makes a difference for this issue, and I would like to
> study that question.
> 
> Would someone please point me at an explanation of what LD_PRELOAD
> does, with docs for how to use it?  Also, which part of the GNU/Linux
> system implements it?

It’s an environment variable making ld.so preload dynamical libraries 
before any other, so that you can overwrite any C function with another, 
just by specifying a .so library implementing it in that variable.  You 
can use that to tweak the behavior of any program.  Lars was using that as 
an argument to state it is futile to stop users from running proprietary 
software if they want to since they can do it anyway that way.

I agree the issue is not stopping users, but making them run such software 
anyway, whatever their specific will regarding emacs.



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

* Re: Contradictiory directions
  2021-12-15 13:04                                             ` Po Lu
@ 2021-12-15 14:33                                               ` dick
  2021-12-15 14:54                                               ` Alexandre Garreau
  2021-12-17  4:23                                               ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: dick @ 2021-12-15 14:33 UTC (permalink / raw)
  To: Po Lu; +Cc: emacs-devel

PL> it is reasonable to say that people creating Emacs and GCC
PL> modules are legally required to comply with the GPL

Wow, you cannot both proscribe legality and hedge with "reasonable to
say" in the same sentence.

That you would publicly make such legal pronouncements while disclaiming
"IANAL" says a lot about you and probably your code.



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

* Re: Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs)
  2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
                                                     ` (2 preceding siblings ...)
  2021-12-15 13:36                                   ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Eli Zaretskii
@ 2021-12-15 14:34                                   ` Alexandre Garreau
  2021-12-15 15:02                                     ` tomas
  3 siblings, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 14:34 UTC (permalink / raw)
  To: emacs-devel

Le merkredo, 15-a de decembro 2021, 8-a horo kaj 17:55 CET Po Lu a écrit :
> > There's an allowlist in place.  Only the pcre and csvtable modules
> > (both free modules) can be installed now via the current loading
> > mechanism.
> It's still based on looking at the names of modules: proprietary modules
> could easily be renamed so that their filenames are the same as the
> free ones, and vice versa: it is not concrete at all.

I think it’s a little ridiculous to fear that.  That’s obvious malicious 
intent, and distributions should refuse that anyway.  If a user does a 
such thing, it’s their intent, and their responsibility.  They decided to 
choose oppression, and we won’t be able to stop them (and it’s not 
illegal, copyright is only about distribution, copying, not usage)

> The PCRE and csvtable modules are also in the public domain.
> Proprietary versions of them could be created ino the future.

*That*’s worrying.  Keeps me thinking the gpl-compatibility symbol is the 
only Right Way to go.  We may completely disallow modules, with a call to 
implementation/TODO about allowing them when they contain a such symbol, 
and after that another one about hacking those libs to make them so, and 
providing patches to distribution.

But the first step is blocking them.

> BTW, the term "allowlist" is confusing.  It took me a while to guess its
> meaning.  Why not use the industry-standard term "whitelist" instead?

I disagree, allowlist looks weird and esoteric to me but it perfectly 
describes what it is.  Maybe Lars just participated in this modern trend 
of avoiding politically uncorrect/connotated words in technical jargon 
(such as positivity for “white” and negativity for “black”, although I’m 
still uncertain about it’s for sure historically related to racism; actual 
sociological/historical data welcome!); but still the side effect is those 
technical words becomes less like jargon and more understandable by laymen 
(or layperson? I don’t even understand the morphological nor etymological 
construction of layman anyway…) and newcomers (when they’re chose wisely, 
like here), I’m in favor of that, let me state my support of it.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-14 23:41                                         ` Andy Moreton
@ 2021-12-15 14:53                                           ` Eli Zaretskii
  0 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-15 14:53 UTC (permalink / raw)
  To: Andy Moreton; +Cc: emacs-devel

> From: Andy Moreton <andrewjmoreton@gmail.com>
> Date: Tue, 14 Dec 2021 23:41:14 +0000
> 
> I'm not at all expert on SQL matters - I read the sqlite documentation
> which points out that there are two ways to allow loading of sqlite
> extensions from C:
> 
> a) sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION,..)
>    - enables sqlite3_load_extension()
>    - does not enable SQL function "load_extension"
> 
> b) sqlite3_enable_load_extension()
>    - enables sqlite3_load_extension()
>    - ALSO enables SQL function "load_extension"
> 
> So if sqlite extensions are to be allowed in emacs, option (a) should be
> preferred. This is explicitly called out as a security issue in the docs.
> 
> Loading sqlite extensions should be disabled by default, and only be
> enabled by explicit user configuration.

But we don't call sqlite3_enable_load_extension, we call only
sqlite3_load_extension.  What does this mean for load_extension -- is
it enabled or disabled?



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

* Re: Contradictiory directions
  2021-12-15 12:44                                           ` Óscar Fuentes
  2021-12-15 13:04                                             ` Po Lu
@ 2021-12-15 14:54                                             ` Alexandre Garreau
  2021-12-15 18:04                                               ` Óscar Fuentes
  1 sibling, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 14:54 UTC (permalink / raw)
  To: emacs-devel

Le merkredo, 15-a de decembro 2021, 13-a horo kaj 44:48 CET Óscar Fuentes 
a écrit :
> The scenario of someone sneaking in a non-free SQLite extension against
> the user's wishes is a bit far-fetched, to say the least. So we are
> wasting a lot of energy worrying about how to effectively inconvenience
> our users for "protecting" them from an unlikely event no matter how
> much limitations are imposed on the feature being discussed. I thought
> that the gcc/llvm debacle would be understood at this point.

Many systems have been showed to disrespect users’ choice that way.  It’s 
a little stretched for debian, impossible for trisquel, but imaginable on 
ubuntu, and likely under mac os x, ios, windows and android (and these are 
way more used).




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

* Re: Contradictiory directions
  2021-12-15 13:04                                             ` Po Lu
  2021-12-15 14:33                                               ` dick
@ 2021-12-15 14:54                                               ` Alexandre Garreau
  2021-12-17  4:23                                               ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 14:54 UTC (permalink / raw)
  To: Óscar Fuentes, emacs-devel; +Cc: Po Lu, emacs-devel

Le merkredo, 15-a de decembro 2021, 14-a horo kaj 4:16 CET Po Lu a écrit :
> Óscar Fuentes <ofv@wanadoo.es> writes:
> 
> 
> 
> > Nothing is legally required to comply with the GPL. The FSF does not
> > dictate law, it uses a license and hopes for the best.
> 
> IANAL, but the FSF has them, and as far as they can see, the GPL is a
> valid license.  Not to mention that it has already been declared valid
> in court many times.

Copyright is about distribution, not usage.  A creator of an extension can 
use it how person wish, whatever the license, as long as it’s done in 
private.  Rarely a law takes the burden to stop you from doing something 
that doesn’t impact others.

> So instead of being pedantic, it is reasonable to say that people
> creating Emacs and GCC modules are legally required to comply with the
> GPL.

Copyright is not made to restrict copyrights “owners”, but users.




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

* Re: Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs)
  2021-12-15 14:34                                   ` Alexandre Garreau
@ 2021-12-15 15:02                                     ` tomas
  0 siblings, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-15 15:02 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 641 bytes --]

On Wed, Dec 15, 2021 at 03:34:49PM +0100, Alexandre Garreau wrote:
> Le merkredo, 15-a de decembro 2021, 8-a horo kaj 17:55 CET Po Lu a écrit :

[...]

> > BTW, the term "allowlist" is confusing.  It took me a while to guess its
> > meaning.  Why not use the industry-standard term "whitelist" instead?
> 
> I disagree, allowlist looks weird and esoteric to me but it perfectly 
> describes what it is [...]

This will always be a controversial point, since there are strong
feelings on both sides. It would be good if the project as such finds a
position on this issue, to avoid recurring discussions.

Cheers
-- 
tomás

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-15 10:14                                   ` Óscar Fuentes
  2021-12-15 10:24                                     ` Po Lu
@ 2021-12-15 15:11                                     ` Alexandre Garreau
  2021-12-15 18:28                                       ` Óscar Fuentes
  1 sibling, 1 reply; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 15:11 UTC (permalink / raw)
  To: emacs-devel; +Cc: Óscar Fuentes

Le merkredo, 15-a de decembro 2021, 11-a horo kaj 14:41 CET Óscar Fuentes 
a écrit :
> Po Lu <luangruo@yahoo.com> writes:
> 
> 
> 
> > It's still based on looking at the names of modules: proprietary
> > modules could easily be renamed so that their filenames are the same
> > as the free ones, and vice versa: it is not concrete at all.
> 
> Propietary modules can define any symbol, so the
> "this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
> gcc modules is even less of a solution. I can foresee a propietary
> module playing that trick, but changing the name of the module and
> creating a name collision with some of the most popular modules out
> there is a bit too risky even for the most adventurous propietary
> vendor.

except a symbol with written “gpl-compatible” on it might be legally akin 
to “I accept my module can be relicensed to GPLv3”, which may be akin to a 
license.  From there, we could feel allowed to distribute the library and 
modified versions of it at will, so that would “suffice” to make it free-
software.

> > The PCRE and csvtable modules are also in the public domain.
> > Proprietary versions of them could be created ino the future.
> 
> So you just decidead that all those versions that allow to distribute
> non-free versions of the code are incompatible with the GPL after all?
> <sigh>

No, but enough for them to *potentially become* so *without being noticed* 
by emacs or even the users themselves…

…what if one day mac os x or ubuntu or windows starts bundling a version 
of sqlite with special “improved” extensions that are made proprietary? we 
don’t want that.  We want emacs to break in that case, and potentially the 
users to do something to become themselves responsible of a such 
combination of software.

> > BTW, the term "allowlist" is confusing.  It took me a while to guess
> > its meaning.  Why not use the industry-standard term "whitelist"
> > instead?
> Today you are in the mood of picking an argument, aren't you? ;-)

The more we feel in an adversarial mood, the more we should attempt to 
adopt a kind and benevolent mindset.  That’s best for everybody, for 
emacs, and even four each one’s own arguments.



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

* Re: Contradictiory directions
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
  2021-12-15  7:36                                     ` Po Lu
@ 2021-12-15 15:15                                     ` Alexandre Garreau
  2021-12-16  4:41                                     ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-15 15:15 UTC (permalink / raw)
  To: Po Lu, emacs-devel
  Cc: Lars Ingebrigtsen, eliz, stefankangas, Richard Stallman,
	emacs-devel

Le merkredo, 15-a de decembro 2021, 8-a horo kaj 23:17 CET Lars 
Ingebrigtsen a écrit :
> > It's still based on looking at the names of modules: proprietary
> > modules could easily be renamed so that their filenames are the same
> > as the free ones, and vice versa: it is not concrete at all.
> > 
> > The PCRE and csvtable modules are also in the public domain.
> > Proprietary versions of them could be created ino the future.
> 
> There are no guarantees in this world.  Anybody could be making
> proprietary versions of absolutely all modules Emacs is loading,
> including libc.so, and there's no technical ways of stopping Emacs from
> loading them.

No, libc is copylefted, and proprietariness is in great part *due* to 
copyright.  Without it, or rather, with its license hereditarilly being 
made free, the only way to make it proprietary is obfuscation (including 
compiling without giving source, agreed).  But you can still RE the thing, 
it’s still “legally free” (like linux’s blobs).  There’s at least this 
guarranty.

> > BTW, the term "allowlist" is confusing.  It took me a while to guess
> > its meaning.  Why not use the industry-standard term "whitelist"
> > instead?
> The industry standard is allowlist/blocklist.

since when? that makes me curious



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

* Re: Contradictiory directions
  2021-12-15 14:54                                             ` Alexandre Garreau
@ 2021-12-15 18:04                                               ` Óscar Fuentes
  2021-12-16  5:12                                                 ` Alexandre Garreau
  0 siblings, 1 reply; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 18:04 UTC (permalink / raw)
  To: emacs-devel

Alexandre Garreau <galex-713@galex-713.eu> writes:

> Le merkredo, 15-a de decembro 2021, 13-a horo kaj 44:48 CET Óscar Fuentes 
> a écrit :
>> The scenario of someone sneaking in a non-free SQLite extension against
>> the user's wishes is a bit far-fetched, to say the least. So we are
>> wasting a lot of energy worrying about how to effectively inconvenience
>> our users for "protecting" them from an unlikely event no matter how
>> much limitations are imposed on the feature being discussed. I thought
>> that the gcc/llvm debacle would be understood at this point.
>
> Many systems have been showed to disrespect users’ choice that way.

[Citation needed]




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

* Re: Contradictiory directions
  2021-12-15 15:11                                     ` Alexandre Garreau
@ 2021-12-15 18:28                                       ` Óscar Fuentes
  2021-12-15 19:55                                         ` Stefan Monnier
  2021-12-16  5:15                                         ` Alexandre Garreau
  0 siblings, 2 replies; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 18:28 UTC (permalink / raw)
  To: emacs-devel

Alexandre Garreau <galex-713@galex-713.eu> writes:

>> > The PCRE and csvtable modules are also in the public domain.
>> > Proprietary versions of them could be created ino the future.
>> 
>> So you just decidead that all those versions that allow to distribute
>> non-free versions of the code are incompatible with the GPL after all?
>> <sigh>
>
> No, but enough for them to *potentially become* so *without being noticed* 
> by emacs or even the users themselves…
>
> …what if one day mac os x or ubuntu or windows starts bundling a version 
> of sqlite with special “improved” extensions that are made proprietary? we 
> don’t want that.  We want emacs to break in that case, and potentially the 
> users to do something to become themselves responsible of a such 
> combination of software.

If the OS starts shipping SQLite with "improved" extensions and Emacs
uses it, it is the same as any other OS-provided library: acceptable by
GNU, although undesirable.

Please note how you do talk about problematic extensions but not about a
problematic OS-provided SQLite shared library. Why are we so concerned
with the possibility of unholy extensions and not so much with the
possibility of an unholy SQLite binary? Because in that case the only
choice is to not use SQLite at all? (and most other Free but not GPL
libraries)

Seriously, let's stop making up dramas based on scenarios disconnected
from reality. The propietary software industry does not give a rat ass
about Emacs and soon it will not give a rat ass about Gcc either,
because there are better *free* alternatives, which arose in great part
thanks to stances like this.




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

* Re: Contradictiory directions
  2021-12-15 18:28                                       ` Óscar Fuentes
@ 2021-12-15 19:55                                         ` Stefan Monnier
  2021-12-15 21:15                                           ` Óscar Fuentes
  2021-12-16  5:15                                         ` Alexandre Garreau
  1 sibling, 1 reply; 126+ messages in thread
From: Stefan Monnier @ 2021-12-15 19:55 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> Seriously, let's stop making up dramas based on scenarios disconnected
> from reality.

FWIW I agree about this point.

> ... about Gcc either, because there are better *free* alternatives,
> which arose in great part thanks to stances like this.

But this is a poorly chosen example.  LLVM was developed originally
because it was easier to start from scratch than to evolve an existing
system that had accrued a lot of (necessary) complexity.  Back then it
was mostly a vehicle for academic research and I've never seen any hint
that circumventing the GPL was part of the motivation.

Then it got picked up by companies (mostly Apple) specifically because
it didn't use the GPL, because they did not want to be forced to
released their source code (this can be seen as the price we had to pay
for GCC to get Objective C support, since many years earlier, NeXT was
forced to release their Objective C compiler's source code because it
was built on top of GCC, and Jobs really resented that; it's arguably
also the reason why macOS has switched to Zsh and remained at Emacs-22).

AFAIK the issue with support for plugins only appeared much later.

So in the case of LLVM-vs-GCC, the reason for the heavy investment into
LLVM is not so much the FSF's "stance" on anything, it's an opposition
to the core principle of the GPL.

And oddly enough, last I checked, GCC is still pretty damn competitive
with LLVM, despite all that investment, so "better" is debatable ;-)


        Stefan




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

* Re: Contradictiory directions
  2021-12-15 19:55                                         ` Stefan Monnier
@ 2021-12-15 21:15                                           ` Óscar Fuentes
  2021-12-16  7:13                                             ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Óscar Fuentes @ 2021-12-15 21:15 UTC (permalink / raw)
  To: emacs-devel

Stefan Monnier <monnier@iro.umontreal.ca> writes:

Off-topic, so this will be my last message on this thread.

>> ... about Gcc either, because there are better *free* alternatives,
>> which arose in great part thanks to stances like this.
>
> But this is a poorly chosen example.  LLVM was developed originally
> because it was easier to start from scratch than to evolve an existing
> system that had accrued a lot of (necessary) complexity.  Back then it
> was mostly a vehicle for academic research and I've never seen any hint
> that circumventing the GPL was part of the motivation.

This is mostly true. To the point that the LLVM backend (Clang came much
later) was offered to Gcc.

> Then it got picked up by companies (mostly Apple) specifically because
> it didn't use the GPL, because they did not want to be forced to
> released their source code (this can be seen as the price we had to pay
> for GCC to get Objective C support, since many years earlier, NeXT was
> forced to release their Objective C compiler's source code because it
> was built on top of GCC, and Jobs really resented that; it's arguably
> also the reason why macOS has switched to Zsh and remained at Emacs-22).
>
> AFAIK the issue with support for plugins only appeared much later.
>
> So in the case of LLVM-vs-GCC, the reason for the heavy investment into
> LLVM is not so much the FSF's "stance" on anything, it's an opposition
> to the core principle of the GPL.

This is more complex than you make it appear :-)

> And oddly enough, last I checked, GCC is still pretty damn competitive
> with LLVM, despite all that investment, so "better" is debatable ;-)

The superiority of LLVM/Clang (and all its satellite projects) is in its
focus on technical excellence, on a broad sense: the code not only must
be performant, but clearly written and carefully architected as well.
The social dynamics was more open: broad changes were encouraged, no old
guard vetoing disruptive ideas, enthusiastic and welcoming community
etc. This caused that both the source code and the community appeared
much more attractive to all sorts of contributors, creating an snowball
effect. The openness of the design, which facilitated growing other
projects on top of it, caused a proliferation of academic, hobbist and
industrial derived works. Some of them are closed-source, but many are
not, and even the closed ones show a tendency to open and contribute to
upstream because it reduces costs.

Major Clang/LLVM contributors like Google would have no significant
issue with Gcc being GPL, but LLVM/Clang exists and it is much more easy
to work with (at all levels: technical and social.)

Meanwhile, Gcc was under severe imposed restrictions precisely on the
areas where LLVM/Clang excels. That's no coincidence: there was a demand
for those features. Now the grip over Gcc loosened a bit, but it carries
a rigid and obsolete architecture that will keep it inferior for many
years, if not forever. Any advantage on code generation will be erased,
sooner than later.

Since a few years ago Gcc improved after painfully breaking old
constraints, pressured by the new competitor, but I'm afraid that it
will be too little, too late. Linux compiles with Clang, and that's a
very worrying signal for Gcc, because if certain distributions migrate
to Clang, Gcc development will be over.




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

* Re: Contradictiory directions
  2021-12-15  7:59                                             ` Po Lu
  2021-12-15  8:04                                               ` Lars Ingebrigtsen
@ 2021-12-16  4:40                                               ` Richard Stallman
  1 sibling, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:40 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel, eliz, stefankangas

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > "Blacklist" and "whitelist" appear in the Emacs source tree a total of
  > 432 times, while "allowlist" and "blocklist" appear a total of 259 times
  > exclusively in the context of mh-e.

In the GNU Project we do not blindly follow "industry standards".  We
think about them and consider following them when that is good for
users.  See node Non-GNU Standards in the GNU Coding Standards.

There is no reason to consider "blacklist" and "whitelist" offensive.
They never had anything to do with race; they don't refer to people.
They use an old metaphor of "black" and "white" standing for "evil"
and "good".

We should not feel obliged to bend over backwards for people who take
offense when none has been given.  We should, however, choose the best
terms.

I think that the best terms are "allowlist" and "blocklist."  They are
best because they make their meanings visible directly -- not via a
metaphor.  Using these names is preferable in new features.

Changing the names used in existing features has more of a cost.  The
incompability may cause trouble, or inconvenence, for users.  I have
no opinion about changing the names in old features.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Contradictiory directions
  2021-12-15  8:13                                                 ` Po Lu
                                                                     ` (2 preceding siblings ...)
  2021-12-15 12:39                                                   ` Lars Ingebrigtsen
@ 2021-12-16  4:40                                                   ` Richard Stallman
  3 siblings, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:40 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel, eliz, stefankangas

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > These are system libraries, all of which are either free or have free
  > replacements.  I don't think we allow features that depend on
  > proprietary libraries that have no free replacement.  And to distribute
  > a binary of Emacs that links against a non-free non-system library would
  > be illegal.

The GNU GPL has special rules for "system libraries".  The rule is
different in GPL v2 and GPL v3, but the basic point is that they permit
linking any GPL-covered program with limited libraries that come with the
operating system itself.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Contradictiory directions
  2021-12-15 10:32                                       ` Óscar Fuentes
  2021-12-15 10:42                                         ` Po Lu
@ 2021-12-16  4:40                                         ` Richard Stallman
  1 sibling, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:40 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > >
  > >> Propietary modules can define any symbol, so the
  > >> "this_module_is_fine_with_gnus" or whatever trick is used on Emacs and
  > >> gcc modules is even less of a solution.

I worked this out with a lawyer; it has a legal basis.  Releasing a
nonfree module designed specifically to link with Emacs or GCC is a
GPL violation.  If it defines that special symbol, that give us
evidence that that the module was designed specifically to link
with on of them.

I don't recall more details than that -- the conversation was
many years ago.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15 14:22                               ` Alexandre Garreau
@ 2021-12-16  4:40                                 ` Richard Stallman
  0 siblings, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:40 UTC (permalink / raw)
  To: Alexandre Garreau; +Cc: luangruo, larsi, stefankangas, eliz, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > It’s an environment variable making ld.so preload dynamical libraries 
  > before any other, so that you can overwrite any C function with another, 
  > just by specifying a .so library implementing it in that variable.  You 
  > can use that to tweak the behavior of any program.  Lars was using that as 
  > an argument to state it is futile to stop users from running proprietary 
  > software if they want to since they can do it anyway that way.

Indeed, we can't stop users from running nonfree software, or linking
it in with Emacs.  Indeed, the GPL says that end users are allowed to link
Emacs with whatever they wish -- but not distribute those nonfree versions.

We don't want Lisp programs to be able to specify nonfree sqlite3
libraries, because those Lisp programs would be effectively nonfree
extensions to Emacs, but people are likely to believe they are allowed
to distribute them.

There is no obvious perfect place to draw a line, but we must do our
best -- and this is it.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  7:26                               ` master 3d38d1d: Add sqlite3 support to Emacs Po Lu
@ 2021-12-16  4:41                                 ` Richard Stallman
  2021-12-16  8:33                                   ` tomas
  0 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:41 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, eliz, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Thanks for sending me the LD_PRELOAD info.

LD_PRELOAD seems to be a user customization facility, not well suited
to releasing modified versions of programs.

So I think it is not significant for the question of sqlite3 modules.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Contradictiory directions
  2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
  2021-12-15  7:36                                     ` Po Lu
  2021-12-15 15:15                                     ` Alexandre Garreau
@ 2021-12-16  4:41                                     ` Richard Stallman
  2021-12-16  4:44                                       ` Po Lu
  2021-12-16 13:39                                       ` Andrea Corallo
  2 siblings, 2 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:41 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: luangruo, eliz, stefankangas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > Eli and I are the maintainers.

You, Eli and I are the Emacs maintainers.
I've appointed several different Emacs maintainers
over the past 20 years, but I never took myself off the list.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-15  7:10                       ` Lars Ingebrigtsen
@ 2021-12-16  4:41                         ` Richard Stallman
  2021-12-16  5:52                           ` Lars Ingebrigtsen
  2021-12-16  9:33                           ` tomas
  0 siblings, 2 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-16  4:41 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: andrewjmoreton, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > The use case is to load the pcre module, which will allow us to list
  > stored data based on regexp matches.  I.e., it will give users greater
  > power to inspect .sqlite files.

Would you please tell me more about the PCRE module?
Where is it distributed -- along with sqlite3 itself?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Contradictiory directions
  2021-12-16  4:41                                     ` Richard Stallman
@ 2021-12-16  4:44                                       ` Po Lu
  2021-12-16  8:25                                         ` Eli Zaretskii
  2021-12-16 13:39                                       ` Andrea Corallo
  1 sibling, 1 reply; 126+ messages in thread
From: Po Lu @ 2021-12-16  4:44 UTC (permalink / raw)
  To: Richard Stallman; +Cc: Lars Ingebrigtsen, eliz, stefankangas, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > Eli and I are the maintainers.
>
> You, Eli and I are the Emacs maintainers.
> I've appointed several different Emacs maintainers
> over the past 20 years, but I never took myself off the list.

So, who do I listen to..? 

I'm still confused about what to do with `sqlite-load-extension'.

Thanks.



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

* Re: Contradictiory directions
  2021-12-15 18:04                                               ` Óscar Fuentes
@ 2021-12-16  5:12                                                 ` Alexandre Garreau
  0 siblings, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-16  5:12 UTC (permalink / raw)
  To: emacs-devel

Le merkredo, 15-a de decembro 2021, 19-a horo kaj 4:49 CET Óscar Fuentes a 
écrit :
> Alexandre Garreau <galex-713@galex-713.eu> writes:
> 
> 
> 
> > Le merkredo, 15-a de decembro 2021, 13-a horo kaj 44:48 CET Óscar
> > Fuentes
> > a écrit :
> 
> 
> >> The scenario of someone sneaking in a non-free SQLite extension
> >> against
> >> the user's wishes is a bit far-fetched, to say the least. So we are
> >> wasting a lot of energy worrying about how to effectively
> >> inconvenience
> >> our users for "protecting" them from an unlikely event no matter how
> >> much limitations are imposed on the feature being discussed. I
> >> thought
> >> that the gcc/llvm debacle would be understood at this point.
> 
> 
> 
> > Many systems have been showed to disrespect users’ choice that way.
> 
> [Citation needed]

Well why do you think proprietary platforms avoid the GPL?

it may just as well be because some library is tivoized, or a thing like 
that




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

* Re: Contradictiory directions
  2021-12-15 18:28                                       ` Óscar Fuentes
  2021-12-15 19:55                                         ` Stefan Monnier
@ 2021-12-16  5:15                                         ` Alexandre Garreau
  1 sibling, 0 replies; 126+ messages in thread
From: Alexandre Garreau @ 2021-12-16  5:15 UTC (permalink / raw)
  To: emacs-devel; +Cc: Óscar Fuentes

Le merkredo, 15-a de decembro 2021, 19-a horo kaj 28:52 CET Óscar Fuentes 
a écrit :
> >> non-free versions of the code are incompatible with the GPL after
> >> all?
> >> <sigh>
> 
> 
> 
> > No, but enough for them to *potentially become* so *without being
> > noticed* by emacs or even the users themselves…
> > 
> > …what if one day mac os x or ubuntu or windows starts bundling a
> > version of sqlite with special “improved” extensions that are made
> > proprietary? we don’t want that.  We want emacs to break in that
> > case, and potentially the users to do something to become themselves
> > responsible of a such combination of software.
> 
> If the OS starts shipping SQLite with "improved" extensions and Emacs
> uses it, it is the same as any other OS-provided library: acceptable by
> GNU, although undesirable.
> 
> Please note how you do talk about problematic extensions but not about a
> problematic OS-provided SQLite shared library. Why are we so concerned
> with the possibility of unholy extensions and not so much with the
> possibility of an unholy SQLite binary? Because in that case the only
> choice is to not use SQLite at all? (and most other Free but not GPL
> libraries)

Indeed, and it was mentioned before, that it would make sense to check for 
the gpl-compatibility symbol inside sqlite as well, since it’s not 
copylefted.

> Seriously, let's stop making up dramas based on scenarios disconnected
> from reality. The propietary software industry does not give a rat ass
> about Emacs

it’s not paranoia about emacs; they could not dare about emacs and yet 
dare about sqlite and not about their users’ freedom; we are emacs and 
want to protect users’ freedom

> and soon it will not give a rat ass about Gcc either,
> because there are better *free* alternatives, which arose in great part
> thanks to stances like this.

gcc and emacs are free, you are talking about free but potentially non-
free alternatives, and the difference is not appealing




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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-16  4:41                         ` Richard Stallman
@ 2021-12-16  5:52                           ` Lars Ingebrigtsen
  2021-12-17  4:25                             ` Richard Stallman
  2021-12-16  9:33                           ` tomas
  1 sibling, 1 reply; 126+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-16  5:52 UTC (permalink / raw)
  To: Richard Stallman; +Cc: andrewjmoreton, emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Would you please tell me more about the PCRE module?
> Where is it distributed -- along with sqlite3 itself?

In Debian, at least, it's a separate package.  Let's see...
apt info says:

Maintainer: Gilles Filippini <pini@debian.org>
Homepage: http://git.altlinux.org/people/at/packages/?p=sqlite3-pcre.git

So it sounds like a third party module.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



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

* Re: Contradictiory directions
  2021-12-15 21:15                                           ` Óscar Fuentes
@ 2021-12-16  7:13                                             ` Eli Zaretskii
  2021-12-16  9:41                                               ` tomas
                                                                 ` (2 more replies)
  0 siblings, 3 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-16  7:13 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-devel

> From: Óscar Fuentes <ofv@wanadoo.es>
> Date: Wed, 15 Dec 2021 22:15:50 +0100
> 
> The superiority of LLVM/Clang (and all its satellite projects) is in its
> focus on technical excellence, on a broad sense: the code not only must
> be performant, but clearly written and carefully architected as well.
> The social dynamics was more open: broad changes were encouraged, no old
> guard vetoing disruptive ideas, enthusiastic and welcoming community
> etc. This caused that both the source code and the community appeared
> much more attractive to all sorts of contributors, creating an snowball
> effect. The openness of the design, which facilitated growing other
> projects on top of it, caused a proliferation of academic, hobbist and
> industrial derived works. Some of them are closed-source, but many are
> not, and even the closed ones show a tendency to open and contribute to
> upstream because it reduces costs.
> 
> Major Clang/LLVM contributors like Google would have no significant
> issue with Gcc being GPL, but LLVM/Clang exists and it is much more easy
> to work with (at all levels: technical and social.)
> 
> Meanwhile, Gcc was under severe imposed restrictions precisely on the
> areas where LLVM/Clang excels. That's no coincidence: there was a demand
> for those features. Now the grip over Gcc loosened a bit, but it carries
> a rigid and obsolete architecture that will keep it inferior for many
> years, if not forever. Any advantage on code generation will be erased,
> sooner than later.
> 
> Since a few years ago Gcc improved after painfully breaking old
> constraints, pressured by the new competitor, but I'm afraid that it
> will be too little, too late. Linux compiles with Clang, and that's a
> very worrying signal for Gcc, because if certain distributions migrate
> to Clang, Gcc development will be over.

That rings a bell: it's what I heard 20 years ago about XEmacs vs GNU
Emacs when I talked (in person) to its main developers.  The rest is
history.

My take from that example is that the factors you mention are somehow
not all that's important for the fate and the future of a large and
flexible software package.  There are other, more important factors
that are left unsaid.

From my POV, GCC is a better compiler, by a large measure, for
languages that I use and on platforms that I care about.  As a user of
a compiler, I don't care about its architecture, I care about its
features, its usefulness during development, and the code it produces.
And Clang is way behind on these, from my POV.  And don't get me
started on other LLVM members, like the debugger.



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

* Re: Contradictiory directions
  2021-12-16  4:44                                       ` Po Lu
@ 2021-12-16  8:25                                         ` Eli Zaretskii
  0 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-16  8:25 UTC (permalink / raw)
  To: Po Lu; +Cc: larsi, emacs-devel, rms, stefankangas

> From: Po Lu <luangruo@yahoo.com>
> Cc: Lars Ingebrigtsen <larsi@gnus.org>,  eliz@gnu.org,
>   stefankangas@gmail.com,  emacs-devel@gnu.org
> Date: Thu, 16 Dec 2021 12:44:02 +0800
> 
> Richard Stallman <rms@gnu.org> writes:
> 
> > [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> > [[[ whether defending the US Constitution against all enemies,     ]]]
> > [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> >
> >   > Eli and I are the maintainers.
> >
> > You, Eli and I are the Emacs maintainers.
> > I've appointed several different Emacs maintainers
> > over the past 20 years, but I never took myself off the list.
> 
> So, who do I listen to..? 

When the maintainers disagree among them, you should wait for them to
get their act together and make a common decision on the course of
action.

> I'm still confused about what to do with `sqlite-load-extension'.

For now, nothing.  Not as long as the disagreement is not resolved.

IOW, it isn't your problem for now.  It's ours.



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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-16  4:41                                 ` Richard Stallman
@ 2021-12-16  8:33                                   ` tomas
  0 siblings, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-16  8:33 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1325 bytes --]

On Wed, Dec 15, 2021 at 11:41:07PM -0500, Richard Stallman wrote:
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 
> Thanks for sending me the LD_PRELOAD info.
> 
> LD_PRELOAD seems to be a user customization facility,

It definitely is: for the user/sysadmin. Much akin to advice in the
Emacs world. Releasing packages which make use of it has a confusion
potential and should be avoided, unless that is their specific purpose
(example: apulse makes use of LD_PRELOAD to make applications think they
are talking to pulseaudio, whereas the user only has ALSA available [1],
but that is its stated intention; another good example is faketime,
which uses LD_PRELOAD to intercept system calls to control the date/time
an application "sees" -- be it for testing or for reproducible builds).

Definitely not a thing which should happen without the user's knowledge:
she'll be confronted with difficult-to-debug situations otherwise.

> not well suited to releasing modified versions of programs.

Absolutely.

> So I think it is not significant for the question of sqlite3 modules.

Strong agreement here.

Cheers
-- 
tomás

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-16  4:41                         ` Richard Stallman
  2021-12-16  5:52                           ` Lars Ingebrigtsen
@ 2021-12-16  9:33                           ` tomas
  1 sibling, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-16  9:33 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1338 bytes --]

On Wed, Dec 15, 2021 at 11:41:08PM -0500, Richard Stallman wrote:
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> 
>   > The use case is to load the pcre module, which will allow us to list
>   > stored data based on regexp matches.  I.e., it will give users greater
>   > power to inspect .sqlite files.
> 
> Would you please tell me more about the PCRE module?
> Where is it distributed -- along with sqlite3 itself?

PCRE ("Perl Compatible Regular Expressions") is a C library written by
Philip Hazel (founding author of the Exim mail server). I think it was
originally written to have some more expressive "regular" [1] expressions
in Exim itself, but showed some worth as an independent library, so it
was released as such, under the BSD, to encourage use (Exim is GPLV2).

It tries to be compatible to Perl's regular expression machinery; it is
used in many systems, among other PHP, R, PostgreSQL.

There is a (not javascript-crippled, yay!) website at
https://www.pcre.org/. Distribution is via github, alas.

Cheers

[1] All those go beyond strict regular expressions, in the strict sense
   of the Chomsky hierarchy.

-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-16  7:13                                             ` Eli Zaretskii
@ 2021-12-16  9:41                                               ` tomas
  2021-12-16 10:09                                                 ` Eli Zaretskii
  2021-12-16 14:18                                                 ` Arthur Miller
  2021-12-16 11:01                                               ` Dmitry Gutov
  2021-12-17  4:24                                               ` Richard Stallman
  2 siblings, 2 replies; 126+ messages in thread
From: tomas @ 2021-12-16  9:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Óscar Fuentes, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1369 bytes --]

On Thu, Dec 16, 2021 at 09:13:19AM +0200, Eli Zaretskii wrote:

[...]

> > Since a few years ago Gcc improved after painfully breaking old
> > constraints, pressured by the new competitor, but I'm afraid that it
> > will be too little, too late. Linux compiles with Clang, and that's a
> > very worrying signal for Gcc, because if certain distributions migrate
> > to Clang, Gcc development will be over.
> 
> That rings a bell: it's what I heard 20 years ago about XEmacs vs GNU
> Emacs when I talked (in person) to its main developers.  The rest is
> history.

I think it is still relevant. Big corps have learnt to ride the waves
since then. Watch Microsoft "being friendly" to "open source" to the
tune of $ 7 billion (if I remember correctly) they shelled out for
Github (they didn't out of the goodness and warmth of their hearts:
I, at least, don't believe in fairy tales). Watch Google (before that)
editing out the "do no evil" while nobody seemed to be looking.

They still want some kind of user [1] control, but they know they can't
be as ham-fisted as they used to be in the '8ies and '90ies. The
question is wheter to agree or disagree with this "new" user control
patterns. Personally I don't, but I don't yet know the FSF's position on
that.

Cheers

[1] how is the return on investment to be secured, otherwise?

-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-16  9:41                                               ` tomas
@ 2021-12-16 10:09                                                 ` Eli Zaretskii
  2021-12-16 11:34                                                   ` tomas
  2021-12-16 14:18                                                 ` Arthur Miller
  1 sibling, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-16 10:09 UTC (permalink / raw)
  To: tomas; +Cc: ofv, emacs-devel

> Date: Thu, 16 Dec 2021 10:41:01 +0100
> Cc: Óscar Fuentes <ofv@wanadoo.es>, emacs-devel@gnu.org
> From:  <tomas@tuxteam.de>
> 
> > That rings a bell: it's what I heard 20 years ago about XEmacs vs GNU
> > Emacs when I talked (in person) to its main developers.  The rest is
> > history.
> 
> I think it is still relevant. Big corps have learnt to ride the waves
> since then.

Nothing new here: XEmacs started because a certain company wanted to
make profits from it, and was unhappy with the pace and directions of
the Emacs development.

> They still want some kind of user [1] control, but they know they can't
> be as ham-fisted as they used to be in the '8ies and '90ies.

If you pay too much attention to details, you can never learn from
past experience, because there's no exact repetition of precisely the
same circumstances.  Which details are important and which aren't is a
non-trivial judgment call, and I guess we differ in how we make that
call.  Which might mean you are right and I'm wrong, of course.

However, my point was that Óscar approaches the issue in a too
simplistic way (if I take what he wrote as the description of his
approach), and that there's more here than meets the eye.



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

* Re: Contradictiory directions
  2021-12-16  7:13                                             ` Eli Zaretskii
  2021-12-16  9:41                                               ` tomas
@ 2021-12-16 11:01                                               ` Dmitry Gutov
  2021-12-16 11:08                                                 ` Eli Zaretskii
  2021-12-17  4:24                                               ` Richard Stallman
  2 siblings, 1 reply; 126+ messages in thread
From: Dmitry Gutov @ 2021-12-16 11:01 UTC (permalink / raw)
  To: Eli Zaretskii, Óscar Fuentes; +Cc: emacs-devel

On 16.12.2021 10:13, Eli Zaretskii wrote:

>  From my POV, GCC is a better compiler, by a large measure, for
> languages that I use and on platforms that I care about.  As a user of
> a compiler, I don't care about its architecture, I care about its
> features, its usefulness during development, and the code it produces.
> And Clang is way behind on these, from my POV.  And don't get me
> started on other LLVM members, like the debugger.

All popular code assistance tools use Clang (code completion, 
navigation, etc). Even people who will deploy with GCC, if they want 
completion, have to install Clang.

And it's catching up performance-wise.

If that doesn't worry you, it should.



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

* Re: Contradictiory directions
  2021-12-16 11:01                                               ` Dmitry Gutov
@ 2021-12-16 11:08                                                 ` Eli Zaretskii
  2021-12-16 11:22                                                   ` Dmitry Gutov
  0 siblings, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-16 11:08 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: ofv, emacs-devel

> Cc: emacs-devel@gnu.org
> From: Dmitry Gutov <dgutov@yandex.ru>
> Date: Thu, 16 Dec 2021 14:01:32 +0300
> 
> On 16.12.2021 10:13, Eli Zaretskii wrote:
> 
> >  From my POV, GCC is a better compiler, by a large measure, for
> > languages that I use and on platforms that I care about.  As a user of
> > a compiler, I don't care about its architecture, I care about its
> > features, its usefulness during development, and the code it produces.
> > And Clang is way behind on these, from my POV.  And don't get me
> > started on other LLVM members, like the debugger.
> 
> All popular code assistance tools use Clang (code completion, 
> navigation, etc). Even people who will deploy with GCC, if they want 
> completion, have to install Clang.
> 
> And it's catching up performance-wise.
> 
> If that doesn't worry you, it should.

I was talking about the compiler, not the tools you mention.



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

* Re: Contradictiory directions
  2021-12-16 11:08                                                 ` Eli Zaretskii
@ 2021-12-16 11:22                                                   ` Dmitry Gutov
  0 siblings, 0 replies; 126+ messages in thread
From: Dmitry Gutov @ 2021-12-16 11:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ofv, emacs-devel

On 16.12.2021 14:08, Eli Zaretskii wrote:
>> Cc:emacs-devel@gnu.org
>> From: Dmitry Gutov<dgutov@yandex.ru>
>> Date: Thu, 16 Dec 2021 14:01:32 +0300
>>
>> On 16.12.2021 10:13, Eli Zaretskii wrote:
>>
>>>   From my POV, GCC is a better compiler, by a large measure, for
>>> languages that I use and on platforms that I care about.  As a user of
>>> a compiler, I don't care about its architecture, I care about its
>>> features, its usefulness during development, and the code it produces.
>>> And Clang is way behind on these, from my POV.  And don't get me
>>> started on other LLVM members, like the debugger.
>> All popular code assistance tools use Clang (code completion,
>> navigation, etc). Even people who will deploy with GCC, if they want
>> completion, have to install Clang.
>>
>> And it's catching up performance-wise.
>>
>> If that doesn't worry you, it should.
> I was talking about the compiler, not the tools you mention.

I'm talking about the compiler and the related infrastructure. The tools 
reuse parts of the compiler.

When a small development team (for example) has to use both compilers to 
do their work, it will be only natural that they try to remove one of 
them from the equation. And they won't be able to remove Clang, for the 
reason above.



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

* Re: Contradictiory directions
  2021-12-16 10:09                                                 ` Eli Zaretskii
@ 2021-12-16 11:34                                                   ` tomas
  0 siblings, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-16 11:34 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ofv, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1735 bytes --]

On Thu, Dec 16, 2021 at 12:09:48PM +0200, Eli Zaretskii wrote:
> > Date: Thu, 16 Dec 2021 10:41:01 +0100
> > Cc: Óscar Fuentes <ofv@wanadoo.es>, emacs-devel@gnu.org
> > From:  <tomas@tuxteam.de>
> > 
> > > That rings a bell: it's what I heard 20 years ago about XEmacs vs GNU
> > > Emacs when I talked (in person) to its main developers.  The rest is
> > > history.
> > 
> > I think it is still relevant. Big corps have learnt to ride the waves
> > since then.
> 
> Nothing new here: XEmacs started because a certain company wanted to
> make profits from it, and was unhappy with the pace and directions of
> the Emacs development.

I remember well, I'm /that/ old :)

> > They still want some kind of user [1] control, but they know they can't
> > be as ham-fisted as they used to be in the '8ies and '90ies.
> 
> If you pay too much attention to details, you can never learn from
> past experience, because there's no exact repetition of precisely the
> same circumstances.

I'm not advocating that. I'm just pointing out that the strategy has
become "softer". For example, someone pointed out that Google doesn't
avoid the GPL. They do (especially V3), but in a less aggressive way.

>                     Which details are important and which aren't is a
> non-trivial judgment call, and I guess we differ in how we make that
> call.  Which might mean you are right and I'm wrong, of course.

I think everyone is wrong, in a different way :-)

> However, my point was that Óscar approaches the issue in a too
> simplistic way (if I take what he wrote as the description of his
> approach), and that there's more here than meets the eye.

Agreed on this, definitely.

Cheers
-- 
tomás

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-16  4:41                                     ` Richard Stallman
  2021-12-16  4:44                                       ` Po Lu
@ 2021-12-16 13:39                                       ` Andrea Corallo
  2021-12-16 14:02                                         ` Eli Zaretskii
  1 sibling, 1 reply; 126+ messages in thread
From: Andrea Corallo @ 2021-12-16 13:39 UTC (permalink / raw)
  To: Richard Stallman
  Cc: luangruo, Lars Ingebrigtsen, emacs-devel, eliz, stefankangas

Richard Stallman <rms@gnu.org> writes:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > Eli and I are the maintainers.
>
> You, Eli and I are the Emacs maintainers.
> I've appointed several different Emacs maintainers
> over the past 20 years, but I never took myself off the list.

On this subject I think would be very helpful to have head maintainers
listed into the MAINTAINERS file (similarly to other projects like GCC).

I must admit when I approached Emacs development I wasn't sure about who
currently carried this role, and apparently I'm not the only one.

At the time the only information I found about who were the current
maintainers was [1], but apparently that is inaccurate.

Best Regards

  Andrea

[1] <https://directory.fsf.org/wiki/Emacs#tab=Details>



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

* Re: Contradictiory directions
  2021-12-16 13:39                                       ` Andrea Corallo
@ 2021-12-16 14:02                                         ` Eli Zaretskii
  2021-12-16 14:10                                           ` Andrea Corallo
  0 siblings, 1 reply; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-16 14:02 UTC (permalink / raw)
  To: Andrea Corallo; +Cc: luangruo, larsi, emacs-devel, rms, stefankangas

> From: Andrea Corallo <akrl@sdf.org>
> Cc: Lars Ingebrigtsen <larsi@gnus.org>, luangruo@yahoo.com, eliz@gnu.org,
>         stefankangas@gmail.com, emacs-devel@gnu.org
> Date: Thu, 16 Dec 2021 13:39:24 +0000
> 
> > You, Eli and I are the Emacs maintainers.
> > I've appointed several different Emacs maintainers
> > over the past 20 years, but I never took myself off the list.
> 
> On this subject I think would be very helpful to have head maintainers
> listed into the MAINTAINERS file (similarly to other projects like GCC).

Our MAINTAINERS has a different purpose.



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

* Re: Contradictiory directions
  2021-12-16 14:02                                         ` Eli Zaretskii
@ 2021-12-16 14:10                                           ` Andrea Corallo
  0 siblings, 0 replies; 126+ messages in thread
From: Andrea Corallo @ 2021-12-16 14:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: luangruo, larsi, emacs-devel, rms, stefankangas

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Andrea Corallo <akrl@sdf.org>
>> Cc: Lars Ingebrigtsen <larsi@gnus.org>, luangruo@yahoo.com, eliz@gnu.org,
>>         stefankangas@gmail.com, emacs-devel@gnu.org
>> Date: Thu, 16 Dec 2021 13:39:24 +0000
>> 
>> > You, Eli and I are the Emacs maintainers.
>> > I've appointed several different Emacs maintainers
>> > over the past 20 years, but I never took myself off the list.
>> 
>> On this subject I think would be very helpful to have head maintainers
>> listed into the MAINTAINERS file (similarly to other projects like GCC).
>
> Our MAINTAINERS has a different purpose.

Maybe could/should also have the purpose of listing head maintainers?

But anyway I think that, regardless where, would be helpful to have a
place somewhere to do that.

Best Regards

  Andrea



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

* Re: Contradictiory directions
  2021-12-16  9:41                                               ` tomas
  2021-12-16 10:09                                                 ` Eli Zaretskii
@ 2021-12-16 14:18                                                 ` Arthur Miller
  2021-12-16 15:14                                                   ` tomas
  1 sibling, 1 reply; 126+ messages in thread
From: Arthur Miller @ 2021-12-16 14:18 UTC (permalink / raw)
  To: tomas; +Cc: Óscar Fuentes, Eli Zaretskii, emacs-devel

<tomas@tuxteam.de> writes:

> On Thu, Dec 16, 2021 at 09:13:19AM +0200, Eli Zaretskii wrote:
>
> [...]
>
>> > Since a few years ago Gcc improved after painfully breaking old
>> > constraints, pressured by the new competitor, but I'm afraid that it
>> > will be too little, too late. Linux compiles with Clang, and that's a
>> > very worrying signal for Gcc, because if certain distributions migrate
>> > to Clang, Gcc development will be over.
>> 
>> That rings a bell: it's what I heard 20 years ago about XEmacs vs GNU
>> Emacs when I talked (in person) to its main developers.  The rest is
>> history.
>
> I think it is still relevant. Big corps have learnt to ride the waves
> since then. Watch Microsoft "being friendly" to "open source" to the
> tune of $ 7 billion (if I remember correctly) they shelled out for
> Github (they didn't out of the goodness and warmth of their hearts:
> I, at least, don't believe in fairy tales). Watch Google (before that)
> editing out the "do no evil" while nobody seemed to be looking.

Money is in another place nowadays. It's not in the software they sell to users,
it's users they sell nowdays, or at least data they gather from users. I
wouldn't be surprised if they even give away OS for "free" one day; they already
do for the most part, just as they did with IE and other software, just so
people use it, or if they even go "open source" with it in some forseable
future; not a year or so, but 10? 15? Maybe sooner, when they can't sell it any
more; when new generation used to Android/iOS and gnu/Linux have grown up so
they don't care about MS Windows any more?

MS clearly had a vision (business plan) when they purchased Github and that AI
company and when they started VS Code. It took several years for outside world
to realize, but I think it is clear now, with codepilot. They want users, they
want people to create content on their platform, because people are money, not
the software they (micorosoft) create. They failed with Bing, but I think Github
+ AI company is their "Google search".




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

* Re: Contradictiory directions
  2021-12-16 14:18                                                 ` Arthur Miller
@ 2021-12-16 15:14                                                   ` tomas
  0 siblings, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-16 15:14 UTC (permalink / raw)
  To: Arthur Miller; +Cc: Óscar Fuentes, Eli Zaretskii, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 442 bytes --]

On Thu, Dec 16, 2021 at 03:18:55PM +0100, Arthur Miller wrote:
> <tomas@tuxteam.de> writes:

> Money is in another place nowadays. It's not in the software they sell to users,
> it's users they sell nowdays, or at least data they gather from users. I
> wouldn't be surprised if they even give away OS for "free" one day
> [...]

Google is doing /exactly/ that. With two offers (so-far): Android and
ChromeOS.

Cheers
-- 
tomás

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-15  9:49                                                     ` Po Lu
  2021-12-15  9:59                                                       ` tomas
  2021-12-15 12:25                                                       ` Dmitry Gutov
@ 2021-12-16 17:45                                                       ` Stephen Leake
  2021-12-19  8:30                                                         ` tomas
  2021-12-20  4:43                                                         ` Richard Stallman
  2 siblings, 2 replies; 126+ messages in thread
From: Stephen Leake @ 2021-12-16 17:45 UTC (permalink / raw)
  To: Po Lu; +Cc: tomas, emacs-devel

Po Lu <luangruo@yahoo.com> writes:

> <tomas@tuxteam.de> writes:
>
>> This is a politically loaded discussion. Still, I think it is important.
>> If there is a reason to assume that "blacklist"/"whitelist" might offend
>> some people, I think it does make sense to look for alternatives.

+1

> There is a node "Other Politics" in the Information for Maintainers of
> GNU Software, which says:
>
>   A GNU package should not seriously advocate any other political
>   causes.  Not that the GNU Project opposes those other causes.  Rather,
>   it is neutral on them, and GNU packages should be neutral too.

No one can be completely neutral; we always bring our personal history
with us. When that history includes systemic problems, we are often
unconscious of the impact of our actions.

In addition "neutral" is not the same as "ignore the issue", and "use
new terms" is not the same as "advocate".

We recently agreed to use the term "main" instead of "master" for a Gnu
ELPA repostory, for similar reasons.

-- 
-- Stephe



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

* Re: Contradictiory directions
  2021-12-15 13:04                                             ` Po Lu
  2021-12-15 14:33                                               ` dick
  2021-12-15 14:54                                               ` Alexandre Garreau
@ 2021-12-17  4:23                                               ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-17  4:23 UTC (permalink / raw)
  To: Po Lu; +Cc: ofv, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > That sounds like defeatism.  Whether or not it will work, we are going
  > to try, and when we discover a problem, we are going to try to solve it
  > the best way we can.

That is very well put.  We. the GNU Project, deal with such situations
that way.  The free software movement is a fight against the injustice
of nonfree software, and we take it seriously.

  > See https://www.gnu.org/philosophy/compromise.html.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Contradictiory directions
  2021-12-16  7:13                                             ` Eli Zaretskii
  2021-12-16  9:41                                               ` tomas
  2021-12-16 11:01                                               ` Dmitry Gutov
@ 2021-12-17  4:24                                               ` Richard Stallman
  2 siblings, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-17  4:24 UTC (permalink / raw)
  To: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Would people please move the discussion of GCC and LLVM to the
emacs-tangents list?

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-16  5:52                           ` Lars Ingebrigtsen
@ 2021-12-17  4:25                             ` Richard Stallman
  2021-12-19  4:57                               ` Richard Stallman
  0 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-17  4:25 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: andrewjmoreton, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]


  > Maintainer: Gilles Filippini <pini@debian.org>
  > Homepage: http://git.altlinux.org/people/at/packages/?p=sqlite3-pcre.git

  > So it sounds like a third party module.

Perhaps we should package this with Emacs so as to assure every
Emacs installation has the real PCRE.


-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-17  4:25                             ` Richard Stallman
@ 2021-12-19  4:57                               ` Richard Stallman
  2021-12-19  7:24                                 ` Eli Zaretskii
  0 siblings, 1 reply; 126+ messages in thread
From: Richard Stallman @ 2021-12-19  4:57 UTC (permalink / raw)
  To: larsi; +Cc: andrewjmoreton, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

I wrote

    Perhaps we should package this with Emacs so as to assure every
    Emacs installation has the real PCRE.

This is one part of a nest of serious issues.  How will we
expect/tell users to find sqlite3 plug-ins for use in Emacs -- for
instance, PCRE?

1. Do free GNU/Linux distros package it?  If so, with sqlite3 or separately?

2. What about people who aren't using one of those distros,
or are not using GNU/Linux?  Where would they get these?

3. Does that involve looking in package repos that contain
nonfree plug-ins too?

4. What does the sqlite3 package itself say about where to get plug-ins?
Does it direct people to a place with nonfree plug-ins?

"How do we tell users to find sqlite3 plug-ins for use in Emacs?" is a
question that will be certainly have a factual answer.  If we don't
choose it, other people's choices plus happenstance will choose it.

So if we are going to include sqlite3 in Emacs, we had better choose
a good answer for this question.






-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: master 3d38d1d: Add sqlite3 support to Emacs
  2021-12-19  4:57                               ` Richard Stallman
@ 2021-12-19  7:24                                 ` Eli Zaretskii
  0 siblings, 0 replies; 126+ messages in thread
From: Eli Zaretskii @ 2021-12-19  7:24 UTC (permalink / raw)
  To: rms; +Cc: larsi, andrewjmoreton, emacs-devel

> From: Richard Stallman <rms@gnu.org>
> Date: Sat, 18 Dec 2021 23:57:13 -0500
> Cc: andrewjmoreton@gmail.com, emacs-devel@gnu.org
> 
>     Perhaps we should package this with Emacs so as to assure every
>     Emacs installation has the real PCRE.
> 
> This is one part of a nest of serious issues.  How will we
> expect/tell users to find sqlite3 plug-ins for use in Emacs -- for
> instance, PCRE?

As with optional libraries, this information is usually in README and
INSTALL.  And the configure script checks more precise requirements,
if there are any, for including optional libraries in the build.

> 1. Do free GNU/Linux distros package it?  If so, with sqlite3 or separately?

Here's a page that describes how to install the PCRE plug-in on
Ubuntu:

  https://zoomadmin.com/HowToInstall/UbuntuPackage/sqlite3-pcre

According to that page, Ubuntu does provide a package for it.

> 2. What about people who aren't using one of those distros,
> or are not using GNU/Linux?  Where would they get these?

The code can be easily found by searching the Internet, and our
README/INSTALL should include the canonical URL.



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

* Re: Contradictiory directions
  2021-12-16 17:45                                                       ` Stephen Leake
@ 2021-12-19  8:30                                                         ` tomas
  2021-12-20  4:43                                                         ` Richard Stallman
  1 sibling, 0 replies; 126+ messages in thread
From: tomas @ 2021-12-19  8:30 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]

On Thu, Dec 16, 2021 at 09:45:43AM -0800, Stephen Leake wrote:

[...]

> No one can be completely neutral; we always bring our personal history
> with us [...]

I tend to put it (with a bit of tongue-in-cheek) like so: saying "I'm
neutral" is just a short way of saying "I currently can't see my bias".

Having some grounding there, I think the most important point in science
is a long and skillful fight to "see" one's biases and take them into
account. Read on "personal equation" [1]. Take it as a metaphor or as a
case study. Or as a reminder that humility is essential in growing one's
knowledge. Or just as a fetching story on some important steps in
science. For me, it's "all of the above", but I might be biased :)

Cheers

[1] https://en.wikipedia.org/wiki/Personal_equation

-- 
tomás

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: Contradictiory directions
  2021-12-16 17:45                                                       ` Stephen Leake
  2021-12-19  8:30                                                         ` tomas
@ 2021-12-20  4:43                                                         ` Richard Stallman
  1 sibling, 0 replies; 126+ messages in thread
From: Richard Stallman @ 2021-12-20  4:43 UTC (permalink / raw)
  To: Stephen Leake; +Cc: luangruo, tomas, emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

You're entitled to have a political preference about the name for the
principal branch in a repo, but the GNU Project takes a firmly neutral
stance on the matter.

The GNU Project is dedicated to the cause of software freedom.  We
also defend basic human rights, such as freedom of speech.  (If Emacs
design decisions could actually free slaves, that would be an
important design consideration, but they can't.)  Other political
issues are unrelated and extraneous.

As you said, being neutral on a political issue does not mean simply
disregarding it.  Our neutrality on extraneous issues is an active
stance.  It means that participants who have views on unrelated
political issues should not try to argue about them here.

One general fact about those political issues is that people disagree
on them.  We want people with various views to be welcome to
participate in GNU development.  Participants must not argue about
extraneous issues; and especially they must not try to pressure the
rest of us into yieldihg.  That is way, way beyond the line.

You can advocate your views on unrelated political issues in the rest
of your life -- we all can.  Outside, we may agree on some extraneous
issues while clashing on other extraneous issues.  Please don't bring
those disagreements in here.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

end of thread, other threads:[~2021-12-20  4:43 UTC | newest]

Thread overview: 126+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20211211035614.15517.53830@vcs0.savannah.gnu.org>
     [not found] ` <20211211035616.984DD20A0A@vcs0.savannah.gnu.org>
2021-12-11  4:17   ` master 3d38d1d: Add sqlite3 support to Emacs Stefan Kangas
2021-12-11  5:00     ` Po Lu
2021-12-11  5:29       ` Lars Ingebrigtsen
2021-12-11  6:56         ` Po Lu
2021-12-11  7:14           ` Lars Ingebrigtsen
2021-12-11  7:04       ` Po Lu
2021-12-11  8:50         ` Eli Zaretskii
2021-12-11  9:20           ` Po Lu
2021-12-11 11:09             ` Eli Zaretskii
2021-12-11 12:36             ` Alexandre Garreau
2021-12-11 12:49               ` Po Lu
2021-12-11 12:57                 ` Alexandre Garreau
2021-12-11 13:29                   ` Po Lu
2021-12-11 13:45                     ` Alexandre Garreau
2021-12-11 13:51                   ` Eli Zaretskii
2021-12-11 13:55                     ` Alexandre Garreau
2021-12-11 16:47                       ` Eli Zaretskii
2021-12-11 14:26             ` Stefan Monnier
2021-12-12  3:59             ` Richard Stallman
2021-12-12  4:46               ` Po Lu
2021-12-13  3:44                 ` Richard Stallman
2021-12-13  4:01                   ` Lars Ingebrigtsen
2021-12-14  4:12                     ` Richard Stallman
2021-12-14  4:36                       ` Po Lu
2021-12-14  7:23                         ` Lars Ingebrigtsen
2021-12-14  7:40                           ` Po Lu
2021-12-14  8:30                             ` Lars Ingebrigtsen
2021-12-14  9:16                               ` Po Lu
2021-12-14 10:27                                 ` Lars Ingebrigtsen
2021-12-14 13:12                                   ` Eli Zaretskii
2021-12-14 13:15                                     ` Lars Ingebrigtsen
2021-12-14 13:38                                       ` Eli Zaretskii
2021-12-14 23:41                                         ` Andy Moreton
2021-12-15 14:53                                           ` Eli Zaretskii
2021-12-15  5:15                             ` Richard Stallman
2021-12-15  7:07                               ` Lars Ingebrigtsen
2021-12-15  7:17                                 ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Po Lu
2021-12-15  7:23                                   ` Contradictiory directions Lars Ingebrigtsen
2021-12-15  7:36                                     ` Po Lu
2021-12-15  7:41                                       ` Lars Ingebrigtsen
2021-12-15  7:48                                         ` Po Lu
2021-12-15  7:52                                           ` Lars Ingebrigtsen
2021-12-15  7:59                                             ` Po Lu
2021-12-15  8:04                                               ` Lars Ingebrigtsen
2021-12-15  8:13                                                 ` Po Lu
2021-12-15  9:16                                                   ` tomas
2021-12-15  9:49                                                     ` Po Lu
2021-12-15  9:59                                                       ` tomas
2021-12-15 10:06                                                         ` Po Lu
2021-12-15 12:25                                                       ` Dmitry Gutov
2021-12-15 12:31                                                         ` Po Lu
2021-12-15 13:52                                                           ` Dmitry Gutov
2021-12-16 17:45                                                       ` Stephen Leake
2021-12-19  8:30                                                         ` tomas
2021-12-20  4:43                                                         ` Richard Stallman
2021-12-15  9:17                                                   ` Lele Gaifax
2021-12-15 12:39                                                   ` Lars Ingebrigtsen
2021-12-16  4:40                                                   ` Richard Stallman
2021-12-16  4:40                                               ` Richard Stallman
2021-12-15 15:15                                     ` Alexandre Garreau
2021-12-16  4:41                                     ` Richard Stallman
2021-12-16  4:44                                       ` Po Lu
2021-12-16  8:25                                         ` Eli Zaretskii
2021-12-16 13:39                                       ` Andrea Corallo
2021-12-16 14:02                                         ` Eli Zaretskii
2021-12-16 14:10                                           ` Andrea Corallo
2021-12-15 10:14                                   ` Óscar Fuentes
2021-12-15 10:24                                     ` Po Lu
2021-12-15 10:32                                       ` Óscar Fuentes
2021-12-15 10:42                                         ` Po Lu
2021-12-15 12:44                                           ` Óscar Fuentes
2021-12-15 13:04                                             ` Po Lu
2021-12-15 14:33                                               ` dick
2021-12-15 14:54                                               ` Alexandre Garreau
2021-12-17  4:23                                               ` Richard Stallman
2021-12-15 14:54                                             ` Alexandre Garreau
2021-12-15 18:04                                               ` Óscar Fuentes
2021-12-16  5:12                                                 ` Alexandre Garreau
2021-12-16  4:40                                         ` Richard Stallman
2021-12-15 13:51                                       ` Eli Zaretskii
2021-12-15 13:56                                         ` Po Lu
2021-12-15 15:11                                     ` Alexandre Garreau
2021-12-15 18:28                                       ` Óscar Fuentes
2021-12-15 19:55                                         ` Stefan Monnier
2021-12-15 21:15                                           ` Óscar Fuentes
2021-12-16  7:13                                             ` Eli Zaretskii
2021-12-16  9:41                                               ` tomas
2021-12-16 10:09                                                 ` Eli Zaretskii
2021-12-16 11:34                                                   ` tomas
2021-12-16 14:18                                                 ` Arthur Miller
2021-12-16 15:14                                                   ` tomas
2021-12-16 11:01                                               ` Dmitry Gutov
2021-12-16 11:08                                                 ` Eli Zaretskii
2021-12-16 11:22                                                   ` Dmitry Gutov
2021-12-17  4:24                                               ` Richard Stallman
2021-12-16  5:15                                         ` Alexandre Garreau
2021-12-15 13:36                                   ` Contradictiory directions (Was: Re: master 3d38d1d: Add sqlite3 support to Emacs) Eli Zaretskii
2021-12-15 14:34                                   ` Alexandre Garreau
2021-12-15 15:02                                     ` tomas
2021-12-15  7:26                               ` master 3d38d1d: Add sqlite3 support to Emacs Po Lu
2021-12-16  4:41                                 ` Richard Stallman
2021-12-16  8:33                                   ` tomas
2021-12-15 14:22                               ` Alexandre Garreau
2021-12-16  4:40                                 ` Richard Stallman
2021-12-13 22:35                   ` Andy Moreton
2021-12-15  5:14                     ` Richard Stallman
2021-12-15  7:10                       ` Lars Ingebrigtsen
2021-12-16  4:41                         ` Richard Stallman
2021-12-16  5:52                           ` Lars Ingebrigtsen
2021-12-17  4:25                             ` Richard Stallman
2021-12-19  4:57                               ` Richard Stallman
2021-12-19  7:24                                 ` Eli Zaretskii
2021-12-16  9:33                           ` tomas
2021-12-12  5:07               ` Alexandre Garreau
2021-12-12  5:17                 ` Po Lu
2021-12-12  5:20                   ` Alexandre Garreau
2021-12-13  3:44                 ` Richard Stallman
2021-12-13  5:30                   ` Po Lu
2021-12-13  5:36                     ` Lars Ingebrigtsen
2021-12-13  6:01                       ` Po Lu
2021-12-13  8:30                         ` Lars Ingebrigtsen
2021-12-12 12:17               ` Eli Zaretskii
2021-12-12  4:00         ` Richard Stallman
2021-12-12  4:00         ` Richard Stallman
2021-12-12  4:48           ` Po Lu
2021-12-11  5:26     ` Lars Ingebrigtsen

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

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).