postgresql93 port and libedit

Waitman Gobble gobble.wa at gmail.com
Sat Jan 17 15:09:00 UTC 2015


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