]> Frank Brehm's Git Trees - config/berta/etc.git/commitdiff
committing changes in /etc after emerge run
authorFrank Brehm <frank@brehm-online.com>
Mon, 8 Jan 2018 16:27:46 +0000 (17:27 +0100)
committerFrank Brehm <frank@brehm-online.com>
Mon, 8 Jan 2018 16:27:46 +0000 (17:27 +0100)
Package changes:
+dev-db/postgresql-10.1

.etckeeper
conf.d/postgresql-10 [new file with mode: 0644]
init.d/postgresql-10 [new file with mode: 0755]
pam.d/postgresql-10 [new file with mode: 0644]
postgresql-10/psqlrc [new file with mode: 0644]

index 1441826da047831592b6937bd120b10d330bac53..ad9b64018171e46235b71243e9851885a375471f 100755 (executable)
@@ -135,6 +135,7 @@ maybe chmod 0644 'conf.d/net-online'
 maybe chmod 0644 'conf.d/netmount'
 maybe chmod 0644 'conf.d/pciparm'
 maybe chmod 0644 'conf.d/php-fpm'
+maybe chmod 0644 'conf.d/postgresql-10'
 maybe chmod 0644 'conf.d/postgresql-9.6'
 maybe chmod 0644 'conf.d/puppetmaster'
 maybe chmod 0644 'conf.d/pydoc-2.7'
@@ -468,6 +469,7 @@ maybe chmod 0755 'init.d/numlock'
 maybe chmod 0755 'init.d/osclock'
 maybe chmod 0755 'init.d/pciparm'
 maybe chmod 0755 'init.d/php-fpm'
+maybe chmod 0755 'init.d/postgresql-10'
 maybe chmod 0755 'init.d/postgresql-9.6'
 maybe chmod 0755 'init.d/procfs'
 maybe chmod 0755 'init.d/pwcheck'
@@ -681,6 +683,7 @@ maybe chmod 0644 'pam.d/newusers'
 maybe chmod 0644 'pam.d/other'
 maybe chmod 0644 'pam.d/passwd'
 maybe chmod 0644 'pam.d/pop'
+maybe chmod 0644 'pam.d/postgresql-10'
 maybe chmod 0644 'pam.d/postgresql-9.6'
 maybe chmod 0644 'pam.d/runuser'
 maybe chmod 0644 'pam.d/runuser-l'
@@ -773,6 +776,8 @@ maybe chmod 0755 'portage/savedconfig/sys-apps'
 maybe chmod 0644 'portage/savedconfig/sys-apps/busybox-1.25.1'
 maybe chgrp 'portage' 'portage/world'
 maybe chmod 0644 'portage/world'
+maybe chmod 0755 'postgresql-10'
+maybe chmod 0644 'postgresql-10/psqlrc'
 maybe chmod 0755 'postgresql-9.5'
 maybe chown 'postgres' 'postgresql-9.5/pg_hba.conf'
 maybe chgrp 'postgres' 'postgresql-9.5/pg_hba.conf'
diff --git a/conf.d/postgresql-10 b/conf.d/postgresql-10
new file mode 100644 (file)
index 0000000..7d9e292
--- /dev/null
@@ -0,0 +1,65 @@
+# Comma-separated list of directories that contain a unix
+# socket. Created and controlled by the related initscript. The
+# directories created will be owned root:postgres with mode 1775.
+#
+# /run/postgresql is the default directory.
+PG_SOCKET_DIRECTORIES="/run/postgresql"
+
+# Which port and socket to bind PostgreSQL
+PGPORT="5432"
+
+# How long to wait for server to start in seconds
+START_TIMEOUT=10
+
+# NICE_QUIT ignores new connections and wait for clients to disconnect from
+# server before shutting down. NICE_TIMEOUT in seconds determines how long to
+# wait for this to succeed.
+NICE_TIMEOUT=60
+
+# Forecfully disconnect clients from server and shut down. This is performed
+# after NICE_QUIT. Terminated client connections have their open transactions
+# rolled back.
+# Set RUDE_QUIT to "NO" to disable. RUDE_TIMEOUT in seconds.
+RUDE_QUIT="YES"
+RUDE_TIMEOUT=30
+
+# If the server still fails to shutdown, you can force it to quit by setting
+# this to YES and a recover-run will execute on the next startup.
+# Set FORCE_QUIT to "YES" to enable. FORCE_TIMEOUT in seconds.
+FORCE_QUIT="NO"
+FORCE_TIMEOUT=2
+
+# Extra options to run postmaster with, e.g.:
+# -N is the maximal number of client connections
+# -B is the number of shared buffers and has to be at least 2x the value for -N
+# Please read the man-page to postmaster for more options. Many of these
+# options can be set directly in the configuration file.
+#PGOPTS="-N 512 -B 1024"
+
+# Pass extra environment variables. If you have to export environment variables
+# for the database process, this can be done here.
+# Don't forget to escape quotes.
+#PG_EXTRA_ENV="PGPASSFILE=\"/path/to/.pgpass\""
+
+##############################################################################
+#
+# The following values should not be arbitrarily changed.
+#
+# `emerge --config dev-db/postgresql:10' uses these values to
+# determine where to create the data directory, where to place the
+# configuration files, and any additional options to pass to initdb.
+#
+# The initscript also uses these variables to inform PostgreSQL where to find
+# its data directory and configuration files.
+#
+##############################################################################
+
+# Location of configuration files
+PGDATA="/etc/postgresql-10/"
+
+# Where the data directory is located/to be created
+DATA_DIR="/var/lib/postgresql/10/data"
+
+# Additional options to pass to initdb.
+# See `man initdb' for available options.
+PG_INITDB_OPTS="--encoding=UTF8"
diff --git a/init.d/postgresql-10 b/init.d/postgresql-10
new file mode 100755 (executable)
index 0000000..e5540ab
--- /dev/null
@@ -0,0 +1,157 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload promote"
+
+PG_CTL="/usr/lib64/postgresql-10/bin/pg_ctl"
+
+description="PostgreSQL 10 -- the world's most advanced open source database --
+${RC_SERVICE} is a wrapper around pg_ctl with additional administrative checks
+and convenience"
+
+get_config() {
+    [ -f "${PGDATA%/}/postgresql.conf" ] || return 1
+
+    eval echo $(sed -e 's:#.*::' "${PGDATA%/}/postgresql.conf" \
+        | awk '$1 == "'$1'" { print ($2 == "=" ? $3 : $2) }')
+}
+
+depend() {
+    use net
+    provide postgresql
+
+    if [ "$(get_config log_destination)" = "syslog" ]; then
+        use logger
+    fi
+}
+
+configured_port=$(get_config port)
+: ${configured_port:=${PGPORT}}
+
+checkconfig() {
+    # Check that DATA_DIR has been set
+    if [ -z "${DATA_DIR}" ] ; then
+        eerror "DATA_DIR not set"
+        eerror "HINT: Perhaps you need to update /etc/conf.d/postgresql-10"
+        return 1
+    fi
+
+    # Check that DATA_DIR exists
+    if [ ! -d "${DATA_DIR}" ] ; then
+        eerror "Directory not found: ${DATA_DIR}"
+        eerror "HINT: Ensure that DATA_DIR points to the right path."
+        eerror "HINT: Or perhaps you need to create the database cluster:"
+        eerror "    emerge --config dev-db/postgresql:10"
+        return 1
+    fi
+
+    # Check for the existence of PostgreSQL's config files, and set the
+    # proper mode and ownership.
+    # Only three files should be checked as potentially other files
+    # may be in PGDATA that should not be touched.
+    local file
+    for file in postgresql pg_hba pg_ident ; do
+        file="${PGDATA%/}/${file}.conf"
+        if [ -f "${file}" ] ; then
+            checkpath -f -m 0600 -o postgres:postgres "${file}"
+        else
+            eerror "${file} not found"
+            eerror "HINT: mv ${DATA_DIR%/}/*.conf ${PGDATA}"
+            return 1
+        fi
+    done
+
+    # Set the proper permission for the socket paths and create it if
+    # it doesn't exist.
+    set -f; IFS=','
+    local s
+    for s in ${PG_SOCKET_DIRECTORIES}; do
+        checkpath -d -m 1775 -o root:postgres "${s}"
+        if [ -e "${s%/}/.s.PGSQL.${configured_port}" ] ; then
+            eerror "Socket conflict."
+            eerror "A server is already listening on:"
+            eerror "    ${s%/}/.s.PGSQL.${configured_port}"
+            eerror "HINT: Change PGPORT to listen on a different socket."
+            return 1
+        fi
+    done
+    set +f; unset IFS
+}
+
+start() {
+    checkconfig || return 1
+
+    ebegin "Starting PostgreSQL 10"
+
+    rm -f "${DATA_DIR%/}/postmaster.pid"
+
+    su - postgres -c \
+       "PGPORT=${configured_port} ${PG_EXTRA_ENV} ${PG_CTL} start \
+           -s -w -t ${START_TIMEOUT} -l ${DATA_DIR%/}/postmaster.log \
+           -D ${PGDATA} \
+           -o '--data-directory=${DATA_DIR} \
+               --unix-socket-directories=${PG_SOCKET_DIRECTORIES} \
+               ${PGOPTS}'"
+
+    local retval=$?
+
+    if [ $retval -ne 0 ] ; then
+        eerror "Check the log for a possible explanation of the above error."
+        eerror "The log may be located at:"
+        eerror "    ${DATA_DIR%/}/postmaster.log"
+        eerror "Or wherever you configured PostgreSQL 10 to log."
+    fi
+
+    eend $retval
+}
+
+stop() {
+    local seconds=$(( ${NICE_TIMEOUT} + ${RUDE_TIMEOUT} + ${FORCE_TIMEOUT} ))
+    ebegin "Stopping PostgreSQL 10 (this can take up to ${seconds} seconds)"
+
+    su - postgres -c \
+       "${PG_CTL} stop -t ${NICE_TIMEOUT} -s -D ${DATA_DIR} -m smart"
+    local retval=$?
+
+    if [ "${RUDE_QUIT}" != "NO" -a ${retval} -ne 0 ] ; then
+        einfo "Previous attempt failed. Trying RUDE_QUIT."
+        su - postgres -c \
+           "${PG_CTL} stop -t ${RUDE_TIMEOUT} -s -D ${DATA_DIR} -m fast"
+        retval=$?
+    fi
+
+    if [ "${FORCE_QUIT}" = "YES" -a ${retval} -ne 0 ] ; then
+        einfo "Previous step failed. Trying FORCE_QUIT."
+        ewarn "A recover-run might be executed on next startup."
+        su - postgres -c \
+           "${PG_CTL} stop -t ${FORCE_TIMEOUT} -s -D ${DATA_DIR} -m immediate"
+        retval=$?
+    fi
+
+    eend ${retval}
+}
+
+status() {
+    ebegin "Checking PostgreSQL 10 status"
+    su - postgres -c "${PG_CTL} status -D ${DATA_DIR}"
+    eend $?
+}
+
+description_reload="Simply sends the postgres process a SIGHUP signal, causing
+           it to reread its configuration files (postgresql.conf, pg_hba.conf,
+           etc.). This allows changing of configuration-file options that do not
+           require a complete restart to take effect."
+reload() {
+    ebegin "Reloading PostgreSQL 10 configuration"
+    su - postgres -c "${PG_CTL} reload -s -D ${DATA_DIR}"
+    eend $?
+}
+
+description_promote="If the server is in standby, it is commanded to exit
+            recovery and begin read-write operations."
+promote() {
+    ebegin "Promoting PostgreSQL 10"
+    su - postgres -c "${PG_CTL} promote -s -D ${DATA_DIR}"
+    eend $?
+}
diff --git a/pam.d/postgresql-10 b/pam.d/postgresql-10
new file mode 100644 (file)
index 0000000..b94d487
--- /dev/null
@@ -0,0 +1,6 @@
+# File autogenerated by pamd_mimic in pam eclass
+
+
+auth   include         system-auth
+account        include         system-auth
+session        include         system-auth
diff --git a/postgresql-10/psqlrc b/postgresql-10/psqlrc
new file mode 100644 (file)
index 0000000..8152cac
--- /dev/null
@@ -0,0 +1,8 @@
+--
+--     system-wide psql configuration file
+--
+--  This file is read before the .psqlrc file in the user's home directory.
+--
+--  Copy this to your installation's sysconf directory and rename it psqlrc.
+--  The sysconf directory can be identified via "pg_config --sysconfdir".
+--