Date: Thu, 15 Jan 2015 07:37:47 -0800 From: Waitman Gobble <gobble.wa@gmail.com> To: Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au> Cc: freebsd-ports@freebsd.org Subject: Re: postgresql93 port and libedit Message-ID: <CAFuo_fyNX22TP=TQDo%2BLjvmL7FPK8yCEz7Q2aV%2BCTU08GCc77w@mail.gmail.com> In-Reply-To: <54B779BC.1040501@heuristicsystems.com.au> References: <CAFuo_fzX5i357NofZ2DFkz_=qDZzdNdGKdT8RfhoTN-wo=YDSA@mail.gmail.com> <54B779BC.1040501@heuristicsystems.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 15, 2015 at 12:26 AM, Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au> wrote: > > On 15/01/2015 5:27 PM, 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: >> >> >> # ldd /usr/local/bin/psql >> /usr/local/bin/psql: >> libpq.so.5 => /usr/local/lib/libpq.so.5 (0x800885000) >> libintl.so.8 => /usr/local/lib/libintl.so.8 (0x800ab3000) >> libssl.so.7 => /usr/lib/libssl.so.7 (0x800cbe000) >> libedit.so.7 => /lib/libedit.so.7 (0x800f2a000) >> libthr.so.3 => /lib/libthr.so.3 (0x801161000) >> libc.so.7 => /lib/libc.so.7 (0x801385000) >> libcrypto.so.7 => /lib/libcrypto.so.7 (0x80171e000) >> libncursesw.so.8 => /lib/libncursesw.so.8 (0x801b16000) >> >> >> >> .. there's a link to gettext libintl but that's LGPL (2.1) >> >> Anyhow I haven't done testing with psql linked to libedit instead of >> readline.. There's some noise about this a few years back but I don't >> see anything recent. Anyone have any 'bad' recent experience with >> libedit? pitfalls? It might be good to have libedit added as an >> option. I'm working on an appliance and the readline dependency kinda >> messes things up a bit for me. Obviously other remedies beyond ports >> but I think it could be a nice option. Comments appreciated. >> >> Thanks, >> > > Good catch Waitman. And thanks for sharing an approach to avoid GPLv3 > inclusion. > > Though you've raised an interesting question as to whether the licencing > information displayed by "pkg info" is accurate where a port pulls in > mandatory dependencies that use a more restrictive open source licence. > > Of the subset of ports that I use (servers only), the ports [licences] > that may be of concern are: python27 [PSFL], mediawiki [GPLv2], > mysql56-server [from mysql web GPL], pcre [BSD3CLAUSE] also use readline > and aren't tagged as GPLv3 which they probably should as FreeBSD > metaports requires readline? > > > _______________________________________________ > freebsd-ports@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-ports > To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org" There seems to be an issue that makes this problem more complicated, could be worked out. I tried building in poudiere without any readline, configure fails. Adding readline back to USES in client Makefile gets a build, but --with-libedit-preferred links to base libedit. In postgresql configure script, still looks for readline even if it uses libedit. So the package built by poudiere still pulls in readline. ie, if test "$with_readline" = yes; then { $as_echo "$as_me:$LINENO: checking for library containing readline" >&5 $as_echo_n "checking for library containing readline... " >&6; } if test "${pgac_cv_check_readline+set}" = set; then $as_echo_n "(cached) " >&6 else pgac_cv_check_readline=no pgac_save_LIBS=$LIBS if test x"$with_libedit_preferred" != x"yes" then READLINE_ORDER="-lreadline -ledit" else READLINE_ORDER="-ledit -lreadline" fi so basically it's setting the READLINE_ORDER with both libedit and libreadline but in alternate order depending on 'preferred' after a build using 'preferred' the client is linked to libedit, but pkg still pulls in readline as dependency. # pkg install postgresql93-server ... New packages to be INSTALLED: postgresql93-server: 9.3.5 postgresql93-client: 9.3.5 readline: 6.3.8 ... # ldd /usr/local/bin/psql /usr/local/bin/psql: libpq.so.5 => /usr/local/lib/libpq.so.5 (0x2009a000) libintl.so.8 => /usr/local/lib/libintl.so.8 (0x200c9000) libssl.so.7 => /usr/lib/libssl.so.7 (0x200db000) libedit.so.7 => /lib/libedit.so.7 (0x2013e000) libthr.so.3 => /lib/libthr.so.3 (0x20173000) libc.so.7 => /lib/libc.so.7 (0x20200000) libcrypto.so.7 => /lib/libcrypto.so.7 (0x20400000) libncursesw.so.8 => /lib/libncursesw.so.8 (0x2019e000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20384000) Apparently this behavior is because libedit doesn't work properly on some (non BSD) platforms. (?) ...reference: the notes in the configure script. So some work would need to be done to alter the configure script and pull out the readline stuff, (but should probably be an option). This makes for a more complicated port, but it's doable. For my own project I can make a custom port with readline stripped out, but for everyone with an 'optionally really remove readline' option that would be a bigger challenge I think. -- Waitman Gobble Los Altos California USA 510-830-7975
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFuo_fyNX22TP=TQDo%2BLjvmL7FPK8yCEz7Q2aV%2BCTU08GCc77w>