postgresql-common (53ubuntu3) dapper; urgency=low * debian/control: Have p-common always depend on the recent p-client-common, since the latter ships PgCommon.pm. If the library is out of date, this can break operations horribly. (http://bugs.debian.org/369289) -- Martin Pitt Mon, 29 May 2006 08:56:06 +0200 postgresql-common (53ubuntu2) dapper; urgency=low * debian/supported-versions: Recognize both '6.06' and '6.06LTS' as version numbers for Ubuntu dapper. -- Martin Pitt Mon, 22 May 2006 11:10:37 +0200 postgresql-common (53ubuntu1) dapper; urgency=low * debian/supported-versions: - Adapt Ubuntu dapper version number to 6.06LTS. - Fix bashism: 'type -p' -> 'type'. -- Martin Pitt Mon, 22 May 2006 07:52:47 +0200 postgresql-common (53) unstable; urgency=medium * Urgency medium since this fixes a quite serious bug; no intrusive changes otherwise. * Add Russian debconf translation, thanks to Yuriy Talakan' ! Closes: #367152 * t/001_packages.t: Check that the locales used in the tests are installed so that the test suite fails early if not. * t/050_encodings.t, t/060_obsolete_confparams.t: Use ru_RU{,.UTF-8} for tests, since they have more potential for failure. * t/050_encodings.t: - Add check for https://launchpad.net/bugs/39177: Correct encoding of server error messages under various locales. - Add check for bug #343057: Correct startup if client_encoding and lc_messages settings do not match. * pg_ctlcluster: Set LC_CTYPE environment variable to unbreak server error messages. (Closes https://launchpad.net/bugs/39177). By only setting CTYPE we also avoid reintroducing bug #343057. (Yay for postmaster being so anal about its environment) * t/020_create_sql_remove.t: Consider LC_CTYPE a safe environment variable. * debian/postgresql-common.postinst: Bump version comparison for restarting postgresql servers to this version, to ensure that above bug fix becomes active. -- Martin Pitt Fri, 19 May 2006 18:58:25 +0200 postgresql-common (52) unstable; urgency=low * Bump Standards-Version to 3.7.2. * Merge support for system wide snakeoil SSL certificate from Ubuntu branch and eliminate our custom SSL certificate juggling: - debian/control: + Depend on ssl-cert which provides snakeoil cert and the ssl-cert group. + Remove Recommends: openssl. - debian/postgresql-common.postinst: + Remove generation of PostgreSQL specific SSL certificate. + Add postgres user to the ssl-cert group on upgrades to this version or on fresh installs. - pg_createcluster: + Adapt cert/key paths to snakeoil. + Update manpage documentation POD. + Enable SSL only if SSL key can be accessed with the cluster owner's privileges. - debian/README.Debian: Update documentation of SSL certificate handling. -- Martin Pitt Fri, 12 May 2006 22:25:49 +0200 postgresql-common (51) unstable; urgency=low * PgCommon.pm: Add function read_pg_hba() to parse pg_hba.conf. * Add t/005_PgCommon.t: Designated for testing PgCommon.pm library functions; test read_pg_hba() for now. * pg_ctlcluster: Check pg_hba.conf if the database superuser can connect locally without a password. If not, disable startup checks to avoid asking for the superuser password. (https://launchpad.net/bugs/37640) * t/030_errors.t: Test above pg_ctlcluster checks. -- Martin Pitt Mon, 1 May 2006 14:38:53 +0200 postgresql-common (50) unstable; urgency=low * t/030_errors.t: Check that pg_wrapper and administration programs give sane error messages instead of 'Invalid symbolic link blabla' for a nonexisting cluster. * pg_ctlcluster, pg_dropcluster: Print meaningful error message on nonexisting cluster. Closes: #360701 * pg_dropcluster: Rename --stop-server to --stop to be consistent with pg_createcluster's --start, and update documentation. --stop-server still works for backward compatibility, though. Closes: #360697 * debian/README.Debian: - Update createuser invocation description for 8.1+. Closes: #361731 - Update autovacuum daemon description; explain integrated autovacuuming for 8.1+. * pg_ctlcluster: Fail autovac-* commands for 8.1+ clusters. Closes: #360888 * debian/init.d-functions: Fix handling of failing pg_ctlcluster invocations. Closes: #362825 * pg_createcluster: Explain syntax of the environment file in more detail. * Add t/110_integrate_cluster.t: Test various scenarios of integrating already existing clusters. * pg_createcluster: Determine correct owner and group when integrating an already existing cluster. -- Martin Pitt Thu, 20 Apr 2006 23:09:36 +0200 postgresql-common (49) unstable; urgency=low * debian/supported-versions: - Do not fail the package installation if an unknown LSB release is encountered; merely print a warning and assume just the latest PostgreSQL version is supported. - Fix Ubuntu Dapper release version (6.04 -> 6.06). (https://launchpad.net/bugs/36921) * pg_createcluster: Add option -p/--port to set the cluster port. Closes: #359249 * t/030_errors.t: Check that pg_createcluster's --port option validates the port number (invalid number, already used port). * t/090_multicluster.t: Check that pg_createcluster's --port option works. * t/050_encodings.t: Check correct input/output with Latin-1 and UTF-8 client encodings in all server locale/encoding combinations. * pg_ctlcluster: Do not set LC_ALL and LANG environment variables for the postmaster; it handles locales by itself, and explicitly setting them breaks sometimes. Thanks to Olleg Samoylov for analyzing this. Closes: #343057 * t/TestLib.pm: Sort list of major versions, since we rely on a sorted list. * debian/init.d-functions, do_ctl_all(): Fix 'return' statements to explicitlly return 0 to not break with dash. * pg_lsclusters: Sort output by version, then by cluster name. -- Martin Pitt Mon, 3 Apr 2006 09:03:15 +0200 postgresql-common (48) unstable; urgency=low * t/001_packages.t: Do not fail if postgresql-8.0 is not installed, so that the complete test suite works with just 7.4 and 8.1. * Remove manual conffile transition handling in p-client-common maintainer scripts, since current dpkg now gets it right. * t/090_multicluster.t: Remove test user_clusters so that the broken one does not stay around if no user_clusters file existed before. * testsuite: Set all variables that potentially cause Perl taint check errors (IFS, CDPATH, ENV, BASH_ENV) to catch taint check bugs. * PgCommon.pm: Add two functions prepare_exec() and restore_exec() which set up a save (untainted) environment for calling external programs. * pg_ctlcluster, pg_maintenance, pg_dropcluster, pg_upgradecluster: Clean environment to not call external programs with potentially tainted variables. -- Martin Pitt Wed, 22 Mar 2006 00:03:46 +0100 postgresql-common (47) unstable; urgency=low * debian/control: Have p-client-common Replace: all versions of postgresql-common; this is a quick workaround for a dpkg bug (orphaned conffiles cause package conflicts). Closes: #357909, #357910 -- Martin Pitt Mon, 20 Mar 2006 19:12:29 +0100 postgresql-common (46) unstable; urgency=low * t/020_create_sql_remove.t: Make check of pg_maintenance output stricter to catch things like taint errors. * PgCommon.pm, get_versions() and get_version_clusters(): Check return values to untaint them. Fixes taint error in pg_maintenance (and maybe some more). Closes: #357237 * debian/control: Bump lsb-base dependency to >= 3.0-3 to ensure that log_daemon_msg() and friends are available. Closes: #357108 -- Martin Pitt Tue, 14 Mar 2006 22:59:03 +0100 postgresql-common (45) experimental; urgency=low * PgCommon.pm, read_conf_file(): Allow '.' characters in configuration keys. Closes: #352524 * debian/rules: Move pg_ctlcluster, pg_createcluster, pg_dropcluster, and pg_upgradecluster man pages from section 1 to 8, since they are only for administrators. * Split off a new package postgresql-client-common. This is to avoid having cron jobs, logrotate scripts, etc. if only the client apps are installed on a box. (https://launchpad.net/bugs/34167) * debian/postgresql-client-common.{pre,post}inst: Migrate user_clusters conffile from postgresql-common to avoid dpkg questions. -- Martin Pitt Tue, 14 Mar 2006 22:43:04 +0100 postgresql-common (44) unstable; urgency=low * PgCommon.pm, change_ugid(): Fix the order of $< and $> assignment so that we don't trash the saved uid and can switch back later. This allows us to make use of this function in the test suite, too. * t/TestLib.pm: Use change_ugid() in exec_as() get auxiliary groups. This makes the test suite work with SSL keys which are only readable by ssl-cert group members. * pg_ctlcluster: Untaint PID value read from autovacuum.pid. * t/020_create_sql_remove.t: Add check that SSL is automatically enabled on >= 8.0 clusters. * pg_createcluster: Improve SSL key access check to be more robust. * Enable taint checking in all programs and fix the resulting breakage. * PgCommon.pm: Replace backticks program calling with proper |- pipe opening to avoid intermediate shell and argument quoting problems. * testsuite: Only execute tests ending with .t. * Add t/100_upgrade_scripts.t: Test upgrade scripts. * run-upgrade-scripts: - Filter out the 'postgres' database on 8.1+ clusters. - Temporarily enable connections to databases which disable them. - Execute scripts in asciibetical order. * debian/postgresql-common.postinst: Ensure that /var/lib/postgresql is owned by postgres:postgres. (https://launchpad.net/bugs/32696) * t/*.t: Remove hashbang lines to avoid lintian warnings. * debian/postgresql-common.postinst: Only restart servers if upgrading from a version with important pg_ctlcluster changes in between (currently, prior than 40). * t/090_multicluster.t: Add test for user_clusters behaviour. * PgCommon.pm, user_cluster_map(): Print a meaningful error message instead of 'invalid symbolic link' gibberish if a cluster in user_clusters or .postgresqlrc does not exist. * pg_ctlcluster: - Exit with code 2 if the cluster is already (start)/not (stop) running and fix error messages to be consistent. (See bug #355004) - Document the exit codes in the POD. - t/030_errors.t: Adapt test suite. * debian/init.d-functions: - Use log_daemon_msg/log_progress_msg to show all clusters of a particular version on the same line, to better conform to standards. - Call restart instead of stop/start. - Do not fail if cluster is already (start)/not (stop) running to conform to LSB. - t/080_start.conf.t: Adapt test suite. - Thanks to Peter Eisentraut for the original patch. - Closes: #355004 -- Martin Pitt Sun, 12 Mar 2006 09:57:57 +0100 postgresql-common (43) unstable; urgency=low * debian/postgresql-common.cron.d: Update documentation for 8.1 and correct paths in it. Closes: #351891 * pg_createcluster: Fix typos in POD. Closes: #351835 * debian/postgresql-common.dirs: Add /var/lib/postgresql to ensure that the postgres user always has an existant home directory. Closes: #351985 * debian/supported-versions, lsb_debian(): Add 'testing'. Closes: #353754 * PgCommon.pm, change_ugid(): - Suppress warning on nonexistant user names. - Do not split group list at comma; getgrent already converts commas in /etc/groups to spaces, and splitting on commas breaks pam-ldap environments. Thanks to Chmouel Boudjnah. - Closes: #353674 * pg_wrapper: Set PGSYSCONFDIR to /etc/postgresql-common if it is unset, to provide a sane default for the location of pg_service.conf. Closes: #353832 * pg_dropcluster: Remove /etc/postgresql/ and /var/lib/postgresql/ if empty. * t/TestLib.pm: Added check_clean() method to test for empty PostgreSQL related directories and processes, and use it in all tests. * pg_dropcluster: Remove default log file. This avoids leaving it behind if the log file directory was changed in postgresql.conf. -- Martin Pitt Tue, 21 Feb 2006 20:59:04 +0100 postgresql-common (42) unstable; urgency=low * PgCommon.pm, change_ugid(): Implement initgroups() like behaviour to allow running the postmaster in auxiliary groups. This is necessary for e. g. reading shared SSL certificates. * t/TestLib.pm, exec_as(): Also change group id, in order to be able to read SSL certificates which are only group readable (which previously caused the test suite to fail). * debian/supported-versions: Add lsb_release output case 'unstable' to cope with recent lsb-release change. Closes: #351475 -- Martin Pitt Sun, 5 Feb 2006 12:36:53 +0000 postgresql-common (41) unstable; urgency=low * pg_createcluster: Make the definition of 'cluster already exists' less strict: check for files that indicate a cluster configuration instead of requiring the directory to be completely empty. * debian/maintscripts-functions, configure_version(): Improve check for already existing clusters to not catch subdirectories with non-cluster files (e. g. a single *.old and similar). * pg_ctlcluster: Add option -o to pass parameters to the postmaster process. * debian/postgresql-common.postinst: Avoid error message from ls if /usr/lib/postgresql does not exist. * PgCommon.pm, cluster_info(): Respect log_{directory,filename} settings; only use Debian's log directory if neither is set. Thanks to Scott Chapman for discovering this issue. * pg_ctlcluster: Create the log file if it does not yet exist; this ensures that we always know the file postmaster really uses and avoids the race condition with nonexisting files if log_filename contains time macros. * pg_createcluster: Explain possibility of overriding the log symlink with log_* in postgresql.conf. * architecture.html: Fix some typos, remove obsolete pg_upgradecluster procedure. -- Martin Pitt Sun, 29 Jan 2006 11:38:01 +0000 postgresql-common (40) unstable; urgency=low * debian/supported-versions: Add 8.1 to Ubuntu 5.10 to properly support backport. * PgCommon.pm: If /etc/postgresql-common/user_clusters does not exist, use the default cluster instead of returning an invalid value. Also, do not complain if the file does not exist (which is legitime). Closes: #348447 * debian/README.Debian: Fix 'detailled' typo. Closes: #346442 * Replace most calls to get_conf_value() with the much more efficient new function read_cluster_conf_file(). * pg_upgradecluster: Factorized and cleaned up parameter deprecation/upgrade code. * Support auxiliary environment variables for postmaster: - pg_createcluster: Create /etc/postgresql/version/cluster/environment file (empty, just a comment). - pg_dropcluster: Remove environment file. - pg_ctlcluster: Clear environment and only set variables mentioned in environment file and LANG/LC_ALL. - Closes: #345516 * t/020_create_sql_remove.t: Check save environment and correct function of the environment file. * PgCommon.pm, next_free_port(): Check if the port is already in use, skip it if so. Closes: #348875. * t/090_multicluster.t: Create a socket bound to port 5434 and check that it is not used by pg_createcluster. -- Martin Pitt Sat, 21 Jan 2006 17:16:32 +0100 postgresql-common (39) unstable; urgency=low * Add t/090_multicluster.t: Test multicluster operation and environment variable handling (PGCLUSTER, PGPORT). * pg_upgradecluster: When upgrading from < 8.1 to >= 8.1, check for users and groups with the same name and abort if there are any. Closes: #343622 * t/040_upgrade.t: Add self test for above bug (clashing role names on upgrade). * testsuite: Run the tests twice; once with umask 022, once with umask 077. * Fix operation under umask 077: - pg_createcluster: Create /var/log/postgresql with mode 0755. - PgCommon.pm, set_cluster_start_conf(): Always create start.conf with 0644 mode by default, but preserve permissions when changing the file. - pg_upgradecluster: Ensure correct permissions of the temporary pg_hba.conf that only allows superuser connections. Closes: #345670 -- Martin Pitt Tue, 3 Jan 2006 20:27:10 +0100 postgresql-common (38) unstable; urgency=low * pg_ctlcluster: Remove --setuid option, it does not make too much sense after all and only confuses users. Closes: #343063 * Remove pg_ctlcluster's -s option from all scripts. * pg_wrapper: Fix 'postgreqsl' typo in POD. Closes: #343938 * pg_createcluster: Do not simply close STDOUT, but reopen it to /dev/null to avoid initdb complaining about invalid filehandles. Closes: #344180 * debian/init.d-functions: Check if the requested version's postmaster is available before trying to start/stop a cluster to avoid errors when a server package is removed, but not purged. Closes: #343730 -- Martin Pitt Thu, 22 Dec 2005 18:41:23 +0100 postgresql-common (37) unstable; urgency=low * debian/postgresql-common.config: Only show the obsolete version warning once. * Add French debconf translations, thanks to Guilhelm Panaget. Closes: #340200, #341267 * debian/postgresql-common.postinst: Change default permissions of the private SSL key to root:postgres 0640 to prevent potential modification of the certificate by the postmaster. Closes: #341141 * Add Czech debconf translations, thanks to Miroslav Kure. Closes: #341951 * debian/postgresql-common.postinst: Check that the postgres user/group is not root; fail installation with a meaningful error message if it is. Closes: #340459 * t/040_upgrade.t: Check upgrading of sequence and stored PL/PgSQL procedure. * pg_upgradecluster: Change hardcoded and obsolete library paths to '$libdir' in the new cluster. This fixes upgrades of 7.4 clusters that were upgraded from woody. Closes: #338031 -- Martin Pitt Sat, 10 Dec 2005 23:36:41 +0100 postgresql-common (36) unstable; urgency=low * pg_createcluster: Add --start-conf option to set start.conf value. * t/080_start.conf.t: Test --start-conf option. * debian/postgresql-common.config: Fix determination of latest version: Use highest supported version, not highest installed one. -- Martin Pitt Mon, 28 Nov 2005 23:23:18 +0100 postgresql-common (35) unstable; urgency=low * pg_ctlcluster: If the socket already responds, but connections fail several times in a row, give the postmaster some more time (5s) to actually accept connections. * t/060_obsolete_confparams.t: Start with a full configuration file for every tested version, instead of just upgrading the previously upgraded version. This gives an exhaustive check for obsolete parameters. * pg_upgradecluster: Handle all outstanding obsolete parameters when upgrading to 8.1: - bgwriter_percent -> bgwriter_{lru,all}_percent - bgwriter_maxpages -> bgwriter_{lru,all}_maxpages * PgCommon.pm: Add new function set_cluster_start_conf() for easier change of start.conf. * Rename test 030_create_errors.t to 030_errors.t since it covers more errors than just creation failures. * Add test t/080_start.conf.t: Check start.conf handling and upgrading. * debian/supported-versions: Add Debian release 3.1. Closes: #340397, #340483 * debian/postgresql-common.config: Ignore things in /usr/lib/postgresql that are not a version-specific postgresql subdirectory. Closes: #340470 * t/001_packages.t: Check that procps is installed, the selftests need it. -- Martin Pitt Thu, 24 Nov 2005 22:27:51 +0100 postgresql-common (34) unstable; urgency=low * debian/postgresql-common.postrm: Fix syntax error. * Add debian/supported-versions: Script to determine the set of supported PostgreSQL major versions for the running distro/release. Currently covers Debian sid/testing, Ubuntu 5.10 and Ubuntu 6.04. * debian/postgresql-common.config: Remove hardcoded versions, use supported-versions now. * Minor test suite variable cleanup. * debian/README.Debian: Update for version 8.1. -- Martin Pitt Tue, 22 Nov 2005 01:17:32 +0100 postgresql-common (33) unstable; urgency=low * pg_wrapper: Instead of checking $0 against a static list, just check whether the program is available in postgresql's bin dir. This allows other packages which provide stuff in pg_bin to install additional symlinks and get pg_wrapper support for free. * pg_checksystem, pg_createcluster, pg_dropcluster, pg_upgradecluster: Check that effective user is root before doing anything to avoid confusing error messages. * pg_ctlcluster: Enhance the check if cluster is up and running to make it more reliable. This should fix the 'Database system is starting up' errors on autovacuum startup. * debian/init.d-functions: Remove legacy init script output and always use LSB functions. Add lsb-base dependency. * debian/po/de.po: Fix cluster version in German translation. Closes: #340096 * debian/postgresql-common.postrm: Check if /etc/postgresql-common exists before trying to remove it. Closes: #340187 * pg_upgradecluster: - Fix error message for nonexisting cluster. - Use pg_dump/pg_restore with custom format to support BLOBs. - Upgrade databases with disabled connection. - Execute ANALYZE after upgrade instead of pg_maintenance. - Set correct autovacuum option in postgresql.conf when upgrading to 8.1, depending on whether autovacuuming was used for the old cluster. - Restrict access to the clusters to the cluster owner and to the local Unix socket during upgrade. Closes: #338025 - Convert to 'strict' Perl mode. -- Martin Pitt Mon, 21 Nov 2005 23:30:34 +0100 postgresql-common (32) unstable; urgency=low * debian/postgresql-common.config: Fix stderr redirection when checking for installed packages. Closes: #339457 * pg_createcluster: Add a POD stanza about cluster names and their purpose. * Explained why and how to delete the main cluster of the new version before upgrading the old main cluster. Closes: #339392 * pg_ctlcluster: Call setsid() to unbind from controlling terminal before starting the daemon. Closes: #338862 * t/020_create_sql_remove.t: Add selftest for associated terminal (bug #338862). * debian/control: Version dependency on debconf to (>= 0.5.00) to make lintian happy. -- Martin Pitt Fri, 18 Nov 2005 00:42:48 +0100 postgresql-common (31) unstable; urgency=low * Completely new test suite rewritten from scratch; the new suite now uses perl instead of shell, can be extented more easily, handles changing of supported major versions and does more tests. * Fix start.conf handling of pg_upgradecluster: - Disable automatic startup of old backup cluster in start.conf. - Preserve the original start.conf in new cluster. - Error out if original cluster is disabled. * Add debconf note about upgrading from obsolete version 8.0. * debian/control: Add debconf dependency. * Disable automatic autovacuum invocation for -contrib-8.1: - pg_ctlcluster: Check version before (not after) complaining about a missing pg_autovacuum - debian/maintscripts-functions: Check version before trying to call autovac-{start,stop} - Closes: #337925 * pg_maintenance: Add --cluster option to work only on selected cluster. * pg_upgradecluster: Vacuum and analyze the target cluster after upgrade. Closes: #338010 * pg_ctlcluster: Exit with nonzero if cluster is already running. * pg_upgradecluster configuration parameter upgrading: - When upgrading to 8.1+, disable obsolete 'rendezvous_name' option. - When upgrading to 8.0+, rename sort_mem to work_mem. -- Martin Pitt Tue, 15 Nov 2005 12:38:48 +0100 postgresql-common (30) unstable; urgency=high * Urgency high since this fixes a stupid bug introduced in 29. * pg_lsclusters: Add -h/--no-header option to suppress header output. * pg_createcluster: Fix the default start.conf to contain "auto" by default. * PgCommon.pm, [sg]et_conf_value: Regard fractional and negative values as simple values that do not need quoting. Closes: #336675 -- Martin Pitt Thu, 3 Nov 2005 16:30:25 -0500 postgresql-common (29) unstable; urgency=low * pg_wrapper: Do not override an already defined PGPORT environment variable. Closes: #335692 * debian/postgresql-common.cron: Check if pg_maintenance is available before calling it, to avoid errors when package is removed, but not purged. Closes: #333803 * pg_createcluster: Do not enable SSL on 7.4 clusters since enabling it without enabling the TCP socket breaks. * Add support for configuring the start/stop behavior in start.conf: - debian/init.d-functions: Only start/stop the cluster in 'auto' mode. - pg_ctlcluster: Only operate in 'auto' and 'manual' modes, print an error in 'disabled' mode. - pg_createcluster: Create a default start.conf file. - pg_dropcluster: Remove start.conf file. - architecture.html, pg_createcluster POD: Document the file and the possible options. - Closes: #224047 * Fix testsuite expected output for new upstream versions (7.4.9 and 8.0.4). -- Martin Pitt Thu, 27 Oct 2005 23:09:45 -0400 postgresql-common (28) unstable; urgency=high * Urgency high since this version only fixes a very important bug with a safe patch. * Moved package development to bazaar-ng, updated debian/README.Devel. * debian/postgresql-common.postinst: Revert change of version 26: Do create the socket directory in the postinst, otherwise clusters will default to socket directory /tmp in some cases. -- Martin Pitt Thu, 20 Oct 2005 12:56:36 +0200 postgresql-common (27) unstable; urgency=low * Changed my debuild alias to explicitly ignore .arch-ids directories (a mere -i catched some, but not all arch directories). Closes: #328204 * Add lintian overrides for missing manpages; manpages are provided by postgresql-client-X.Y packages. * pg_ctlcluster: Have autovac-* commands error out with a meaningful message instead of claiming success if pg_autovacuum is not available. * pg_ctlcluster: - Increase the timeout for the started postmaster to 30 seconds to cope with slow startup. Closes: #320444 - Immediately fail if the postmaster produced log output and does not run any more. This avoids unnecessary timeouts on configuration errors and the like. * pg_createcluster: Listen on localhost by default only since upstream considers listening on all interfaces by default not safe enough. Closes: #318820 * pg_dropcluster: Handle missing data directories gracefully. Closes: #330135 -- Martin Pitt Wed, 28 Sep 2005 22:59:04 +0200 postgresql-common (26) unstable; urgency=low * Fix permissions of socket directory: - debian/postgresql-common.postinst: Drop creation of socket directory since we do it in the init script anyway. - debian/init.d-functions: Create directory with permissions 2775 instead of 755 and also correct the permissions of an already existing directory. - Closes: #326049 * debian/postgresql-common.postinst: Remove --no-create-home option from adduser call to ensure that the postgres user always has a sensible home directory that does not break "su - postgres". * pg_wrapper: Give a meaningful error message if no client packages are installed, instead of "Invalid PostgreSQL cluster version". Closes: #326771 * debian/README.Devel: Explain the structure and development of Debian's PostgreSQL packages. -- Martin Pitt Wed, 7 Sep 2005 10:50:31 +0200 postgresql-common (25) unstable; urgency=low * PgCommon.pm, get_cluster_socketdir(): - If the socket directory is configured in postgresql.conf, use it right away instead of doing experiments before. - Improved sanity checking. - Error out if the data directory cannot be stat'ed, since we cannot determine a sensible directory in this case. * pg_upgradecluster: Don't call cluster_info() on the yet nonexistant new cluster, just check for the data directory for determining if the new cluster already exists. * debian/control: Add adduser dependency. * testsuite: Generalize stopping of servers to work with all versions. * Avoid whinging during log rotation if there is no log file at all: - debian/postgresql-common.logrotate: Add "missingok". - debian/postgresql-common.dirs: Create /var/log/postgresql/. - Server packges have been changed to not clean away /var/log/postgresql/ on purge. - Closes: #325330 * pg_ctlcluster: When starting the autovacuum daemon, don't just wait for 1 second, but actually test if the server is running (timeout: 5 seconds); this should make the daemon startup much more reliable. * Remove test upgrade script upgrade-scripts/all_test_t1.sql, it has done its purpose now. -- Martin Pitt Wed, 31 Aug 2005 01:01:49 +0200 postgresql-common (24) unstable; urgency=low * Add /usr/share/postgresql-common/pg_checksystem: Check system parameters which are relevant to PostgreSQL. Right now this checks if write caching is enabled on any disk containing PostgreSQL clusters. * debian/postgresql-common.postinst: Call pg_checksystem. Closes: #318928 * Bump Standards-Version to 3.6.2. * debian/postgresql-common.postinst: Setup user 'postgres' with /bin/bash as default shell. Closes: #320810 * pg_wrapper, debian/postgresql-common.links: Wrap reindexdb, it is a standard client program in 8.1. * pg_createcluster: Do not create autovacuum log file for servers >= 8.1. * PgCommon.pm: For determining avac_enable on 8.1+ servers, read "autovacuum" setting from postgresql.conf. * pg_maintenance: Use avac_enable flag instead of checking for the pg_autovacuum pid file to determine whether autovacuuming is enabled. This is a more general approach and works for all server versions. * pg_ctlcluster: Do not attempt to start pg_autovacuum on 8.1+ servers. * pg_createcluster: Add hook for version specific function to configure postgresql.conf. * pg_createcluster: Add default configuration for 7.4 clusters: - tcpip_socket = true - stats_row_level = true * pg_createcluster: Add default configuration for 8.0 clusters: - listen_addresses = '*' - stats_row_level = true * pg_createcluster: Add default configuration for 8.1 clusters: - listen_addresses = '*' - stats_row_level = on - autovacuum = on * PgCommon.pm, set_conf_value(): Preserve comments. * debian/postgresql-common.postinst: Generalized restarting of all clusters to make it automatically work for future versions. * pg_createcluster: Adapt pg_hba.conf to the current default (md5 for host connections, ident sameuser for local ones); this obsoletes the default-pg_hba.conf patches in the server packages. * user_clusters: Update comments, throw out bogus documentation. Closes: #324749 * pg_createcluster: Only mangle configuration files (pg_hba.conf, SSL enabling, etc.) if we create a new cluster, not if we integrate an already existing one. Closes: #323878 * Add debian/postgresql-common.logrotate: Simple log rotation. Closes: #316100 -- Martin Pitt Tue, 23 Aug 2005 23:10:09 +0200 postgresql-common (23) unstable; urgency=low * pg_maintenance: Change directory to / before changing uid to avoid "could not change directory" errors. Closes: #318604. * Drop upgrade-scripts/all_vacuum_t1.sql since it causes too much trouble with big databases. Replace it with upgrade-scripts/all_test_t1.sql which just counts the tables in the database. This should be unintrusive, fast, and still appropriate for testing the upgrade scripts mechanism. Closes: #319035 * pg_ctlcluster: Check if autovacuum log file symlink is dangling and avoid warnings about uninitialized warnings. Instead print out a meaningful error message. Closes: #318717 * debian/postgresql-common.postinst: Generate a dummy /etc/postgresql-common/root.crt if not present. Closes: #319110 * debian/postgresql-common.postrm: Remove /etc/postgresql-common/root.crt on purge. * pg_createcluster: If /etc/postgresql-common/root.crt exists, symlink root.crt from the data directory. Closes: #318818 * debian/README.Debian: Document root.crt handling. -- Martin Pitt Thu, 21 Jul 2005 00:44:52 +0200 postgresql-common (22) unstable; urgency=low * pg_createcluster: Set default authentication for TCP connections to "md5" instead of the old "ident sameuser" default since it makes a lot more sense. * tests/000_debs: Fix detection of whether a package is installed. * tests/100_encodings: Fix filtering of postmaster processes. -- Martin Pitt Thu, 14 Jul 2005 12:00:16 +0300 postgresql-common (21) unstable; urgency=low * README.Debian: Explain that a server is required, give postgresql-8.0 example. (The descriptions of the packages have been updated in postgresql-{7.4,8.0}.) Closes: #313247 * README.Debian: Add "-s /bin/sh" to su command to also work with disabled shells for postgres. * README.Debian: Document autovacuum handling. -- Martin Pitt Tue, 12 Jul 2005 09:41:30 +0300 postgresql-common (20) unstable; urgency=low * Add infrastructure for executing SQL or executable scripts on clusters and databases on upgrade. This can be useful to apply security updates which need to change database layouts (like for CAN-2005-1409), do checks on upgrades, and maybe other things. - Add run-upgrade-scripts and call it in the postinst. - Add /usr/share/postgresql-common/upgrade-scripts/ where scripts are stored into. - Add /usr/share/postgresql-common/upgrade-scripts/SPECIFICATION. - This checks for available databases, thus will not fail on a nonexisting template0. Closes: #312707 - Tests are run right after starting all clusters. Also, the package installation does not fail if the upgrade fails on a single cluster or database. Closes: #308685 * pg_ctlcluster: pg_ctl's -o option is not cumulative, fix postmaster argument passing. This ensures that "-c unix_socket_directory" is always passed to the postmaster. * pg_createcluster: Do not configure a cluster for SSL if the owner is not the owner of /etc/postgresql-common/postgresql.pem. This fixes cluster creation for non-postgres owners. * Add test 130_nonpostgres_clusters: Check cluster creation and operation for a cluster owned by "nobody". * Add upgrade-scripts/all_vacuum_t1.sql: Upgrade script that will just vacuum all available databases. This is pretty useful and harmless, and is a good thing to test upgrade scripts at a larger scale. * init.d-functions: Rename autovac-* to autovac_* to comply to POSIX shell identifier rules. Closes: #315551 -- Martin Pitt Sun, 26 Jun 2005 14:26:56 +0200 postgresql-common (19) unstable; urgency=low * debian/postgresql-common.postinst: Generate an SSL certificate and key if it doesn't exist yet and openssl is installed. Closes: #212526 * debian/control: Recommend openssl and explain its purpose. * pg_createcluster: If SSL certificate and key exist, symlink it to the cluster directory where the postmaster looks for them and enable SSL in the configuration. * debian/postgresql-common.postinst: Only restart servers when configuring. * debian/init.d-functions: "pg_ctl restart" does not seem to re-read certain configuration parameters like the socket directory, so replace it with stop+start. * debian/postgresql-common.postinst: Create /var/run/postgresql before creating the initial cluster to ensure that the socket directory will be present. Closes: #312899 * Added debian/postgresql-common.postrm: Clean up on purge. * debian/postgresql-common.postinst: Check whether the user postgres exists before calling adduser to avoid confusing warning messages. -- Martin Pitt Wed, 22 Jun 2005 17:33:50 +0200 postgresql-common (18) unstable; urgency=low * pg_ctlcluster: Change directory to /var/lib/postgresql to avoid error messages when doing an operation in a directory which the database owner cannot access. * pg_ctlcluster: Pass the default socket directory to the postmaster, otherwise it will always be /tmp if unix_socket_directory is not specified in postgresql.conf. Closes: #314537 * Added tests/041_server_default_socketdir: Check that the socket is created in /var/run/postgresql if unix_socket_directory is not specified. * pg_ctlcluster: - On startup, check for a stale or invalid PID file and remove it if appropriate. - On stop, bail out on an invalid PID file. Closes: #304466. * Added tests/021_invalid_pidfile: Corrupt the pid file in various ways while the server is running and down. Also check double start/stop. -- Martin Pitt Sat, 18 Jun 2005 20:30:10 +0200 postgresql-common (17) unstable; urgency=low * PgCommon.pm, cluster_port_running(): Attempt to connect() to the server socket for probing if the server is running. The previous method of using 'psql -l' asked for a password if md5/password authentication is used locally. Closes: #314292 * testsuite: Ignore whitespace changes in expected vs. actual output. * tests/100_encodings: Fix race condition when showing postmaster processes: If we catch the postmaster right at fork() time, ps shows two postmaster instances instead of one. Filter them away to get the expected output. -- Martin Pitt Thu, 16 Jun 2005 11:44:08 +0200 postgresql-common (16) unstable; urgency=low * pg_createcluster: Add --logfile parameter. * pg_wrapper(1): Clarify synopsis. * debian/rules: Deuglify manpages by building them with --quotes=none. * debian/maintscripts-functions: Do not create a default "main" cluster when upgrading a server package. * pg_upgradecluster: Handle more configuration parameter transitions: - syslog -> log_destination - log_statement: false/true -> none/all - log_{pid,timestamp,hostname,source_port} -> log_line_prefix - obsolete max_expr_depth * pg_upgradecluster: Use new replace_conf_value() function which produces nicer configuration files with transitioned parameters. * Add test 120_obsolete_confparams: Upgrade a 7.4 cluster with all possible 7.4 options enabled. * PgCommon.pm: Fix parsing of autovacuum parameters. * pg_ctlcluster: Respect the avac_debug autovacuum configuration option. * pg_createcluster: Since the new default socket directory is /var/run/postgresql, explicitly set /tmp as socket directory for clusters if /var/run/postgresql is not writable by the cluster owner. * PgCommon.pm, get_cluster_socketdir(): If unix_socket_directory is not specified explicitly in postgresql.conf, default to /var/run/postgresql for postgres-owned clusters. Closes: #313651 * pg_ctlcluster: Do not sleep at all after starting the postmaster if we don't run the autovacuum daemon; sleep for a full second if we do. -- Martin Pitt Wed, 15 Jun 2005 01:01:11 +0200 postgresql-common (15) unstable; urgency=low * First unstable upload, welcome to the PostgreSQL future. * Quiet maintenance: - pg_maintenance: Supply -q to vacuumdb unless in verbose mode. - postgresql-common.cron.d: Direct stdout to /dev/null. - Adapted tests/060_maintenance expected output. - Closes: #312298 -- Martin Pitt Tue, 7 Jun 2005 12:11:48 +0200 postgresql-common (14) experimental; urgency=low * pg_ctlcluster: Check whether mutually exclusive log_*_stats are enabled to avoid the "FATAL: invalid cache id: 30" error on client invocations. * Added test 110_invalid_conf: test checking of invalid configurations. * Ship test suite in /usr/share/postgresql-common. * pg_ctlcluster: Fix logging of autovacuum daemon. * pg_ctlcluster: Check if autovacuum daemon is really running, exit with an error and print log if not. -- Martin Pitt Sun, 5 Jun 2005 11:19:08 +0200 postgresql-common (13) experimental; urgency=low * pg_createcluster: Add option --start to start the new cluster right after creating it. * tests/000_existing_clusters: Check for stale postmaster and pg_autovacuum processes. * testsuite: - Temporarily stop existing servers and move away existing files before executing the tests. - Restore the original files after the tests. * pg_upgradecluster: Check return value of pg_dumpall and psql and fail if they are not successful. * pg_createuser: Fix indentation of socket warning. * pg_upgradecluster: Check if cluster is running, exit with an error if not. * pg_createcluster: Added option --encoding to override detection from locale. * pg_createcluster: Guess default encoding from locale for clusters older than 8.0 to get the same behaviour as for 8.0. * debian/control: Conflict to postgresql-7.4 << 1:7.4.8-5 since earlier versions do not support non-ASCII encodings (due to missing pg_encoding). * pg_ctlcluster: Check that the cluster owner uid/gid really exist. Closes: #311546 * pg_lsclusters: Ensure that there is at least one space between the colums. * Added tests/100_encodings which checks cluster creation and updates for different encodings and locales. * pg_upgradecluster: Preserve socket directory, locales, and encoding. * tests/100_encodings: Check the locale the postmaster is running under. -- Martin Pitt Sat, 4 Jun 2005 15:44:40 +0200 postgresql-common (12) experimental; urgency=low * pg_ctlcluster: Remove "status" command, it's not documented and not really useful. * PgCommon: Fix cluster_info for avac_logfile to make pg_dropcluster clean away the autovacuum log file. * pg_maintenance: -v only influences vacuumdb output now, always show clusters. * Added a test suite: - Test scripts are in tests/*. - Expected output is in tests/*.ex. - Test suite is run with './testsuite' as root. * pg_createcluster: - Converted optional third parameter to option --datadir. - Rework POD to have a separate OPTIONS section. - Add option description to online help. * pg_ctlcluster: Improve POD. * pg_upgradecluster: - Initial framework for handling obsolete configuration parameters. - Handle transition of {tcpip_socket, virtual_host} -> listen_addresses. * debian/init.d-functions: If /lib/lsb/init-functions is available, use LSB init script functions. * pg_ctlcluster: After start, check whether the cluster is really running. If it does not come up after 5 seconds, fail and print the recent log portion. -- Martin Pitt Tue, 31 May 2005 12:16:26 +0200 postgresql-common (11) experimental; urgency=low * pg_ctlcluster: Cleaned up variables. * Factored out change_ugid() to PgCommon.pm and use it in the scripts. * Added pg_maintenance(8) program. * Activated formerly disabled postgresql-common.cron.d which calls pg_maintenance. * pg_createcluster: Default to cluster owner 'postgres' if no owner is specified. * pg_ctlcluster: Fix pg_controldata output parsing and call pg_controldata under locale 'C' to work with all locales. Closes: #310716 * pg_createcluster: Added --socket-dir option. * PgCommon.pm: Fix declaration of @lines in set_conf_value() to avoid duplicating the lines in configuration files. * PgCommon.pm: Converted to use strict to avoid future errors. * pg_maintenance: Removed option '-e' from vacuumdb call (leftover from debugging). * PgCommon.pm, user_cluster_map(): If several clusters exist, but no mapping is configured, return not only the default port's cluster version, but also its name. This fixes the socket directory determination for this case. * debian/rules: Fix clean target to remove the manpages created from POD again. * pg_upgradecluster: Provide socket directory arguments to psql and pg_dumpall to make it work for sockets which are not in /tmp. -- Martin Pitt Sat, 28 May 2005 16:02:59 +0200 postgresql-common (10) experimental; urgency=low * pg_ctlcluster: Supply cluster socket directory to pg_autovacuum. -- Martin Pitt Tue, 24 May 2005 22:57:33 +0200 postgresql-common (9) experimental; urgency=low * Add README.Debian with some general introduction, "first steps for the impatient", and pointers to further documentation. * pg_ctlcluster: Check validity of postmaster locale before setting it. * pg_createcluster: Check validity of locale before calling initdb under it. * pg_wrapper: Support PGCLUSTER environment variable. Closes: #305912 * pg_upgradecluster: - Copy original configuration files. - Configure the target cluster to use the original port, move the old cluster to a previously unused port. - Start the new cluster after upgrade. * debian/init.d-functions: Create /var/run/postgresql if it does not exist. * pg_createcluster: Set the socket directory to /var/run/postgresql for postgres-owned clusters. Print a warning to change the directory for other owners. Closes: #308597 * pg_wrapper: If PGHOST is not defined, set it to the cluster's socket directory to make client programs work with non-default socket directories. -- Martin Pitt Sun, 22 May 2005 22:22:38 +0200 postgresql-common (8) experimental; urgency=low * pg_ctlcluster: Check whether owner is in the shadow group, and keep shadow group privilege in this case; this is a poor workaround for Perl's lack of an initgroups() functions. Closes: #305427 * debian/postgresql-common.postinst: Fix adduser invocation, set home directory to /var/lib/postgresql. Closes: #308589 * Remove pg_default.1 and pg_exec.1, these programs do not exist. Closes: #305724 * debian/postgresql-common.links: Add a symlink postgresql-common(7) to pg_wrapper(1) to make finding the manpage a bit more obvious. * PgCommon.pm, user_cluster_map(): If there are no clusters, use the latest version; this makes it possible to use remote clusters with no local ones. Closes: #306836 -- Martin Pitt Fri, 13 May 2005 00:35:35 +0200 postgresql-common (7) experimental; urgency=low * Fix warning when calling pg_wrapper with an invalid cluster. * PgCommon.pm, user_cluster_map(): If only one cluster exists, return that if no match is found in the map files. * pg_ctlcluster: Start the postmaster under the locale that was used with initdb. * Updated documentation in architecture.html. -- Martin Pitt Wed, 20 Apr 2005 02:34:19 +0200 postgresql-common (6) experimental; urgency=low * pg_dropcluster: Check if postmaster and autovacuum log file paths are defined before unlinking them to avoid a warning. Closes: #303259 * pg_ctlcluster: Documented the autovacuum stuff in the POD. * debian/init.d-functions: Add autovacuum commands. * debian/maintscripts-functions: (Re)start/stop autovacuum daemons on configuration/removal of p-contrib-*. * pg_ctlcluster, autovacuum_start(): Check for already running daemon before starting a new one. * pg_createcluster: Add an explicit "local all" entry for the database superuser to pg_hba.conf. Closes: #303274 -- Martin Pitt Wed, 6 Apr 2005 20:59:28 +0200 postgresql-common (5) experimental; urgency=low * PgCommon.pm: Internalize get/set_conf_value, export get/set_cluster_port instead. * pg_ctlcluster: Integrated pg_autovacuum startup if -contrib is installed (based on some patches from Adam R. Skutt, thanks). * pg_createcluster: Create autovacuum_log symlink and log file. * pg_dropcluster: Remove autovacuum_log symlink and log file. * PgCommon.pm: If a configuration file is not found in the cluster conf dir, fall back to the one in /etc/postgresql-common. * Install /etc/postgresql-common/autovacuum.conf as a fallback default configuration file for pg_autovacuum. -- Martin Pitt Sun, 3 Apr 2005 09:10:27 +0200 postgresql-common (4) experimental; urgency=low * pg_upgradecluster: Uncomment library search path (artifact from debugging). * debian/postgresql-common.postinst: Don't create postgres user with home /, this can lead to problems sometimes. * pg_ctlcluster: Fixed pg_ctl invocation (dangling -o argument with versions < 8.0, caused errors when using dash as /bin/sh). Closes: #300896 -- Martin Pitt Tue, 22 Mar 2005 23:32:47 +0100 postgresql-common (3) experimental; urgency=low * Add richer set of common maintainer scripts functions (for package removal, and also for client and contrib packages). * Use alternatives system to link manpages from /usr/share/postgresql//man/... to /usr/share/man. -- Martin Pitt Mon, 21 Mar 2005 00:33:22 +0100 postgresql-common (2) experimental; urgency=low * pg_wrapper: Check that specified cluster actually exists. * Fix some Perl warnings. * Added initial version of pg_upgradecluster(8). -- Martin Pitt Mon, 14 Mar 2005 17:51:22 +0100 postgresql-common (1) experimental; urgency=low * New package to provide a common infrastructure for different PostgreSQL versions. This finally fixes all bugs concerning failed automatic upgrades. Closes: #277700, #282803, #224047, #229240, #232553, #279184, #241337, #247261, #157282, #167864, #305347 * pg_wrapper now has a central role for mapping clients to clusters, so it is not "overkill" any more. Closes: #201702 -- Martin Pitt Sun, 20 Feb 2005 23:54:54 +0100