From cf97d0ad2eb684073fe1414fbe8c1c39c04a299c Mon Sep 17 00:00:00 2001 From: sthen Date: Tue, 10 Apr 2012 19:34:52 +0000 Subject: [PATCH] Add a subpackage to make it easy to run fcgi-cgi in a chroot jail, requested by Johan Huldtgren, thanks dhill for testing. --- www/fcgi-cgi/Makefile | 24 ++++++++++++++++++------ www/fcgi-cgi/patches/patch-Makefile_am | 14 ++++++++++++++ www/fcgi-cgi/patches/patch-configure_ac | 12 ++++++++++++ www/fcgi-cgi/pkg/{DESCR => DESCR-main} | 0 www/fcgi-cgi/pkg/DESCR-static | 2 ++ www/fcgi-cgi/pkg/MESSAGE-static | 7 +++++++ www/fcgi-cgi/pkg/PLIST | 4 ---- www/fcgi-cgi/pkg/PLIST-main | 5 +++++ www/fcgi-cgi/pkg/PLIST-static | 3 +++ 9 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 www/fcgi-cgi/patches/patch-Makefile_am create mode 100644 www/fcgi-cgi/patches/patch-configure_ac rename www/fcgi-cgi/pkg/{DESCR => DESCR-main} (100%) create mode 100644 www/fcgi-cgi/pkg/DESCR-static create mode 100644 www/fcgi-cgi/pkg/MESSAGE-static delete mode 100644 www/fcgi-cgi/pkg/PLIST create mode 100644 www/fcgi-cgi/pkg/PLIST-main create mode 100644 www/fcgi-cgi/pkg/PLIST-static diff --git a/www/fcgi-cgi/Makefile b/www/fcgi-cgi/Makefile index 29f7cfa006f..9c615c8822a 100644 --- a/www/fcgi-cgi/Makefile +++ b/www/fcgi-cgi/Makefile @@ -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 diff --git a/www/fcgi-cgi/patches/patch-Makefile_am b/www/fcgi-cgi/patches/patch-Makefile_am new file mode 100644 index 00000000000..c7f6febf6ab --- /dev/null +++ b/www/fcgi-cgi/patches/patch-Makefile_am @@ -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) diff --git a/www/fcgi-cgi/patches/patch-configure_ac b/www/fcgi-cgi/patches/patch-configure_ac new file mode 100644 index 00000000000..7a5a11174db --- /dev/null +++ b/www/fcgi-cgi/patches/patch-configure_ac @@ -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")]) + diff --git a/www/fcgi-cgi/pkg/DESCR b/www/fcgi-cgi/pkg/DESCR-main similarity index 100% rename from www/fcgi-cgi/pkg/DESCR rename to www/fcgi-cgi/pkg/DESCR-main diff --git a/www/fcgi-cgi/pkg/DESCR-static b/www/fcgi-cgi/pkg/DESCR-static new file mode 100644 index 00000000000..56f7d45531c --- /dev/null +++ b/www/fcgi-cgi/pkg/DESCR-static @@ -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. diff --git a/www/fcgi-cgi/pkg/MESSAGE-static b/www/fcgi-cgi/pkg/MESSAGE-static new file mode 100644 index 00000000000..9dbe2d31d2d --- /dev/null +++ b/www/fcgi-cgi/pkg/MESSAGE-static @@ -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. diff --git a/www/fcgi-cgi/pkg/PLIST b/www/fcgi-cgi/pkg/PLIST deleted file mode 100644 index e05cdcb1782..00000000000 --- a/www/fcgi-cgi/pkg/PLIST +++ /dev/null @@ -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 diff --git a/www/fcgi-cgi/pkg/PLIST-main b/www/fcgi-cgi/pkg/PLIST-main new file mode 100644 index 00000000000..f7a7c6b93b1 --- /dev/null +++ b/www/fcgi-cgi/pkg/PLIST-main @@ -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 diff --git a/www/fcgi-cgi/pkg/PLIST-static b/www/fcgi-cgi/pkg/PLIST-static new file mode 100644 index 00000000000..c6d332d5d9c --- /dev/null +++ b/www/fcgi-cgi/pkg/PLIST-static @@ -0,0 +1,3 @@ +@comment $OpenBSD: PLIST-static,v 1.1 2012/04/10 19:34:52 sthen Exp $ +bin/ +@bin bin/fcgi-cgi