summaryrefslogtreecommitdiff
path: root/www/fnord
diff options
context:
space:
mode:
authorFlorent Thoumie <flz@FreeBSD.org>2005-06-26 11:33:02 +0000
committerFlorent Thoumie <flz@FreeBSD.org>2005-06-26 11:33:02 +0000
commite58ba05aa4aa96b372b8db1de2270c554ef66be3 (patch)
tree8bc99623bb67c08252e1dd2e004a244deb70176e /www/fnord
parentThere's more work needed to make this install into X11BASE and have a (diff)
- Add OPTIONS to enable/disable support for : CGI, Directory listing,
System symlink dereferencing and Old style redirections.
Notes
Notes: svn path=/head/; revision=138035
Diffstat (limited to 'www/fnord')
-rw-r--r--www/fnord/Makefile49
1 files changed, 48 insertions, 1 deletions
diff --git a/www/fnord/Makefile b/www/fnord/Makefile
index b8d99ec6ecfa..811340274b80 100644
--- a/www/fnord/Makefile
+++ b/www/fnord/Makefile
@@ -18,10 +18,57 @@ RUN_DEPENDS= setuidgid:${PORTSDIR}/sysutils/daemontools \
USE_GMAKE= yes
USE_BZIP2= yes
+USE_REINPLACE= yes
PLIST_FILES= bin/fnord \
bin/fnord-conf
+OPTIONS= CGI "Enable CGI support" on \
+ DIR_LIST "Enable directory listing" on \
+ SYSTEM_SYMLINK_DEREF "Enable system symlink (needs DIR_LIST)" off \
+ OLD_STYLE_REDIRECT "Enable old style redirection" off
+
+.include <bsd.port.pre.mk>
+
+.if !defined(WITHOUT_CGI)
+SED_SCRIPT+= -e "s|^// \(\#define CGI\).*|\1|"
+.endif
+
+# HOPE YOU KNOW WHAT YOU'RE LINKING !
+#
+# e.g.: if a file foo is a symlink to /etc/passwd and you don't have a
+# chroot enviroment then the system-wide /etc/passwd is provided !!!
+#
+# If the symlink is dangling OR this option is not active the symlink is
+# provided as a new http-uri.
+#
+# e.g.: is foo a symlink to /etc/passwd than the client gets a href to
+# http://<vhost>/etc/passwd */
+
+.if defined(WITH_SYSTEM_SYMLINK_DEREF)
+.if defined(WITHOUT_DIR_LIST)
+IGNORE= SYSTEM_SYMLINK_DEREF has no effect if DIR_LIST is not enabled
+.endif
+SED_SCRIPT+= -e "s|^/\* \(\#define SYSTEM_SYMLINK_DEREF\).*|\1|"
+.endif
+
+.if !defined(WITHOUT_DIR_LIST)
+SED_SCRIPT+= -e "s|^/\* \(\#define DIR_LIST\).*|\1|"
+.endif
+
+# If a file is not found locally, and $REDIRECT_HOST is set, fnord will
+# issue a redirect to strcat($REDIRECT_HOST,uri). Otherwise, if
+# $REDIRECT_URI is set, fnord will issue a redirect to $REDIRECT_URI.
+# Only if those fail will a 404 error be returned. */
+
+.if defined(WITH_OLD_STYLE_REDIRECT)
+SED_SCRIPT+= -e "s|^/\* \(\#define OLD_STYLE_REDIRECT\).*|\1|"
+.endif
+
+post-patch:
+ [ -z '${SED_SCRIPT}' ] || \
+ ${REINPLACE_CMD} ${SED_SCRIPT} ${WRKSRC}/httpd.c
+
do-build:
cd ${WRKSRC}; ${GMAKE} DIET=""
@@ -29,4 +76,4 @@ do-install:
${INSTALL_PROGRAM} ${WRKSRC}/fnord ${PREFIX}/bin/
${INSTALL_SCRIPT} ${WRKSRC}/fnord-conf ${PREFIX}/bin/
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>