postgresql93 port and libedit

Palle Girgensohn girgen at pingpong.net
Sat Feb 7 09:33:58 UTC 2015


Hello,

I switched to Libedit with the latest release, and it appears that some colour code support is missing from Libedit. Any of you know or have ideas how to fix this? Is it just not implemented yet in Libedit? I cod of course add an option to build with readline, but I am more inclined to just switch back rather than having one more option/complication in the port. So could you please advice, is there a way to make this user happy using Libedit?

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=197362

Palle



> 17 jan 2015 kl. 16:08 skrev Waitman Gobble <gobble.wa at gmail.com>:
> 
>> On Sat, Jan 17, 2015 at 7:00 AM, Waitman Gobble <gobble.wa at gmail.com> wrote:
>>> On Sat, Jan 17, 2015 at 6:54 AM, Baptiste Daroussin <bapt at freebsd.org> wrote:
>>>> On Sat, Jan 17, 2015 at 06:38:10AM -0800, Waitman Gobble wrote:
>>>>> On Sat, Jan 17, 2015 at 6:09 AM, Baptiste Daroussin <bapt at freebsd.org> wrote:
>>>>>> On Sat, Jan 17, 2015 at 10:37:49AM +0100, Palle Girgensohn wrote:
>>>>>> 
>>>>>> 
>>>>>>> 17 jan 2015 kl. 01:41 skrev Baptiste Daroussin <bapt at freebsd.org>:
>>>>>>> 
>>>>>>>> On Thu, Jan 15, 2015 at 08:02:22PM -0800, Waitman Gobble wrote:
>>>>>>>>> On Thu, Jan 15, 2015 at 8:01 AM, Baptiste Daroussin <bapt at freebsd.org> wrote:
>>>>>>>>>> On Wed, Jan 14, 2015 at 10:27:14PM -0800, Waitman Gobble wrote:
>>>>>>>>>> Hi,
>>>>>>>>>> 
>>>>>>>>>> I noticed that postgresql93-client port pulls in readline, which is GPLv3.
>>>>>>>>>> When I get rid of readline in Makefile 'USES' and also change the
>>>>>>>>>> bottom of the Makefile in postgresql93-server,
>>>>>>>>>> 
>>>>>>>>>> ...
>>>>>>>>>> .include "${.CURDIR}/../postgresql92-server/Makefile"
>>>>>>>>>> 
>>>>>>>>>> CONFIGURE_ARGS+=--with-libedit-preferred
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> It builds without readline and links against libedit in base:
>>>>>>>>> except that libedit is not really an alternative as it does not supprot unicode
>>>>>>>>> (except in head) one solution would be to try linking against the editline port
>>>>>>>>> which contains the same fixes as libedit in head and see if it works.
>>>>>>>>> 
>>>>>>>>> Best regards,
>>>>>>>>> Bapt
>>>>>>>> 
>>>>>>>> Thanks so much for the feedback. I've considered the options regarding
>>>>>>>> my project and I think it's more work to handle end-user devices with
>>>>>>>> a pkg repository if I indeed must manage custom ports built using
>>>>>>>> customized sources. Distributing the initial appliance isn't the
>>>>>>>> problem, i'm working out an update strategy for down the road.
>>>>>>> 
>>>>>>> https://people.freebsd.org/~bapt/pglibedit.diff
>>>>>>> 
>>>>>>> This patch works for me and accepts perfectly unicode.
>>>>>>> 
>>>>>>> Can anyone from the postgresql team test, generalize to other postegresql
>>>>>>> versions? (please keep it using the port version of libedit).
>>>>>>> 
>>>>>>> Best regards,
>>>>>>> Bapt
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> Looks like a reasonable patch. I have a hard time finding the differences between readine and ilbedit. It aims at 100% API compatibility. How good is libedit? If it degrades functionality compared to readline it should really be an option, but I agree, lesser options are preferred.
>>>>>> 
>>>>>> Palle
>>>>> It is not 100% compatible but I think it implements all pgsql requirements, only
>>>>> the version in ports and he head handle correctly unicode.
>>>>> 
>>>>> Some of the default settings are a bit different most ^W but that can be changed
>>>>> via .editrc
>>>>> 
>>>>> mysql has tips about the differences:
>>>>> https://docs.oracle.com/cd/E17952_01/refman-5.6-en/mysql-tips.html
>>>>> 
>>>>> From what I can read in the code psql only uses compatible interfaces.
>>>>> 
>>>>> As the one who have done the latet updates on libedit both base and ports, I
>>>>> would recommand to only use the version from ports on all version of FreeBSD as
>>>>> I can add quick fixes if needed.
>>>>> 
>>>>> Once I'm sure the libedit in base is good enough everywhere we would be able to
>>>>> switch on the base version if people prefers to avoid an external dep.
>>>>> 
>>>>> Best regards,
>>>>> Bapt
>>>> 
>>>> Looks great. The patch looks fine, however there is an issue that the
>>>> configure script in postgresql93 src still needs readline. If readline
>>>> is already on the machine then it builds fine, however if it is not
>>>> then the build fails. adding 'readline' back into USES will fix that
>>>> problem, and the resulting client is still linked to libedit and not
>>>> readline.. however the pkg will show a dependency on readline and pull
>>>> that in. The configure script is based on having readline, if you use
>>>> the --without-readline switch it won't even use libedit, however if
>>>> you use --with-libedit-preferred it will check for readline and then
>>>> switch the library linking order from 'readline libedit' to 'libedit
>>>> readline'.
>>>> 
>>>> I think the configure script for postgresql needs some rework so that
>>>> it only uses libedit, and the option would be --with-readline or
>>>> --with-libedit.
>>>> 
>>>> if 'readline' is removed from the Makefile (and readline is already
>>>> installed on the machine) then the package will build fine without the
>>>> dependency on readline. It's kind of a tricky predicament that it
>>>> needs it but not really.
>>>> 
>>>> As far as a port, I'm not sure how to 'optionally' replace the
>>>> configure script with what is in 'files' if the libedit option is
>>>> selected. I'm sure there is an example in the ports tree, just haven't
>>>> yet taken the time to check.
>>> 
>>> I have no readline installed and I can see:
>>> checking for rl_completion_append_character... no
>>> checking for rl_completion_matches... yes
>>> checking for rl_filename_completion_function... yes
>>> checking for append_history... no
>>> checking for history_truncate_file... yes
>>> 
>>> Which is what I was expected.
>>> 
>>> With libedit-prefered it checks:
>>> READLINE_ORDER="-ledit -lreadline"
>>> 
>>> So from what I can see everything ok :)
>>> 
>>> Bapt
>> 
>> 
>> Hmmm, I'll check again. The build was failing for me using poudriere.
>> it looks to me like the configure script checks for readline existence
>> and the with-libedit-preferred check block is inside the readline
>> check block..
>> 
>> --
>> Waitman Gobble
>> Los Altos California USA
>> 510-830-7975
> 
> ... I think that's why '--without-readline' option help reads 'without
> readline AND libedit'
> 
> -- 
> Waitman Gobble
> Los Altos California USA
> 510-830-7975


More information about the freebsd-ports mailing list