Add a subpackage to make it easy to run fcgi-cgi in a chroot jail,

requested by Johan Huldtgren, thanks dhill for testing.
This commit is contained in:
sthen 2012-04-10 19:34:52 +00:00
parent 274a4dd29b
commit cf97d0ad2e
9 changed files with 61 additions and 10 deletions

View File

@ -1,8 +1,12 @@
# $OpenBSD: Makefile,v 1.5 2012/04/03 19:12:38 sthen Exp $
# $OpenBSD: Makefile,v 1.6 2012/04/10 19:34:52 sthen Exp $
COMMENT= wrapper to run CGI applications via FastCGI
COMMENT-main= wrapper to run CGI applications via FastCGI
COMMENT-static= static-linked fcgi-cgi wrapper for chroot use
DISTNAME= fcgi-cgi-0.1.8
V= 0.1.8
DISTNAME= fcgi-cgi-$V
PKGNAME-main= fcgi-cgi-$V
PKGNAME-static= fcgi-cgi-static-$V
REVISION= 1
CATEGORIES= www
@ -14,14 +18,16 @@ PERMIT_PACKAGE_FTP= Yes
PERMIT_DISTFILES_CDROM= Yes
PERMIT_DISTFILES_FTP= Yes
WANTLIB += c ev glib-2.0 pthread
WANTLIB += c ev glib-2.0 m pthread
MASTER_SITES= http://cgit.lighttpd.net/fcgi-cgi.git/snapshot/ \
http://spacehopper.org/mirrors/
SEPARATE_BUILD= Yes
MULTI_PACKAGES= -main -static
RUN_DEPENDS= www/spawn-fcgi
RUN_DEPENDS-static= www/fcgi-cgi,-main
LIB_DEPENDS= devel/libev \
devel/glib2
@ -30,12 +36,18 @@ MODULES= devel/gettext
CONFIGURE_STYLE= autoconf automake
AUTOCONF_VERSION= 2.68
AUTOMAKE_VERSION= 1.11
PREFIX-static= /var/www/${TRUEPREFIX}
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include ${CPPFLAGS}" \
LDFLAGS="-L${LOCALBASE}/lib ${LDFLAGS}"
post-patch:
cd ${WRKSRC}; AUTOCONF_VERSION=${AUTOCONF_VERSION} \
AUTOMAKE_VERSION=${AUTOMAKE_VERSION} ./autogen.sh
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include ${CPPFLAGS}" \
LDFLAGS="-L${LOCALBASE}/lib ${LDFLAGS}"
post-install:
${INSTALL_PROGRAM_DIR} ${WRKINST}${PREFIX-static}/bin
mv ${PREFIX}/bin/fcgi-cgi-static \
${WRKINST}${PREFIX-static}/bin/fcgi-cgi
.include <bsd.port.mk>

View File

@ -0,0 +1,14 @@
$OpenBSD: patch-Makefile_am,v 1.1 2012/04/10 19:34:52 sthen Exp $
--- Makefile.am.orig Thu Oct 28 22:43:23 2010
+++ Makefile.am Tue Apr 10 15:47:59 2012
@@ -4,5 +4,9 @@ man1_MANS=fcgi-cgi.1
AM_CFLAGS=$(GLIB_CFLAGS)
fcgi_cgi_LDADD=$(GLIB_LIBS)
-bin_PROGRAMS=fcgi-cgi
+bin_PROGRAMS=fcgi-cgi fcgi-cgi-static
fcgi_cgi_SOURCES=fastcgi.c fcgi-cgi.c
+
+fcgi_cgi_static_LDADD=$(fcgi_cgi_LDADD)
+fcgi_cgi_static_LDFLAGS=-static
+fcgi_cgi_static_SOURCES=$(fcgi_cgi_SOURCES)

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-configure_ac,v 1.1 2012/04/10 19:34:52 sthen Exp $
--- configure.ac.orig Tue Apr 10 15:49:39 2012
+++ configure.ac Tue Apr 10 15:49:32 2012
@@ -22,7 +22,7 @@ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16.0, [
# lib ev
AC_CHECK_HEADERS([ev.h], [], [AC_MSG_ERROR("ev.h not found")])
AC_CHECK_LIB([ev], [ev_time], [
- LIBS="-lev ${LIBS}"
+ LIBS="-lev -lm ${LIBS}"
AC_DEFINE([HAVE_LIBEV], [1], [ev_time in -lev])
], [AC_MSG_ERROR("libev not found")])

View File

@ -0,0 +1,2 @@
This package contains a statically-linked version of fcgi-cgi for easier
use when CGI applications are run in a chroot() jail.

View File

@ -0,0 +1,7 @@
To jail fcgi-cgi within /var/www, add an entry like this to rc.conf.local:
fcgi_cgi_flags="-a 127.0.0.1 -p 9001 -u www -U www \
-c /var/www -- ${TRUEPREFIX}/bin/fcgi-cgi"
Obviously you will need to ensure that everything necessary for your CGI
application is installed within the chroot jail.

View File

@ -1,4 +0,0 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2012/03/27 14:21:26 sthen Exp $
@bin bin/fcgi-cgi
@man man/man1/fcgi-cgi.1
@rcscript ${RCDIR}/fcgi_cgi

View File

@ -0,0 +1,5 @@
@comment $OpenBSD: PLIST-main,v 1.1 2012/04/10 19:34:52 sthen Exp $
@pkgpath www/fcgi-cgi
@bin bin/fcgi-cgi
@man man/man1/fcgi-cgi.1
@rcscript ${RCDIR}/fcgi_cgi

View File

@ -0,0 +1,3 @@
@comment $OpenBSD: PLIST-static,v 1.1 2012/04/10 19:34:52 sthen Exp $
bin/
@bin bin/fcgi-cgi