emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 3d38d1d: Add sqlite3 support to Emacs


From: Richard Stallman
Subject: Re: master 3d38d1d: Add sqlite3 support to Emacs
Date: Sat, 11 Dec 2021 22:59:53 -0500

[[[ 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)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]