summaryrefslogtreecommitdiff
path: root/databases/postgresql93-server
diff options
context:
space:
mode:
authorjperkin <jperkin>2014-03-11 14:34:36 +0000
committerjperkin <jperkin>2014-03-11 14:34:36 +0000
commit25883a57642b6f9b0d13deb4b3574a9d4e4eba29 (patch)
tree7ee5b13abb9f96749121a307db970b8b85e953da /databases/postgresql93-server
parent8a57b7d09b39ddfb89bcd11bfffa4a2881c0821f (diff)
downloadpkgsrc-25883a57642b6f9b0d13deb4b3574a9d4e4eba29.tar.gz
Import initial SMF support for individual packages.
Diffstat (limited to 'databases/postgresql93-server')
-rw-r--r--databases/postgresql93-server/Makefile4
-rw-r--r--databases/postgresql93-server/files/smf/manifest.xml37
-rw-r--r--databases/postgresql93-server/files/smf/postgresql.sh57
3 files changed, 97 insertions, 1 deletions
diff --git a/databases/postgresql93-server/Makefile b/databases/postgresql93-server/Makefile
index f6b578ce62f..0e330f2d6d7 100644
--- a/databases/postgresql93-server/Makefile
+++ b/databases/postgresql93-server/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.4 2014/02/23 11:25:54 adam Exp $
+# $NetBSD: Makefile,v 1.5 2014/03/11 14:34:37 jperkin Exp $
PKGNAME= ${DISTNAME:C/-/93-server-/}
COMMENT= PostgreSQL database server programs
@@ -63,6 +63,8 @@ PKG_GECOS.${PGUSER}= PostgreSQL database administrator
PKG_HOME.${PGUSER}= ${PGHOME}
RCD_SCRIPTS= pgsql
+SMF_METHODS= postgresql
+SMF_NAME= postgresql
.include "../../databases/postgresql93-client/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
diff --git a/databases/postgresql93-server/files/smf/manifest.xml b/databases/postgresql93-server/files/smf/manifest.xml
new file mode 100644
index 00000000000..73ebcb6d4c6
--- /dev/null
+++ b/databases/postgresql93-server/files/smf/manifest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type='manifest' name='@SMF_NAME@'>
+ <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
+ <create_default_instance enabled='false' />
+ <single_instance />
+ <dependency name='network' grouping='require_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/milestone/network:default' />
+ </dependency>
+ <dependency name='filesystem-local' grouping='require_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/system/filesystem/local:default' />
+ </dependency>
+ <method_context project='postgres'>
+ <method_credential user='@PGUSER@' group='@PGGROUP@' />
+ <method_environment>
+ <envvar name="LD_PRELOAD_32" value="/usr/lib/extendedFILE.so.1" />
+ </method_environment>
+ </method_context>
+ <exec_method type='method' name='start' exec='@PREFIX@/@SMF_METHOD_FILE.postgresql@ start' timeout_seconds='300' />
+ <exec_method type='method' name='stop' exec='@PREFIX@/@SMF_METHOD_FILE.postgresql@ stop' timeout_seconds='300' />
+ <exec_method type='method' name='refresh' exec='@PREFIX@/@SMF_METHOD_FILE.postgresql@ refresh' timeout_seconds='60' />
+ <property_group name='config' type='application'>
+ <propval name='data' type='astring' value='@PGHOME@/data' />
+ <propval name='log' type='astring' value='@VARBASE@/log/postgresql.log' />
+ </property_group>
+ <stability value='Evolving' />
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>PostgreSQL RDBMS</loctext>
+ </common_name>
+ <documentation>
+ <manpage title='postgres' section='1M' />
+ <doc_link name='postgresql.org' uri='http://postgresql.org' />
+ </documentation>
+ </template>
+ </service>
+</service_bundle>
diff --git a/databases/postgresql93-server/files/smf/postgresql.sh b/databases/postgresql93-server/files/smf/postgresql.sh
new file mode 100644
index 00000000000..4b3d4d19cf9
--- /dev/null
+++ b/databases/postgresql93-server/files/smf/postgresql.sh
@@ -0,0 +1,57 @@
+#!/sbin/sh
+# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+# ident "%Z%%M% %I% %E SMI"
+. /lib/svc/share/smf_include.sh
+
+# SMF_FMRI is the name of the target service. This allows multiple instances
+# to use the same script.
+
+getproparg()
+{ val=`svcprop -p $1 $SMF_FMRI`
+ [ -n "$val" ] && echo $val
+}
+
+PGBIN=@PREFIX@/bin
+PGDATA=`getproparg config/data`
+PGLOG=`getproparg config/log`
+
+if [ -z $SMF_FMRI ]; then
+ echo "SMF framework variables are not initialized."
+ exit $SMF_EXIT_ERR
+fi
+
+if [ -z $PGDATA ]; then
+
+ echo "postgresql/data property not set"
+ exit $SMF_EXIT_ERR_CONFIG
+fi
+
+if [ -z $PGLOG ]; then
+
+ echo "postgresql/log property not set"
+ exit $SMF_EXIT_ERR_CONFIG
+fi
+
+case "$1" in
+'start')
+ ulimit -n 10240
+ $PGBIN/pg_ctl -D $PGDATA -l $PGLOG start
+ ;;
+
+'stop')
+ $PGBIN/pg_ctl -D $PGDATA stop
+ ;;
+
+'refresh')
+ $PGBIN/pg_ctl -D $PGDATA reload
+ ;;
+*)
+
+ echo $"Usage: $0 {start|refresh}"
+ exit 1
+ ;;
+
+esac
+exit $SMF_EXIT_OK