Re: static or dynamic libpgport
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Steve Singer <ssinger@ca.afilias.info>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-12-09T18:12:59Z
Lists: pgsql-hackers
On 12/09/2011 01:01 PM, Steve Singer wrote: > On 11-12-09 11:13 AM, Andrew Dunstan wrote: >> Recently I attempted to build an external package (pg_bulkload) >> against the latest Fedora packages. Unfortunately this fails, as pgxs >> adds "-lpgport" to any link line for an executable, and the >> corresponding libpgport.a isn't there. And in fact, pg_bulkload does >> use some of the functionality there (e.g. pg_strncasecmp), so just >> stripping "-lpgport" out doesn't work either. >> >> This happened because Fedora packaging guidelines >> <http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries> >> are strongly against shipping static libraries, and so all the >> PostgreSQL static libraries are excluded from the distribution (and I >> believe there are similar restrictions for RHEL). Of these libraries, >> I believe the only one that is *only* built as a static library is >> libpgport. >> >> Is there any good reason why we shouldn't build and install a dynamic >> libpgport.so? > > +1 > > We've struggled with slony and pgport because so many users have had > problems with pgport not being included in some distributions. It has > some useful functions, I think recent versions of slony use it on > win32 but don't elsewhere. Wee have had at least one patch floating > around that makes conditionally includes certain small behaviours in > slony based on if pgport is available or not based on a configure check. > > What package would a shared static pgport be installed with? Slony > requires a server + headers to build but slon and slonik only have a > runtime dependency on libpq (I don't know if anyone installs > slon/slonik on a machine without a postgresql server but you could) > > In the Fedora world, a static lib would go in postgresql-devel, but a dynamic lib would go in postgresql-libs, which is also where libpq is shipped. cheers andrew