Subject: Re: postgresql -- missing files?
To: Greg Troxel <gdt@ir.bbn.com>
From: Johnny C. Lam <jlam@pkgsrc.org>
List: pkgsrc-users
Date: 06/21/2007 21:23:39
On Thu, Jun 21, 2007 at 10:49:35AM -0400, Greg Troxel wrote:
> 
> I am not deeply familiar with the postgresql install procedure, but my
> reaction is that if a "standard postgresql install", meaning following
> the directions in the source tarball and not using a packaging system
> installs the file, the package should too.
> 
> If PL/R uses a file that's not part of the default install, then there's
> a bug between postgresql and PL/R someplace.  But it seems fair enough
> for pkgsrc to cope with that somehow.  It's not like postgresql is a
> tiny package and a small file will hurt.
> 
> Looking at postgresql82, I see that it sets BUILD_DIRS to a number of
> values:
> 
> postgresql82-client/Makefile:INSTALL_DIRS=      src/include
> postgresql82-client/Makefile:INSTALL_DIRS+=     src/interfaces
> postgresql82-client/Makefile:INSTALL_DIRS+=     src/bin
> postgresql82-client/Makefile:INSTALL_DIRS+=     doc
> postgresql82-client/Makefile:BUILD_DIRS=        ${INSTALL_DIRS}
> postgresql82-client/Makefile:BUILD_DIRS+=       src/backend
> postgresql82-plperl/Makefile:BUILD_DIRS=                src/pl/plperl
> postgresql82-plpython/Makefile:BUILD_DIRS=              src/pl/plpython
> postgresql82-pltcl/Makefile:BUILD_DIRS=         src/pl/tcl
> postgresql82-server/Makefile:BUILD_DIRS=                src/backend
> postgresql82-server/Makefile:BUILD_DIRS+=               src/backend/utils/mb/conversion_procs
> postgresql82-server/Makefile:BUILD_DIRS+=               src/timezone
> postgresql82-server/Makefile:BUILD_DIRS+=               src/pl
> postgresql82-tsearch2/Makefile:BUILD_DIRS=              contrib/tsearch2/snowball contrib/tsearch2
> 
> I would argue that all of files installed by the native postgresql install
> should be installed by the union of all the packages.

Speaking as someone who has maintained the PostgreSQL packages in the
past, I agree with this statement.  I believe that in the past, these
files weren't installed, but that later versions of PostgreSQL changed
this, and the packages simply didn't catch up.

> Plausible options seem to be adding a postgresql82-pgxs package (but
> this seems silly), and adding the dir with the mk file to BUILD_DIRS for
> one of the existing packages.  Does PL/R depend on the server or client?
> It seems easy enough to add BUILD_DIRS+= and to add the file to the
> PLIST.
> 
> Whether or not this is an elegant build system is another story, but
> pkgsrc does not have such an aesthetic filter as part of its mission.
> 
> Comments from the maintainer?  Is it ok to add the file for Jan?

I've looked into this more closely, and we currently don't install
any of the pgxs files, which include Makefile.global and pgxs.mk along
with a few other files.  They *are* part of a normal PostgreSQL
installation, so we should be installing them with either the -client
or -server package.  I would prefer they be installed with the -client
package.

	Cheers,

	-- Johnny Lam <jlam@pkgsrc.org>