Hello Eric,
czw., 4 mar 2021 o 10:31 Eric Bollengier <[email protected]>
napisał(a):
> > and the Debian is using readline only for Bacula:
>
> Debian folks had a long "battle" because readline was GPL and not
> compatible with non-pure-GPL software, something like that. I don't know
> what was the final result of this, but it's nice to be able to use a BSD
> version of the readline, they are compatible.
>
You should be right as I can find:
libreadline-dev/oldstable,now 7.0-3 amd64 [installed]
GNU readline and history libraries, development files
libreadline-gplv2-dev/oldstable 5.2+dfsg-3+b1 amd64
GNU readline and history libraries, development files
>
> Also, I now remember that on some system, they had multiple versions of
> readline (something like readline4, readline5 and readline6) at the same
> time. My guess is that all these versions were in different directories,
> probably include/readline5/, include/readline6, etc...
>
Unfortunate, no. There is a single libreadline-dev version allowed:
libreadline-gplv2-dev : Conflicts: libreadline-dev but 7.0-3 is to be
installed
Conflicts: libreadline6-dev
So it seems that no multiple development headers are supported here.
> I was developing on Debian mostly at that time, and it can be a pretty
> good explanation why the current system is like this. If tomorrow
> readline8 is not compatible with readline7, the same situation may
> happen again.
>
>
I do not understand it.
> > So, if we want to support Bacula with editline as the replacement for
> > readline then we should extend our detection code and add a proper
> > compilation option.
> > This is my humble opinion.
>
> The actual system supports editline, but without a specific detection
> code in the configure process.
>
>
I disagree. The current code is unable to properly use a properly installed
editline library without configure tricks. I call it no-support.
# dpkg -l|grep libedit
ii libedit-dev:amd64 3.1-20181209-1 amd64
BSD editline and history libraries (development files)
ii libedit2:amd64 3.1-20181209-1 amd64
BSD editline and history libraries
ii libeditline-dev 1.12-6.1 amd64
development files for libeditline
ii libeditline0 1.12-6.1 amd64
line editing library similar to readline
# grep READLINE src/config.h
/* #undef HAVE_READLINE */
/* #undef HAVE_READLINE */
BTW. I'm not sure why there are two HAVE_READLINE definitions in config.h?
> If you are sure that the editline library is a drop-in replacement to
> > readline then it is trivial to add this library detection and start to
> > support it officially.
>
> If users are using it and report an error or a patch, I think we would
> accept them, readline is part of the system, so, we have the right to
> link against it even if it's GPL.
>
In my opinion:
- any library external to the project should be used with #include <...>.
- readline library should be used with <readline/readline.h> etc. as this
is a proper way designed by readline developers
- the macro READLINE_LIBRARY should be removed as it is an
internal/unofficial api (for example, it is not used by editline anymore)
- editline library support should be added explicitly
- this all clean the code
I hope you agree.
--
Radosław Korzeniewski
[email protected]
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel