postgresql93 port and libedit

Waitman Gobble gobble.wa at gmail.com
Sat Jan 17 14:38:12 UTC 2015


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.

-- 
Waitman Gobble
Los Altos California USA
510-830-7975


More information about the freebsd-ports mailing list