summaryrefslogtreecommitdiff
path: root/databases/postgresql18-server/files
diff options
context:
space:
mode:
Diffstat (limited to 'databases/postgresql18-server/files')
-rw-r--r--databases/postgresql18-server/files/502.pgsql.in114
-rw-r--r--databases/postgresql18-server/files/dot.cshrc.in11
-rw-r--r--databases/postgresql18-server/files/dot.profile.in22
-rw-r--r--databases/postgresql18-server/files/patch-src-Makefile.shlib11
-rw-r--r--databases/postgresql18-server/files/patch-src-backend-Makefile11
-rw-r--r--databases/postgresql18-server/files/patch-src_backend_utils_misc_postgresql.conf.sample10
-rw-r--r--databases/postgresql18-server/files/pkg-message-client.in38
-rw-r--r--databases/postgresql18-server/files/pkg-message-contrib.in9
-rw-r--r--databases/postgresql18-server/files/pkg-message-plperl.in9
-rw-r--r--databases/postgresql18-server/files/pkg-message-plpython.in9
-rw-r--r--databases/postgresql18-server/files/pkg-message-pltcl.in9
-rw-r--r--databases/postgresql18-server/files/pkg-message-server.in70
-rw-r--r--databases/postgresql18-server/files/pkgIndex.tcl.in4
-rw-r--r--databases/postgresql18-server/files/postgresql.in125
14 files changed, 452 insertions, 0 deletions
diff --git a/databases/postgresql18-server/files/502.pgsql.in b/databases/postgresql18-server/files/502.pgsql.in
new file mode 100644
index 000000000000..604ad3dadab8
--- /dev/null
+++ b/databases/postgresql18-server/files/502.pgsql.in
@@ -0,0 +1,114 @@
+#!/bin/sh
+#
+# Maintenance shell script to vacuum and backup database
+# Put this in /usr/local/etc/periodic/daily, and it will be run
+# every night
+#
+# Written by Palle Girgensohn <girgen@pingpong.net>
+#
+# In public domain, do what you like with it,
+# and use it at your own risk... :)
+#
+
+# Define these variables in either /etc/periodic.conf or
+# /etc/periodic.conf.local to override the default values.
+#
+# daily_pgsql_backup_enable="YES" # do backup of all databases
+# daily_pgsql_backup_enable="foo bar db1 db2" # only do backup of a limited selection of databases
+# daily_pgsql_vacuum_enable="YES" # do vacuum
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]
+then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+: ${daily_pgsql_user:="%%PG_USER%%"}
+: ${daily_pgsql_port:=5432}
+: ${daily_pgsql_vacuum_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port} -qaz"}
+: ${daily_pgsql_pgdump_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port} -bF c"}
+: ${daily_pgsql_pgdumpall_globals_args:="-U ${daily_pgsql_user} -p ${daily_pgsql_port}"}
+# backupdir is relative to ~pgsql home directory unless it begins with a slash:
+: ${daily_pgsql_backupdir:="~${daily_pgsql_user}/backups"}
+: ${daily_pgsql_savedays:="7"}
+
+# allow '~' in directory name
+eval backupdir=${daily_pgsql_backupdir}
+
+rc=0
+
+pgsql_backup() {
+ # daily_pgsql_backupdir must be writeable by user %%PG_USER%%
+ # ~%%PG_USER%% is just that under normal circumstances,
+ # but this might not be where you want the backups...
+ if [ ! -d ${backupdir} ] ; then
+ echo Creating ${backupdir}
+ mkdir -m 700 ${backupdir}; chown ${daily_pgsql_user} ${backupdir}
+ fi
+
+ echo
+ echo "PostgreSQL backups"
+
+ # Protect the data
+ umask 077
+ rc=$?
+ now=`date "+%Y-%m-%dT%H:%M:%S"`
+ file=${daily_pgsql_backupdir}/pgglobals_${now}
+ su -l ${daily_pgsql_user} -c \
+ "umask 077; pg_dumpall -g ${daily_pgsql_pgdumpall_globals_args} | gzip -9 > ${file}.gz"
+
+ db=$1
+ while shift; do
+ echo -n " $db"
+ file=${backupdir}/pgdump_${db}_${now}
+ su -l ${daily_pgsql_user} -c "umask 077; pg_dump ${daily_pgsql_pgdump_args} -f ${file} ${db}"
+ [ $? -gt 0 ] && rc=3
+ db=$1
+ done
+
+ if [ $rc -gt 0 ]; then
+ echo
+ echo "Errors were reported during backup."
+ fi
+
+ # cleaning up old data
+ find ${backupdir} \( -name 'pgdump_*' -o -name 'pgglobals_*' -o -name '*.dat.gz' -o -name 'toc.dat' \) \
+ -a -mtime +${daily_pgsql_savedays} -delete
+ echo
+}
+
+case "$daily_pgsql_backup_enable" in
+ [Yy][Ee][Ss])
+ dbnames=`su -l ${daily_pgsql_user} -c "umask 077; psql -U ${daily_pgsql_user} -p ${daily_pgsql_port} -q -t -A -d template1 -c SELECT\ datname\ FROM\ pg_database\ WHERE\ datname!=\'template0\'"`
+ pgsql_backup $dbnames
+ ;;
+
+ [Nn][Oo])
+ ;;
+
+ "")
+ ;;
+
+ *)
+ pgsql_backup $daily_pgsql_backup_enable
+ ;;
+esac
+
+case "$daily_pgsql_vacuum_enable" in
+ [Yy][Ee][Ss])
+
+ echo
+ echo "PostgreSQL vacuum"
+ su -l ${daily_pgsql_user} -c "vacuumdb ${daily_pgsql_vacuum_args}"
+ if [ $? -gt 0 ]
+ then
+ echo
+ echo "Errors were reported during vacuum."
+ rc=3
+ fi
+ ;;
+esac
+
+exit $rc
diff --git a/databases/postgresql18-server/files/dot.cshrc.in b/databases/postgresql18-server/files/dot.cshrc.in
new file mode 100644
index 000000000000..17c9ee69a7d0
--- /dev/null
+++ b/databases/postgresql18-server/files/dot.cshrc.in
@@ -0,0 +1,11 @@
+setenv PGLIB %%PREFIX%%/lib
+
+# note: PGDATA can be overridden by the -D startup option
+setenv PGDATA $HOME/data96
+
+#You might want to set some locale stuff here
+#setenv PGDATESTYLE ISO
+#setenv LC_ALL sv_SE.ISO_8859-1
+
+# if you want to make regression tests use this TZ
+#setenv TZ PST8PDT
diff --git a/databases/postgresql18-server/files/dot.profile.in b/databases/postgresql18-server/files/dot.profile.in
new file mode 100644
index 000000000000..5be3e6a36ca9
--- /dev/null
+++ b/databases/postgresql18-server/files/dot.profile.in
@@ -0,0 +1,22 @@
+PGLIB=%%PREFIX%%/lib
+
+# note: PGDATA can be overridden by the -D startup option
+PGDATA=${HOME}/data96
+
+export PATH PGLIB PGDATA
+
+# if you use the periodic script from share/postgresql/502.pgsql, you
+# can set these
+#PGDUMP_ARGS="-b -F c"
+#PGBACKUPDIR=${HOME}/backups
+#PGBACKUP_SAVE_DAYS=7
+#export PGBACKUPDIR PGDUMP_ARGS PGBACKUP_SAVE_DAYS
+
+#You might want to set some locale stuff here
+#PGDATESTYLE=ISO
+#LC_ALL=sv_SE.ISO_8859-1
+#export PGDATESTYLE LC_ALL
+
+# if you want to make regression tests use this TZ
+#TZ=PST8PDT
+#export TZ
diff --git a/databases/postgresql18-server/files/patch-src-Makefile.shlib b/databases/postgresql18-server/files/patch-src-Makefile.shlib
new file mode 100644
index 000000000000..2435ffe1d280
--- /dev/null
+++ b/databases/postgresql18-server/files/patch-src-Makefile.shlib
@@ -0,0 +1,11 @@
+--- src/Makefile.shlib.bak 2013-05-06 22:57:06.000000000 +0200
++++ src/Makefile.shlib 2013-05-12 23:33:16.000000000 +0200
+@@ -87,7 +87,7 @@
+ # Testing the soname variable is a reliable way to determine whether a
+ # linkable library is being built.
+ soname = $(shlib_major)
+-pkgconfigdir = $(libdir)/pkgconfig
++pkgconfigdir = $(prefix)/libdata/pkgconfig
+ else
+ # Naming convention for dynamically loadable modules
+ shlib = $(NAME)$(DLSUFFIX)
diff --git a/databases/postgresql18-server/files/patch-src-backend-Makefile b/databases/postgresql18-server/files/patch-src-backend-Makefile
new file mode 100644
index 000000000000..ce8a8d558de1
--- /dev/null
+++ b/databases/postgresql18-server/files/patch-src-backend-Makefile
@@ -0,0 +1,11 @@
+--- src/backend/Makefile.orig 2009-07-07 15:58:33.000000000 +0200
++++ src/backend/Makefile 2009-07-07 15:58:57.000000000 +0200
+@@ -107,6 +107,8 @@
+ # Update the commonly used headers before building the subdirectories
+ $(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h
+
++symlinks: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/storage/lwlocknames.h
++
+
+ # The postgres.o target is needed by the rule in Makefile.global that
+ # creates the exports file when MAKE_EXPORTS = true.
diff --git a/databases/postgresql18-server/files/patch-src_backend_utils_misc_postgresql.conf.sample b/databases/postgresql18-server/files/patch-src_backend_utils_misc_postgresql.conf.sample
new file mode 100644
index 000000000000..9469421174a0
--- /dev/null
+++ b/databases/postgresql18-server/files/patch-src_backend_utils_misc_postgresql.conf.sample
@@ -0,0 +1,10 @@
+--- src/backend/utils/misc/postgresql.conf.sample.orig 2016-10-24 20:08:51 UTC
++++ src/backend/utils/misc/postgresql.conf.sample
+@@ -330,6 +330,7 @@
+
+ # - Where to Log -
+
++log_destination = 'syslog'
+ #log_destination = 'stderr' # Valid values are combinations of
+ # stderr, csvlog, syslog, and eventlog,
+ # depending on platform. csvlog
diff --git a/databases/postgresql18-server/files/pkg-message-client.in b/databases/postgresql18-server/files/pkg-message-client.in
new file mode 100644
index 000000000000..bb0ecefef696
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-client.in
@@ -0,0 +1,38 @@
+[
+{ type: install
+ message: <<EOM
+The PostgreSQL port has a collection of "side orders":
+
+postgresql-docs
+ For all of the html documentation
+
+p5-Pg
+ A perl5 API for client access to PostgreSQL databases.
+
+postgresql-tcltk
+ If you want tcl/tk client support.
+
+postgresql-jdbc
+ For Java JDBC support.
+
+postgresql-odbc
+ For client access from unix applications using ODBC as access
+ method. Not needed to access unix PostgreSQL servers from Win32
+ using ODBC. See below.
+
+ruby-postgres, py-psycopg
+ For client access to PostgreSQL databases using the ruby & python
+ languages.
+
+postgresql-plperl, postgresql-pltcl & postgresql-plruby
+ For using perl5, tcl & ruby as procedural languages.
+
+postgresql-contrib
+ Lots of contributed utilities, postgresql functions and
+ datatypes. There you find pg_standby, pgcrypto and many other cool
+ things.
+
+etc...
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkg-message-contrib.in b/databases/postgresql18-server/files/pkg-message-contrib.in
new file mode 100644
index 000000000000..006f700a3ae1
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-contrib.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+The PostgreSQL contrib utilities have been installed. Please see
+%%DOCSDIR%%/README-contrib
+for more information.
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkg-message-plperl.in b/databases/postgresql18-server/files/pkg-message-plperl.in
new file mode 100644
index 000000000000..dbda7daff5c2
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-plperl.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+PL/Perl has been installed. Check the createlang(l) manpage for more
+info. You can install PL/Perl as trusted or untrusted, by using either
+"createlang plperl" or "createlang plperlu".
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkg-message-plpython.in b/databases/postgresql18-server/files/pkg-message-plpython.in
new file mode 100644
index 000000000000..3bd80d73d177
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-plpython.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+PL/Python has been installed. Check the createlang(l) manpage for more
+info. You can install PL/Python by using "createlang plpythonu" (it
+exists as an untrusted language only).
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkg-message-pltcl.in b/databases/postgresql18-server/files/pkg-message-pltcl.in
new file mode 100644
index 000000000000..c1776f7d6fb3
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-pltcl.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+ message: <<EOM
+PL/Tcl has been installed. Check the createlang(l) manpage for more
+info. You can install pltcl as trusted or untrusted, by using either
+"createlang pltcl" or "createlang pltclu".
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkg-message-server.in b/databases/postgresql18-server/files/pkg-message-server.in
new file mode 100644
index 000000000000..03eee1b31117
--- /dev/null
+++ b/databases/postgresql18-server/files/pkg-message-server.in
@@ -0,0 +1,70 @@
+[
+{ type: install
+ message: <<EOM
+For procedural languages and postgresql functions, please note that
+you might have to update them when updating the server.
+
+If you have many tables and many clients running, consider raising
+kern.maxfiles using sysctl(8), or reconfigure your kernel
+appropriately.
+
+The port is set up to use autovacuum for new databases, but you might
+also want to vacuum and perhaps backup your database regularly. There
+is a periodic script, %%PREFIX%%/etc/periodic/daily/502.pgsql, that
+you may find useful. You can use it to backup and perform vacuum on all
+databases nightly. Per default, it performs `vacuum analyze'. See the
+script for instructions. For autovacuum settings, please review
+~%%PG_USER%%/data/postgresql.conf.
+
+If you plan to access your PostgreSQL server using ODBC, please
+consider running the SQL script %%PREFIX%%/share/postgresql/odbc.sql
+to get the functions required for ODBC compliance.
+
+Please note that if you use the rc script,
+%%PREFIX%%/etc/rc.d/postgresql, to initialize the database, unicode
+(UTF-8) will be used to store character data by default. Set
+postgresql_initdb_flags or use login.conf settings described below to
+alter this behaviour. See the start rc script for more info.
+
+To set limits, environment stuff like locale and collation and other
+things, you can set up a class in /etc/login.conf before initializing
+the database. Add something similar to this to /etc/login.conf:
+---
+%%PG_USER%%:\
+ :lang=en_US.UTF-8:\
+ :setenv=LC_COLLATE=C:\
+ :tc=default:
+---
+and run `cap_mkdb /etc/login.conf'.
+Then add 'postgresql_login_class="%%PG_USER%%"' to /etc/rc.conf, or
+set it as the %%PG_USER%% user's login class in /etc/passwd.
+
+======================================================================
+
+To use PostgreSQL, enable it in rc.conf using
+
+ sysrc postgresql_enable=yes
+
+To initialize the database, run
+
+ service postgresql initdb
+
+You can then start PostgreSQL by running:
+
+ service postgresql start
+
+For postmaster settings, see ~%%PG_USER%%/data/postgresql.conf
+
+NB. FreeBSD's PostgreSQL port logs to syslog by default
+ See ~%%PG_USER%%/data/postgresql.conf for more info
+
+NB. If you're not using a checksumming filesystem like ZFS, you might
+ wish to enable data checksumming. It can be enabled during
+ the initdb phase, by adding the "--data-checksums" flag to
+ the postgresql_initdb_flags rcvar. Otherwise you can enable it later by
+ using pg_checksums. Check the initdb(1) manpage for more info
+ and make sure you understand the performance implications.
+
+EOM
+}
+]
diff --git a/databases/postgresql18-server/files/pkgIndex.tcl.in b/databases/postgresql18-server/files/pkgIndex.tcl.in
new file mode 100644
index 000000000000..bd8329b15c69
--- /dev/null
+++ b/databases/postgresql18-server/files/pkgIndex.tcl.in
@@ -0,0 +1,4 @@
+# Package-index file for Pgtcl-package. Enables you to load PostgreSQL
+# interface functions right into you TCL-interpreter as simply as
+# package require Pgtcl
+package ifneeded Pgtcl 1.3 "load %%PREFIX%%/lib/libpgtcl.so"
diff --git a/databases/postgresql18-server/files/postgresql.in b/databases/postgresql18-server/files/postgresql.in
new file mode 100644
index 000000000000..073d3a64c004
--- /dev/null
+++ b/databases/postgresql18-server/files/postgresql.in
@@ -0,0 +1,125 @@
+#!/bin/sh
+
+# PROVIDE: postgresql
+# REQUIRE: DAEMON mountlate
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf to enable PostgreSQL:
+#
+# postgresql_enable="YES"
+# # optional
+# postgresql_data="/var/db/%%PG_USER%%/data%%PG_VERSION%%"
+# postgresql_flags="-w -s -m fast"
+# postgresql_initdb_flags="--encoding=utf-8 --lc-collate=C"
+# # leave empty to use the login class set in in /etc/passwd:
+# postgresql_login_class="my_custom_login_class"
+# 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:="NO"}
+: ${postgresql_flags:="-w -s -m fast"}
+: ${postgresql_user:="%%PG_USER%%"}
+eval _pgdir="~${postgresql_user}/data%%PG_VERSION%%"
+: ${postgresql_data:="${_pgdir}"}
+: ${postgresql_login_class:=""}
+: ${postgresql_initdb_flags:="--encoding=utf-8 --lc-collate=C"}
+: ${postgresql_svcj_options:="net_basic"}
+
+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"
+promote_cmd="postgresql_command promote"
+
+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_login_class="\${postgresql_${profile}_login_class:-${postgresql_login_class}}"
+ 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="-l /dev/null -D ${postgresql_data} ${postgresql_flags}"
+
+postgresql_command()
+{
+ echo "${rc_arg} ${name}"
+ ${su_cmd} ${postgresql_login_class:+-c ${postgresql_login_class}} \
+ -l ${postgresql_user} \
+ -c "exec ${command} ${command_args} ${rc_arg}"
+}
+
+postgresql_initdb()
+{
+ echo "${rc_arg} ${name}"
+ ${su_cmd} ${postgresql_login_class:+-c ${postgresql_login_class}} \
+ -l ${postgresql_user} \
+ -c "exec %%PREFIX%%/bin/initdb ${postgresql_initdb_flags} -D ${postgresql_data} -U ${postgresql_user}"
+}
+
+run_rc_command "$1"