summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoerg <joerg>2010-02-08 14:37:54 +0000
committerjoerg <joerg>2010-02-08 14:37:54 +0000
commit3194bdbe808e2d6cb0d37a76016a8f06c04971bf (patch)
tree25cc0120b8546c59eff766c8729724bf826cdd59
parent443d5a2c4c3c2c45a49e22f7c83bc4bd4868d03c (diff)
downloadpkgsrc-3194bdbe808e2d6cb0d37a76016a8f06c04971bf.tar.gz
Initial import of spawn-fcgi-1.6.3:
spawn-fcgi is a small utility to start external FastCGI applications. It takes care of various common tasks to simplify deployment: - setuid/setgid - current working directory - chroot - socket creation and permissions in the case of Unix Domain Sockets - forking a number of worker processes
-rw-r--r--www/spawn-fcgi/DESCR7
-rw-r--r--www/spawn-fcgi/Makefile19
-rw-r--r--www/spawn-fcgi/PLIST4
-rw-r--r--www/spawn-fcgi/distinfo5
-rw-r--r--www/spawn-fcgi/files/spawnfcgi.sh128
5 files changed, 163 insertions, 0 deletions
diff --git a/www/spawn-fcgi/DESCR b/www/spawn-fcgi/DESCR
new file mode 100644
index 00000000000..417444784ab
--- /dev/null
+++ b/www/spawn-fcgi/DESCR
@@ -0,0 +1,7 @@
+spawn-fcgi is a small utility to start external FastCGI applications.
+It takes care of various common tasks to simplify deployment:
+- setuid/setgid
+- current working directory
+- chroot
+- socket creation and permissions in the case of Unix Domain Sockets
+- forking a number of worker processes
diff --git a/www/spawn-fcgi/Makefile b/www/spawn-fcgi/Makefile
new file mode 100644
index 00000000000..20d5068fac6
--- /dev/null
+++ b/www/spawn-fcgi/Makefile
@@ -0,0 +1,19 @@
+# $NetBSD: Makefile,v 1.1.1.1 2010/02/08 14:37:54 joerg Exp $
+
+DISTNAME= spawn-fcgi-1.6.3
+CATEGORIES= www
+MASTER_SITES= http://www.lighttpd.net/download/
+
+MAINTAINER= joerg@NetBSD.org
+HOMEPAGE= http://redmine.lighttpd.net/projects/spawn-fcgi
+COMMENT= FastCGI deployment tool
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+CONFLICTS= lighttpd<1.4.23
+
+GNU_CONFIGURE= yes
+
+RCD_SCRIPTS= spawn-fcgi
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/www/spawn-fcgi/PLIST b/www/spawn-fcgi/PLIST
new file mode 100644
index 00000000000..42541f8c4cc
--- /dev/null
+++ b/www/spawn-fcgi/PLIST
@@ -0,0 +1,4 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2010/02/08 14:37:54 joerg Exp $
+bin/spawn-fcgi
+man/man1/spawn-fcgi.1
+share/examples/rc.d/spawn-fcgi
diff --git a/www/spawn-fcgi/distinfo b/www/spawn-fcgi/distinfo
new file mode 100644
index 00000000000..d23796f30e4
--- /dev/null
+++ b/www/spawn-fcgi/distinfo
@@ -0,0 +1,5 @@
+$NetBSD: distinfo,v 1.1.1.1 2010/02/08 14:37:54 joerg Exp $
+
+SHA1 (spawn-fcgi-1.6.3.tar.gz) = 2b97ea57d9d79745fe8d6051d830fa507b421169
+RMD160 (spawn-fcgi-1.6.3.tar.gz) = 4c09fb3d8b03e17b491c733469570d538d3ff5ce
+Size (spawn-fcgi-1.6.3.tar.gz) = 97921 bytes
diff --git a/www/spawn-fcgi/files/spawnfcgi.sh b/www/spawn-fcgi/files/spawnfcgi.sh
new file mode 100644
index 00000000000..477fce009de
--- /dev/null
+++ b/www/spawn-fcgi/files/spawnfcgi.sh
@@ -0,0 +1,128 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: spawnfcgi.sh,v 1.1.1.1 2010/02/08 14:37:54 joerg Exp $
+#
+# PROVIDE: spawnfcgi
+# BEFORE: apache cherokee lighttpd nginx
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="spawnfcgi"
+rcvar=$name
+command="@PREFIX@/bin/spawn-fcgi"
+start_cmd="spawnfcgi_start"
+stop_cmd="spawnfcgi_stop"
+status_cmd="spawnfcgi_status"
+pidfile_base="@VARBASE@/run/spawnfcgi-"
+
+spawnfcgi_pid()
+{
+ pidfile=${pidfile_base}$1
+ job_command=$(eval echo \$${name}_${job}_command)
+ rc_pid=`check_pidfile "$pidfile" $job_command`
+}
+
+spawnfcgi_start()
+{
+ rv=0
+ for job in "" $spawnfcgi_jobs; do
+ [ -z $job ] && continue
+ spawnfcgi_pid $job
+ if [ -n "${rc_pid}" ]; then
+ echo "${name}/$job already running (pid=${rc_pid})."
+ rv=1
+ continue
+ fi
+ job_command=$(eval echo \$${name}_${job}_command)
+ job_args=$(eval echo \$${name}_${job}_args)
+ job_user=$(eval echo \$${name}_${job}_user)
+ job_cwd=$(eval echo \$${name}_${job}_cwd)
+ job_socket=$(eval echo \$${name}_${job}_socket)
+ job_socket_mode=$(eval echo \$${name}_${job}_socket_mode)
+ job_address=$(eval echo \$${name}_${job}_address)
+ job_children=$(eval echo \$${name}_${job}_children)
+ job_php_children=$(eval echo \$${name}_${job}_php_children)
+
+ if [ -n "${job_php_children}" ]; then
+ opt_C="-C"
+ else
+ opt_C=""
+ fi
+ if [ -n "${job_children}" ]; then
+ opt_F="-F"
+ else
+ opt_F=""
+ fi
+ if [ -n "${job_socket_mode}" ]; then
+ opt_m="-m"
+ else
+ opt_m=""
+ fi
+ if [ -n "${job_socket}" ]; then
+ opt_s="-s"
+ else
+ opt_s=""
+ fi
+ if [ -n "${job_address}" ]; then
+ opt_a="-a"
+ else
+ opt_a=""
+ fi
+ if [ -n "${job_port}" ]; then
+ opt_p="-p"
+ else
+ opt_p=""
+ fi
+ echo "Starting ${name}/$job."
+ $command -f ${job_command} \
+ -u ${job_user} \
+ -d ${job_cwd:-/} \
+ $opt_C ${job_php_children} \
+ $opt_F ${job_children} \
+ $opt_s ${job_socket} \
+ $opt_m ${job_socket_mode} \
+ $opt_a ${job_address} \
+ $opt_p ${job_port} \
+ -P ${pidfile_base}${job} -- \
+ ${job_command} ${job_args}
+ done
+ return $rv
+}
+
+spawnfcgi_stop()
+{
+ rv=0
+ for job in "" $spawnfcgi_jobs; do
+ [ -z $job ] && continue
+ spawnfcgi_pid $job
+ if [ -n "${rc_pid}" ]; then
+ echo "Stopping ${name}/$job."
+ kill -TERM ${rc_pid}
+ wait_for_pids ${rc_pid}
+ else
+ echo "${name}/$job is not running."
+ rv=1
+ fi
+ done
+ return $rv
+}
+
+spawnfcgi_status()
+{
+ rv=0
+ for job in "" $spawnfcgi_jobs; do
+ [ -z $job ] && continue
+ spawnfcgi_pid $job
+ if [ -n "${rc_pid}" ]; then
+ echo "${name}/${job} is running as pid ${rc_pid}."
+ else
+ echo "${name}/${job} is not running."
+ rv=1
+ fi
+ done
+ return $rv
+}
+
+load_rc_config $name
+run_rc_command $1