titanofold    14/12/28 18:07:22

  Added:                postgresql.init-pre_9.2 postgresql.service
                        postgresql-check-db-dir postgresql.confd
                        postgresql.init postgresql.tmpfilesd
  Log:
  Eliminate the patch, initscript, and systemd tarball maintained out
  of tree, and:
    - Fix bug 460956 by changing directory mask to 1775 which allows
      all to access sockets, users within the group to create a socket,
      and restricts the deletion or modification to the socket owner or
      directory owner.
    - Fix bug 488246 by creating symbolic links to the configuration
      files when PGDATA and DATADIR differ.
    - Fix bug 511942 by warning if CONFIG_SYSVIPC is not enabled.
    - Fix bug 518522 by appending the plperl.on_init workaround to
      postgresql.conf. (This only affects new installs.)
    - Fix bug 529680 by removing the autotools inherit, and removing
      the sed statement. We don't change anything in configure.in, which
      means we don't need to regenerate the configure script.
    - Fix bug 530790 by correcting the typo.
    - Fix bug 531820 by removing the pre-initdb tests.
  
  (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key 
D1BBFDA0)

Revision  Changes    Path
1.1                  dev-db/postgresql/files/postgresql.init-pre_9.2

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.init-pre_9.2?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.init-pre_9.2?rev=1.1&content-type=text/plain

Index: postgresql.init-pre_9.2
===================================================================
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: 
/var/cvsroot/gentoo-x86/dev-db/postgresql/files/postgresql.init-pre_9.2,v 1.1 
2014/12/28 18:07:22 titanofold Exp $

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_path=$(get_config unix_socket_directory)
: ${socket_path:=/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-@SLOT@"
        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:@SLOT@"
        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 path and create it if
    # it doesn't exist.
    checkpath -d -m 1775 -o postgres:postgres ${socket_path}
    if [ -e ${socket_path%/}/.s.PGSQL.${configured_port} ] ; then
        eerror "Socket conflict."
        eerror "A server is already listening on:"
        eerror "    ${socket_path%/}/.s.PGSQL.${configured_port}"
        eerror "HINT: Change PGPORT to listen on a different socket."
        return 1
    fi
}

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 \
        --wait $((${START_TIMEOUT}*1000)) \
        --exec /usr/@LIBDIR@/postgresql-@SLOT@/bin/postgres \
        -- -D ${PGDATA} --data-directory=${DATA_DIR} --silent-mode=true \
        ${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 @SLOT@ 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/@LIBDIR@/postgresql-@SLOT@/bin/postgres \
        --retry ${retries} \
        --pidfile ${DATA_DIR%/}/postmaster.pid

    eend
}

reload() {
    ebegin "Reloading PostgreSQL configuration"
    kill -HUP $(head -n1 ${DATA_DIR%/}/postmaster.pid)
    eend $?
}



1.1                  dev-db/postgresql/files/postgresql.service

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.service?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.service?rev=1.1&content-type=text/plain

Index: postgresql.service
===================================================================
# It's not recommended to modify this file in-place, because it will be
# overwritten during package upgrades. If you want to customize, the
# best way is to create file
# "/etc/systemd/system/postgresql-@[email protected]/*.conf"
# containing your changes

# For example, if you want to change the server's port number to 5433,
# create a file named
# "/etc/systemd/system/postgresql-@[email protected]/port.conf"
# containing:
#       [Service]
#       Environment=PGPORT=5433
# This will override the setting appearing below.

[Unit]
Description=PostgreSQL database server
After=network.target

[Service]
Type=forking

User=postgres
Group=postgres

# Port number for server to listen on
Environment=PGPORT=5432

# Location of configuration files
Environment=PGDATA=/etc/postgresql-@SLOT@

# Where the data directory is located
Environment=DATA_DIR=/var/lib/postgresql/@SLOT@/data

# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog

ExecStartPre=/usr/bin/postgresql-@SLOT@-check-db-dir
ExecStart=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl start -D ${DATA_DIR} -s -l 
${DATA_DIR}/postmaster.log -o "-p ${PGPORT} -D ${PGDATA} 
--data-directory=${DATA_DIR}" -w -t 300
ExecStop=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl stop -D ${DATA_DIR} -s -m 
fast
ExecReload=/usr/@LIBDIR@/postgresql-@SLOT@/bin/pg_ctl reload -D ${DATA_DIR} -s

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000

[Install]
WantedBy=multi-user.target



1.1                  dev-db/postgresql/files/postgresql-check-db-dir

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql-check-db-dir?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql-check-db-dir?rev=1.1&content-type=text/plain

Index: postgresql-check-db-dir
===================================================================
#!/bin/sh
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: 
/var/cvsroot/gentoo-x86/dev-db/postgresql/files/postgresql-check-db-dir,v 1.1 
2014/12/28 18:07:22 titanofold Exp $

eerror() {
    echo "$@" >&2
}

# Check that DATA_DIR has been set
if [ -z ${DATA_DIR} ] ; then
    eerror "DATA_DIR not set"
    exit 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:@SLOT@"
    exit 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.
for file in postgresql pg_hba pg_ident ; do
    file="${PGDATA%/}/${file}.conf"
    if [ ! -f ${file} ] ; then
        eerror "${file} not found"
        eerror "HINT: mv ${DATA_DIR%/}/*.conf ${PGDATA}"
        exit 1
    fi
done



1.1                  dev-db/postgresql/files/postgresql.confd

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.confd?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.confd?rev=1.1&content-type=text/plain

Index: postgresql.confd
===================================================================
# 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:@SLOT@' 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-@SLOT@/"

# Where the data directory is located/to be created
DATA_DIR="/var/lib/postgresql/@SLOT@/data"

# Additional options to pass to initdb.
# See `man initdb' for available options.
PG_INITDB_OPTS="--encoding=UTF8"



1.4                  dev-db/postgresql/files/postgresql.init

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.init?rev=1.4&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.init?rev=1.4&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.init?r1=1.3&r2=1.4




1.1                  dev-db/postgresql/files/postgresql.tmpfilesd

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.tmpfilesd?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-db/postgresql/files/postgresql.tmpfilesd?rev=1.1&content-type=text/plain

Index: postgresql.tmpfilesd
===================================================================
d /run/postgresql 1775 postgres postgres -




Reply via email to