Package: postgresql-common Version: 59 Severity: minor Tags: patch Hi,
I made the following improvements to some of the pg_* scripts: - pg_createcluster creates and sets permissions on a non-standard socketdir - pg_createcluster(8) manpage now has consistent long-option syntax - pg_dropcluster removes a non-standard socketdir The patches are attached and tested on my box. Regards, Bastian -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17-treasure8 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages postgresql-common depends on: ii adduser 3.97 Add and remove users and groups ii debconf [debconf-2.0] 1.5.3 Debian configuration management sy ii lsb-base 3.1-15 Linux Standard Base 3.1 init scrip ii postgresql-client-common 59 manager for multiple PostgreSQL cl ii procps 1:3.2.7-2 /proc file system utilities ii ssl-cert 1.0.13 Simple debconf wrapper for openssl postgresql-common recommends no packages. -- debconf information: postgresql-common/obsolete-major: postgresql-common/untransitioned:
--- /usr/bin/pg_createcluster.orig 2006-09-05 12:14:16.000000000 +0200 +++ /usr/bin/pg_createcluster 2006-09-05 16:31:47.000000000 +0200 @@ -304,6 +304,15 @@ setup_pg_hba if $newcluster; # configure socket directory +if ($socketdir) { + if (-e $socketdir) { + chmod 0750, $socketdir; + chown $owneruid, $ownergid, $socketdir; + } + elsif (system 'install', '-d', '-m', '0750', '-o', $owneruid, '-g', $ownergid, $socketdir) { + error 'could not create socket directory'; + } +} $orig_euid = $>; $> = $owneruid; unless ($socketdir) { @@ -453,8 +462,12 @@ it is integrated into the B<postgresql-common> structure by moving the configuration file and creating the C<pgdata> link. +If a custom socket directory is given and it does not exist, it is created. +The permissions are adjusted to allow write access to the cluster owner and +group. + If the log file does not exist, it is created. In any case the permissions are -adjusted to allow write access to the cluster owner. Please note that +adjusted to allow write access to the cluster owner and group. Please note that C<postgresql.conf> can be customized to specify C<log_directory> and/or C<log_filename>; if at least one of these options is present, then the symbolic link C<log> in the cluster configuration directory is ignored. @@ -502,7 +515,7 @@ Explicitly set the path for the L<postmaster(1)> server log file. Defaults to C</var/log/postgresql/postgresql->I<version>C<->I<cluster>C<.log>. -=item B<-e> I<encoding>, B<--encoding> I<encoding> +=item B<-e> I<encoding>, B<--encoding=>I<encoding> Select the encoding of the template database. This will also be the default encoding of any database you create later, unless you override it there. The @@ -510,7 +523,7 @@ character sets supported by the PostgreSQL server are described in the documentation. -=item B<-p> I<port>, B<--port> I<port> +=item B<-p> I<port>, B<--port=>I<port> Select the port the new cluster listens on (for the Unix socket and the TCP port); this must be a number between 1024 and 65535, since PostgreSQL does not @@ -523,7 +536,7 @@ C<pg_ctlcluster> I<version cluster> C<start> on it). By default, the cluster is not started. -=item B<--start-conf> B<auto>|B<manual>|B<disabled> +=item B<--start-conf=>B<auto>|B<manual>|B<disabled> Set the initial value in the C<start.conf> configuration file. See B<STARTUP CONTROL> below. By default, B<auto> is used, which means that the cluster is
--- /usr/bin/pg_dropcluster.orig 2006-09-05 12:29:12.000000000 +0200 +++ /usr/bin/pg_dropcluster 2006-09-05 16:31:47.000000000 +0200 @@ -66,6 +66,9 @@ $c.'/environment'; unlink $info{'logfile'} if defined ($info{'logfile'}); unlink $info{'avac_logfile'} if defined ($info{'avac_logfile'}); +if ($info{'socketdir'} !~ /^(\/tmp|\/var\/run\/postgresql)\/?$/) { + rmdir $info{'socketdir'}; +} rmdir $c; rmdir "/etc/postgresql/$version"; rmdir "/var/lib/postgresql/$version/$cluster"; @@ -90,6 +93,8 @@ were created by L<pg_createcluster(1)>. If the configuration directory (C</etc/postgresql/>I<version>C</>I<cluster>) is empty after this, it is removed as well. +An empty socket directory other than B</var/run/postgresql> or B</tmp> is +also removed. Usually a cluster which still has a running server attached will not be deleted. To override this, the B<--stop> option forces a server shutdown