Re: LGPL code using GPL code



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



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