summaryrefslogtreecommitdiffstats
path: root/share/postgresql-setup
Commit message (Collapse)AuthorAgeFilesLines
* Move the repo to github.HEADmasterPavel Raiskup2016-07-223-162/+0
|
* postgresql-setup: reflect pg_upgrade movementPavel Raiskup2016-01-071-1/+1
| | | | | | | | | | | | | | | The pg_upgrade binary is not in postgresql-upgrade package now. In some upgrade scenarios, postgresql-upgrade is redundant package (SCLs/PGRPMSs). Hack the code so postgresql-setup is able to correctly advice which package should be installed to make the "old" engine available. * postgresql-setup.in (upgrade): Don't check for pg_upgrade binary existence but rather for postgres binary, and warn user with proper package name if missing. * share/postgresql-setup/library.sh.in (parse_upgrade_setup): White-list also 'package' constant name. * configure.ac: Bump version.
* configury: switch to _ax_text_tpl.m4Pavel Raiskup2015-09-251-1/+1
| | | | | | | | | | | | | | The script generation Makefile snippets are now used from _ax_text_tpl.m4, DRY principle (the m4 file is maintained separately for multiple projects). * configure.ac: Remove all the manual work with substitutions, start using _AX_TEXT_* macros. * Makefile.am: Use $(text_tpl_gen*) variables from _ax_text_tpl. * tests/Makefile.am: Likewise. * share/postgresql-setup/Makefile.inc: Likewise. * m4/_ax_text_tpl.m4: New file, TODO: publish somewhere. * m4/packaging.m4: Reuse _ax_text_tpl.
* sysvinit: transform for SCL & RHEL6 usagePavel Raiskup2015-03-171-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly about simplification of intiscript and postgresql-setup script reuse. Still WIP, however (some options are not applicable for sysvinit system). * share/postgresql-setup/library.sh.in (parse_upgrade_setup): Parse new variable "pghost_override". (run_cmd_as_dbadmin): New wrapper function to run something under "postgres" user. Cut from postgresql-setup. * postgresql-setup.in: Optionally source software collections. Call new check_daemon_reload instead of in-place checking. (upgrade): Use new library function run_cmd_as_dbadmin. Add new hack for $PGHOST overriding via $pghost_override. Add more verbose output to make clear what tool failed. (check_daemon_reload): New function to make the systemd daemon reload conditionally on one dedicated place. (handle_envfile): New function to abstract environment file parsing, works both for systemd & sysvinit env-files. (handle_service_envfiles): Use handle_envfile instead of in-place parsing. (service_configuration): For sysvinit supported configuration, we support only one env file per service - take this into account and don't try to detect many from systemctl output. * postgresql.init.in: Switch to bash script. Parametrize metadata by configure results. Source software collections when needed. Source project library. Don't set PGDATA if admin uses non-default service naem. Do not define PGPORT as PGPORT should be defined in postgresql.conf. Allow passing parameters into initdb/upgrade targets. ($PREVMAJORVERSION, $PREVPGENGINE): Remove unused variables. ($PGENGINE): This is @bindir@ equivalent. ($PGLOG): Spell it so it will not clash with system default PostgreSQL installation. ($pidfile): Use $NAME instead of $PID to distinguish multiple postmaster scenarios (mainly because we do not know the PGPORT yet). (start): Drop the checking logic and use postgresql-check-db-dir instead. Reuse run_cmd_as_dbadmin instead of $SU_POSTGRES. (stop): Use run_cmd_as_dbadmin instead of $SU_POSTGRES. (reload): Just coding style fix. (perform_initdb): Drop unused function, done in postgresql-setup. (__single_comand): Mostly postgresql-setup wrapper with success/failure sugar around the call itself. (initdb): Substitute the function body with postgresql-setup call. (upgrade): Likewise. * postgresql-check-db-dir.in: Fix the hint for admin about where the service should be initialized. Do not warn about systemd-only unsupported configuration. Add @bindir@ into "you need --initdb" hint. Re-style the warning a bit. * etc/postgresql-setup/upgrade/postgresql.conf: Mention new configuration option pghost_override. * configure.ac (initscriptsconfdir): New configuration directory. (PGMAJORVERSION): Use sed and regexp for MAJOR version mining. It failed for micro versions of length >= 2. (SCL_SOURCE): Define to be empty by default. * README: Document what's needed to bootstrap from git source. WIP. * Makefile.am (initscripts_DATA): Use noinst_DATA. Firstly, having initscripts_DATA installs only non-executable files. So we needed something with _SCRIPTS primary. But initscripts_SCRIPTS would face the automake's limitation that it must be "static" list of files. So make the installation of initscript (of dynamically generated name) via automake's install/uninstall. ($(initscript)): Use $(INSTANTIATE_SCRIPT) instead of $(INSTANTIATE). (install-data-hook): Call 'systemctl daemon-reload' only for non-sysvinit systems. * .gitignore: Ignore 'initscript' filename.
* move library functions into library.shPavel Raiskup2015-03-021-0/+22
| | | | | | * postgresql-setup.in (die, error, error_q, warn, warn_q, info) (info_q, debug, set_var, root_prereq): Move to .. * share/postgresql-setup/library.sh.in: .. here.
* postgresql-check-db-dir: match configuration approachPavel Raiskup2015-03-023-0/+121
| | | | | | | | | | | | | | | | | | | * configure.ac (PGDATADIR): Use /var/lib/pgsql/data when prefix is set to /usr. (rawpkgdatadir): New directory. Its different from pkgdatadir, because thats often set to /usr/share/postgresql. * Makefile.am: Include new rawpkgdatadir Makefile.inc. Fix distcheck by mentioning legacyscripts_SCRIPTS in GENERATED_FILES. * postgresql-check-db-dir.in: Use library.sh to give user better advice. Use @NAME_BINARYBASE@ prefix. (bad_version): New function. (PREVMAJORVERSION): Removed unused variable. * postgresql-setup.in: Cut out the config-parsing routines into library.sh. * share/postgresql-setup/library.sh.in: New library file. Added new option 'list' for parse_upgrade_setup. * share/postgresql-setup/Makefile.inc: New file. * share/postgresql-setup/.gitignore: Ignore library.sh.
* configuration: define upgrade-config directoryPavel Raiskup2015-02-261-16/+0
| | | | | | | | | | | | | | | | | | | | Currently under /etc/postgresql-setup/upgrade. All '*.conf' files are going to be loaded run-time by postgresql-setup. * postgresql-setup.in (read_config_file): New helper to safely read configuration files. (set_var): Remove comment. (parse_upgrade_setup): Use new read_config_file(). (parse_configuration): Rename to service_configuration(). * Makefile.am: Don't include share/Makefile.inc. Indent fixes. Add install-data-hook helper to install config directory. * build-helpers/Makefile.inc: Removed. * build-helpers/build-config: Likewise. * upgrade_config.template: Removed. * etc/postgresql-setup/upgrade/postgresql.conf: New template. * configure.ac: Remove --with-upgrade-config. Package maintainers are supposed to provide those for now. * share/postgresql-setup/Makefile.inc: Removed.
* postgresql-setup: multi-upgrade configurationPavel Raiskup2015-02-252-0/+17
Turns out we need to support upgrade from more than one previous database versions. The plan is to make this as general as easily possible, "run-time" configurable without need to recompile. * postgresql-setup.in: Add options --upgrade-from and --upgrade-ids. Require root access (as late as possible). ($USAGE_STRING): Adjust help output accordingly. ($PGMAJORVERSION, $PREVMAJORVERSION) ($PREVPGENGINE): Remove newly useless globals. ($option_upgradefrom): New option default. (set_var, root_prereq): New helper functions. (parse_upgrade_setup): Helper function to parse upgrade configuration. (print_version): Don't print PREVMAJORVERSION as it is (with configuration) useless. (upgrade): Create new $inplace local to handle in-place and copy-like migrations differently. Use the variable set generated by parse_upgrade_setup() function. Small err message fixes. (handle_service_env, handle_pgconf): Remove the MODE argument. (parse_configuration): Generalize operations which needed to be done on two places. * upgrade_config.template: Example of ./configure time config file. Based on files like this the run-time is generated. * share/postgresql-setup/.gitignore: New file. * share/postgresql-setup/Makefile.inc: New file. * build-helpers/build-config: New file, generator of configuration files. * build-helpers/Makefile.inc: New file. * Makefile.am: Distribute upgrade_config.template. Start the conversion to flat Makefile and include two new Makefile.inc snippets. * configure.ac: New --with-upgrade-config option. Propagate the rawpkgdatadir and UPGRADE_CONFIG_LIST variables into Makefile. (INSTANTIATE): Enhance to create the leading path also. (INSTANTIATE_CONV): Convenience helper for leading path of target creation. * auxdir/install_local: New (just-for-git) installation helper. * .gitignore: Don't hide share/postgresql-setup. * TODO: Mention that KDE folks would like to migrate somehow.