From: root Date: Tue, 10 Jan 2017 09:13:58 +0000 (+0100) Subject: saving uncommitted changes in /etc prior to emerge run X-Git-Url: https://git.uhu-banane.net/?a=commitdiff_plain;h=20937c75cc125348f6aab62ee9408540e72562a1;p=config%2Fhelga%2Fetc.git saving uncommitted changes in /etc prior to emerge run --- diff --git a/.etckeeper b/.etckeeper index 6fc6a37..1274973 100755 --- a/.etckeeper +++ b/.etckeeper @@ -451,6 +451,7 @@ maybe chmod 0644 'conf.d/ntpd' maybe chmod 0644 'conf.d/openvpn' maybe chmod 0644 'conf.d/pciparm' maybe chmod 0644 'conf.d/php-fpm' +maybe chmod 0644 'conf.d/postgresql-9.5' maybe chmod 0640 'conf.d/postgrey' maybe chmod 0644 'conf.d/pydoc-2.7' maybe chmod 0644 'conf.d/pydoc-3.4' @@ -1705,6 +1706,7 @@ maybe chmod 0755 'init.d/pciparm' maybe chmod 0755 'init.d/php-fpm' maybe chmod 0755 'init.d/policyd-weight' maybe chmod 0755 'init.d/postfix' +maybe chmod 0755 'init.d/postgresql-9.5' maybe chmod 0755 'init.d/postgrey' maybe chmod 0755 'init.d/procfs' maybe chmod 0755 'init.d/proftpd' @@ -2134,6 +2136,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-9.5' maybe chmod 0644 'pam.d/saslauthd' maybe chmod 0644 'pam.d/screen' maybe chmod 0644 'pam.d/shadow' diff --git a/conf.d/postgresql-9.5 b/conf.d/postgresql-9.5 new file mode 100644 index 0000000..f50cf5f --- /dev/null +++ b/conf.d/postgresql-9.5 @@ -0,0 +1,58 @@ +# 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:9.5' 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-9.5/" + +# Where the data directory is located/to be created +DATA_DIR="/var/lib/postgresql/9.5/data" + +# Additional options to pass to initdb. +# See `man initdb' for available options. +PG_INITDB_OPTS="--encoding=UTF8" diff --git a/init.d/postgresql-9.5 b/init.d/postgresql-9.5 new file mode 100755 index 0000000..04376f5 --- /dev/null +++ b/init.d/postgresql-9.5 @@ -0,0 +1,143 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +extra_started_commands="reload" + +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}} +socket_paths=$(get_config unix_socket_directories) +: ${socket_paths:=/run/postgresql} + +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-9.5" + 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:9.5" + 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 ${socket_paths}; do + checkpath -d -m 1775 -o postgres: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" + + rm -f ${DATA_DIR%/}/postmaster.pid + + local extraenv + local x + for x in ${PG_EXTRA_ENV} ; do + extraenv="${extraenv} --env ${x}" + done + + start-stop-daemon --start \ + --user postgres \ + --env "PGPORT=${configured_port}" \ + ${extraenv} \ + --pidfile ${DATA_DIR%/}/postmaster.pid \ + --exec /usr/lib64/postgresql-9.5/bin/pg_ctl \ + -- start -s -w -t ${START_TIMEOUT} -l ${DATA_DIR%/}/postmaster.log \ + -D ${PGDATA} -o "--data-directory=${DATA_DIR} ${PGOPTS}" + local retval=$? + + if [ $retval -ne 0 ] ; then + eerror "Check the log for a possible explanation of the above error. The log may be" + eerror " ${DATA_DIR%/}/postmaster.log" + eerror "Or wherever you configured PostgreSQL 9.5 log messages to be sent." + eend $retval + return $retval + fi + + eend $retval +} + +stop() { + local seconds=$(( ${NICE_TIMEOUT} + ${RUDE_TIMEOUT} + ${FORCE_TIMEOUT} )) + ebegin "Stopping PostgreSQL (this can take up to ${seconds} seconds)" + + local retval + local retries=SIGTERM/${NICE_TIMEOUT} + + if [ "${RUDE_QUIT}" != "NO" ] ; then + einfo "RUDE_QUIT enabled." + retries="${retries}/SIGINT/${RUDE_TIMEOUT}" + fi + if [ "${FORCE_QUIT}" = "YES" ] ; then + einfo "FORCE_QUIT enabled." + ewarn "A recover-run might be executed on next startup." + retries="${retries}/SIGQUIT/${FORCE_TIMEOUT}" + fi + + # Loops through nice, rude, and force quit in one go. + start-stop-daemon --stop \ + --exec /usr/lib64/postgresql-9.5/bin/postgres \ + --retry ${retries} \ + --pidfile ${DATA_DIR%/}/postmaster.pid + + eend +} + +reload() { + ebegin "Reloading PostgreSQL configuration" + kill -HUP $(head -n1 ${DATA_DIR%/}/postmaster.pid) + eend $? +} diff --git a/pam.d/postgresql-9.5 b/pam.d/postgresql-9.5 new file mode 100644 index 0000000..b94d487 --- /dev/null +++ b/pam.d/postgresql-9.5 @@ -0,0 +1,6 @@ +# File autogenerated by pamd_mimic in pam eclass + + +auth include system-auth +account include system-auth +session include system-auth