mirror of
https://git.freebsd.org/ports.git
synced 2025-06-09 06:40:33 -04:00
2018-02-08 Security Update Release ================================== The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 10.2, 9.6.7, 9.5.11, 9.4.16, 9.3.21. This release fixes two security issues. This release also fixes issues with VACUUM, GIN indexes, and hash indexes that could lead to data corruption, as well as fixes for using parallel queries and logical replication. All users using the affected versions of PostgreSQL should update as soon as possible. Please see the notes on "Updating" below for any post-update steps that may be required. Please note that PostgreSQL changed its versioning scheme with the release of version 10.0, so updating to version 10.2 from 10.0 or 10.1 is considered a minor update. Security Issues --------------- Two security vulnerabilities have been fixed by this release: * CVE-2018-1052: Fix the processing of partition keys containing multiple expressions * CVE-2018-1053: Ensure that all temporary files made with "pg_upgrade" are non-world-readable Local fixes to the FreeBSD ports -------------------------------- Inform users about data checksums [1]. Make sure /usr/bin/su is used regardless of PATH settings [2]. Enable DTRACE by default [3]. PR: 214671 [1], 223157 [2], 215028 [3] Security: c602c791-0cf4-11e8-a2ec-6cc21735f730
116 lines
3.1 KiB
Bash
116 lines
3.1 KiB
Bash
#!/bin/sh
|
|
|
|
# $FreeBSD$
|
|
#
|
|
# PROVIDE: postgresql
|
|
# REQUIRE: sshd
|
|
# KEYWORD: shutdown
|
|
#
|
|
# Add the following line to /etc/rc.conf to enable PostgreSQL:
|
|
#
|
|
# postgresql_enable="YES"
|
|
# # optional
|
|
# postgresql_data="/var/db/%%PG_USER%%/data10"
|
|
# postgresql_flags="-w -s -m fast"
|
|
# postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"
|
|
# postgresql_class="default"
|
|
# postgresql_profiles=""
|
|
#
|
|
# See %%PREFIX%%/share/doc/postgresql/README-server for more info
|
|
#
|
|
# This scripts takes one of the following commands:
|
|
#
|
|
# start stop restart reload status initdb
|
|
#
|
|
# For postmaster startup options, edit ${postgresql_data}/postgresql.conf
|
|
|
|
command=%%PREFIX%%/bin/pg_ctl
|
|
|
|
. /etc/rc.subr
|
|
|
|
load_rc_config postgresql
|
|
|
|
# set defaults
|
|
postgresql_enable=${postgresql_enable:-"NO"}
|
|
postgresql_flags=${postgresql_flags:-"-w -s -m fast"}
|
|
postgresql_user=${postgresql_user:-"%%PG_USER%%"}
|
|
eval postgresql_data=${postgresql_data:-"~${postgresql_user}/data10"}
|
|
postgresql_class=${postgresql_class:-"default"}
|
|
postgresql_initdb_flags=${postgresql_initdb_flags:-"--encoding=utf-8 --lc-collate=C"}
|
|
|
|
name=postgresql
|
|
rcvar=postgresql_enable
|
|
extra_commands="reload initdb"
|
|
|
|
start_cmd="postgresql_command start"
|
|
stop_cmd="postgresql_command stop"
|
|
restart_cmd="postgresql_command restart"
|
|
reload_cmd="postgresql_command reload"
|
|
status_cmd="postgresql_command status"
|
|
|
|
initdb_cmd="postgresql_initdb"
|
|
|
|
su_cmd="/usr/bin/su"
|
|
|
|
if [ -n "$2" ]; then
|
|
profile="$2"
|
|
if [ "x${postgresql_profiles}" != "x" ]; then
|
|
eval postgresql_data="\${postgresql_${profile}_data:-}"
|
|
if [ "x${postgresql_data}" = "x" ]; then
|
|
echo "You must define a data directory (postgresql_${profile}_data)"
|
|
exit 1
|
|
fi
|
|
eval postgresql_enable="\${postgresql_${profile}_enable:-${postgresql_enable}}"
|
|
eval postgresql_data="\${postgresql_${profile}_data:-${postgresql_data}}"
|
|
eval postgresql_flags="\${postgresql_${profile}_flags:-${postgresql_flags}}"
|
|
eval postgresql_initdb_flags="\${postgresql_${profile}_initdb_flags:-${postgresql_initdb_flags}}"
|
|
fi
|
|
else
|
|
if [ "x${postgresql_profiles}" != "x" -a "x$1" != "x" ]; then
|
|
for profile in ${postgresql_profiles}; do
|
|
eval _enable="\${postgresql_${profile}_enable}"
|
|
case "x${_enable:-${postgresql_enable}}" in
|
|
x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
|
|
continue
|
|
;;
|
|
x[Yy][Ee][Ss])
|
|
;;
|
|
*)
|
|
if test -z "$_enable"; then
|
|
_var=postgresql_enable
|
|
else
|
|
_var=postgresql_"${profile}"_enable
|
|
fi
|
|
echo "Bad value" \
|
|
"'${_enable:-${postgresql_enable}}'" \
|
|
"for ${_var}. " \
|
|
"Profile ${profile} skipped."
|
|
continue
|
|
;;
|
|
esac
|
|
echo "===> postgresql profile: ${profile}"
|
|
%%PREFIX%%/etc/rc.d/postgresql $1 ${profile}
|
|
retcode="$?"
|
|
if [ "0${retcode}" -ne 0 ]; then
|
|
failed="${profile} (${retcode}) ${failed:-}"
|
|
else
|
|
success="${profile} ${success:-}"
|
|
fi
|
|
done
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
command_args="-D ${postgresql_data} ${postgresql_flags}"
|
|
|
|
postgresql_command()
|
|
{
|
|
${su_cmd} -l ${postgresql_user} -c "exec ${command} ${command_args} ${rc_arg}"
|
|
}
|
|
|
|
postgresql_initdb()
|
|
{
|
|
${su_cmd} -l -c ${postgresql_class} ${postgresql_user} -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
|
|
}
|
|
|
|
run_rc_command "$1"
|