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