alexl at redhat.com
Thu May 24 18:19:04 GMT 2001
(I posted this to samba at lists.samba.org, but it might get a better
audience at samba-technical, so I reposted it)
I'm currently working on a samba based module for gnome-vfs. This
would mean that you can browse windows shares using Nautilus (the new
Gnome file manager). This would basically be a nice graphical version
of smbclient. There are some issues with licenses in this though. Let
me first describe the background.
Gnome-vfs is basically a user space VFS layer. It handles URIs, like
file://home/alex/file.txt and ftp:user:pwd at ftp.gnome.org/pub/foo. You
can even combine/stack several types of URIs like
ftp://ftp.gnome.org/pub/foo.tar.gz#gzip:#tar:/README. You can open an
URI, read, write, seek, stat etc. It handles URI types in a very
general way, essentially the generic code, when given a URI like
foo://dir/file looks for a dynamic library libfoo.so and dlopens it.
So, all I need to do is write libsmb.so an put it in the right dir,
and suddenly Nautilus can browse SMB shares if the user enters
smb://server/share in the location entry.
The problem is that gnome-vfs is licensed under the LGPL, which means
all kinds of apps can link to it, even proprietary ones. If I make a
samba based gnome-vfs module it will be GPL, due to the samba
license. A proprietary app (or just a GPL incompatible free app) might
now suddenly use the GPLd code if the user enters a smb: URI.
gnome-vfs is LGPL, and a GPL module will never be allowed in the core
gnome-vfs package. But nothing prevents separate distribution of a GPL
module, and using such a module with Nautilus (GPLd) would be
perfectly fine. But doing this would also open the possibility for
other apps to use it that may violate the license.
There are (in my mind) two kinds of possibilities for violation here:
a) an app might use the gnome-vfs api to access files in general,
which suddenly means that the app also can read files from smb
b) An app depends on the existence of the smb module for it's core
I would personally see the first case as ok since it just uses a
public LGPL API in a general way, but the second I think is a
violation of the license. But if the app and the library are
distributed separately, who violates the license? The user? But the
GPL only covers distribution, not usage.
What does the samba team think about this? The ones that own the
copyright to the code are the ones that decide whether to pursue any
violators in court.
Is there any possibility of re-licensing the smb client parts of samba
under the LGPL?
More information about the samba-technical