LGPL code using GPL code
Roland Illig
roland.illig at gmx.de
Tue Oct 19 22:19:15 UTC 2004
Leonard den Ottolander wrote:
> We might want to decide to change all the relevant code in vfs to GPL.
> Probably a good idea to release a tarball before the change, so people
> can easily find the last LGPL version if they want to work from that.
> This is mainly a formality.
>
> Any thoughts on when such a transition should take place?
Perhaps never.
The mcvfs code has been understood as being a library that is an
integral part of the Midnight Commander, but should also be able to live
on its own.
According to vfs/README, instead of changing the license it would be
better to write the necessary functions as part of mcvfs.
See vfs/README for details.
Currently there are 595 undefined references when trying to link
libvfs-mc.a with a simple main.c file.
When linking together with the GLib-1.2, there are still 182 undefined
references to 31 distinct symbols. Sorted and uniqued they are:
canonicalize_pathname
cd_symlinks
close_error_pipe
concat_dir_and_file
current_panel
decompress_extension
disable_interrupt_key
enable_interrupt_key
exist_file
get_compression_type
get_current_type
get_other_panel
get_other_type
got_interrupt
g_strlcpy
home_dir
input_dialog
load_anon_passwd
load_file
mc_home
mc_mkstemps
message
my_system
name_quote
open_error_pipe
print_vfs_message
shell
shell_execute
skip_separators
unix_error_string
wipe_password
Some of these functions have nothing to do with implementing a vfs. What
does a vfs need to know about the current_panel and the other_panel? The
input_dialog is just one form of user interaction. So the function
calling input_dialog should better use a callback mechanism instead of
having the name hardcoded.
As a challenge we could try to minimize the number of functions the
mcvfs really needs. And of the ones that it really needs, we should
decide which ones should be part of the public interface of the library
(vfs/vfs.h) or the implementor's interface (vfs/vfs-impl.h).
I vote for this challenge because we can exercise how to design clean
interfaces between the Midnight Commander and its vfs. I consider clean
interfaces an essential part of every software package.
Roland
More information about the mc-devel
mailing list