That last part looks like a configure bug. It should not say “-lreadline” if it’s actually using libedit. The note above that is to help ease any potential panic when clients say they want libedit but then see -DHAVE_READLINE=1
in the CFLAGS (which implies the GPL, and the only practical reason to choose libedit over libreadline is to avoid the GPL). That CFLAG is needed by the sqlite CLI shell to tell it to use readline.h, and editline unfortunately half-masquerades as readline (half in that only the header, not the library, is masqueraded).
Thanks for the great explenation! Not going to quote on everything, some short notes.
Our libeditline_devel doesn’t package the readline header but editline.h, so to check I changed #include <editline/readline.h>
into #include <editline/editline.h>
in sqlite-config.tcl, the build however failed with undefined references.
Short sollution would be to just use readline instead of libeditline.
Using --soname=legacy
works and should be fine enough for us I guess to be able to update without much hustle.
Using editline has been an issue indeed in regard to GPL, I’m not sure (yet) in what way sqlite is part of the base Haiku image (checking a clean build for that), if not it shouldn’t be a major problem to switch this to readline.
I am annoyed that we end up packaging the two of them
This is the most obvious example of the Linux “dependency hell” for me. There are dozen of libraries doing the same thing and somehow, no matter how hard we try, we have to package all of them.
As mentioned on IRC, both libedit and readline are already part of the build image (both as external packages), so in regards of packaging this won’t be a major change.
You mentioned sqlite being a requirement/used in webkit, so I guess it will change for that?
PS, there is no hurry at the moment to update, best to have this cleared out upfront.
Another way would be to see if we can patch this to still be able to use libedit.
PS2, I was wrong earlier, mixed up libedit and libeditline.
EDIT: libedit does contain readline.h