Re: Configurable path to look up dynamic libraries - Mailing list pgsql-hackers

From Lamar Owen
Subject Re: Configurable path to look up dynamic libraries
Date
Msg-id 01051612132000.00910@lowen.wgcr.org
Whole thread Raw
In response to Re: Configurable path to look up dynamic libraries  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Configurable path to look up dynamic libraries
Re: Configurable path to look up dynamic libraries
List pgsql-hackers
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tuesday 15 May 2001 18:23, Tom Lane wrote:
> Lamar Owen <lamar.owen@wgcr.org> writes:
> > We're one component of a system -- and the PostgreSQL Group has done such
> > a good job of being platform agnostic that the platform and systems
> > issues are almost second-class citizens.

> Indeed, that I think is the underlying issue here.  "It's FHS compliant"
> cuts no ice with people who don't run FHS-layout systems, and I don't
> want to improve FHS compliancy at the price of making life more
> difficult for others.  

But that's my point -- it wouldn't, AFAICT, make anyone's life more diffcult 
in the userbase. The existing layout would remain as the default, with the 
FHS behavior a configure-time or run-time option.  Even being configured in 
an FHS compliant mode would not need to force FHS-compliance, just allow it.

But we currently are forcing FHS noncompliance on people. 

>(Likewise for other RPM installation issues, as
> you well know ;-))

As well I know.... ;-)

> But that will require some thought about separating
> security-critical data from not-critical data.  I think we ought to keep
> pg_hba.conf and subsidiary files (especially password files!) in datadir
> *only*.  I'm not sure about the other config files; up to now no one's
> paid any attention to security issues for those files, knowing that they
> were all kept in the same place.  We might need to reorganize their
> contents.

Good points.  However, now that we have breached the issue, GUC in al reality 
doesn't 100% unify configuration.  There's the sticky pg_hba.conf issue, the 
password files issue, etc.

<BRAIN_STORM>

So, what you have are basically two sets of config data:
1.)    Sitewide multiple-postmaster settings
2.)    Per-postmaster (and therefore per-datadir) settings.

There can be overlap here.  While I might want the capability to syslog be 
sitewide, the syslog level and facility might be a per-postmaster thing.  I 
might not want any logging on certain thoroughly tested high-volume databases 
(such as those that back discussion forums on websites). Likewise with TCP 
connections.  address:port and datadir settings are of course a per-datadir 
setting.  

I personally like the config file structure for the web statistics package 
'analog'.  First, there are configured-in defaults set in a header file.  
Then there is the master config file.  But you can then specify a secondary 
config file on the command line that automatically includes the master 
config, but can then override any setting at will.  You can also specify 
where to find the master config.

HOWEVER, while we are somewhat unique amongst databases in that there is 
built-in tcp-wrappers-like functionality, maybe, just maybe, that needs to be 
looked at a little closer.

SO, if postgresql.conf is already sitting in datadir, why not include the 
pg_hba.conf settings in the GUC?  Passwords could be stored similarly to the 
/etc/passwd method in a postgresql.conf section.  If we're going to have 
Unified Configuration, why not go whole-hog on it and really unify the 
configuration?  The default will be to place this file in the datadir, which 
by default is mode 700, so, the default installation will be secure.

Of course, currently postgresql.conf doesn't really have 'sections' except in 
style.  The '.ini' format is well-known and easily parsed, and is common on 
multiple platforms.  But in today's climate, an XML config might be better 
received.  

All that's left to do to satisfy my wish-list is an include directive (which 
may already exist -- the similarity to C headers in that file is striking) 
and a command-line switch to postmaster (or pg_ctl) to grab this file from 
another location, with the default being $PGDATA or the -D setting, if 
specified. With an include directive, a master config setup is easily made 
without unnecessarily complicating matters.  Oh, and tell initdb to not 
overwrite a postgresql.conf that already exists. :-).

Making this work with a single master config and multiple postmasters would 
be easily accomplished by having the ability to 'name' the 'virtual' 
databases and specify the settings for that virtual database in its own named 
section.  You then can start postmaster with pg_ctl and specify a 
- --config=/etc/pgsql/postgresql.conf --name=client1 and get the right datadir 
and the right settings.  Default settings set in the unnamed portion would be 
overridden by the named section's settings.

But, you could just as easily use individual configs that included a master 
(or not) and not use 'named' posmasters.  And the config files could reside 
wherever the admin wanted them to reside.

It's not far from this to making pg_ctl have the ability to start all the 
postmasters in a given config file with one command.  Directives to initdb if 
the datadir doesn't have a database present would simplify installation and 
initial startup, particularly for newbies.

</BRAIN_STORM>

And all of this would be optional usage. You don't use the feature?  The 
existing behavior would be the only reasonable default.

And symlinks are just a Band-Aid patch, and not a solution, as trivial as 
they may be.
- --
Lamar Owen
WGCR Internet Radio
1 Peter 4:11
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE7Aqck5kGGI8vV9eERAjmfAKDPY2U41TA5rvxEzG/eyo2TfjknmQCeOpmx
1XzcsCRzQ7Eq9p3fagQJSVY=
=SOxC
-----END PGP SIGNATURE-----


pgsql-hackers by date:

Previous
From: Jan Wieck
Date:
Subject: Re: Grammar-problems with pl/pgsql in gram.y
Next
From: Lamar Owen
Date:
Subject: Re: Configurable path to look up dynamic libraries