From owner-freebsd-ports Mon May 6 15:40:39 2002 Delivered-To: freebsd-ports@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 4529437B407 for ; Mon, 6 May 2002 15:40:02 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g46Me2j35509; Mon, 6 May 2002 15:40:02 -0700 (PDT) (envelope-from gnats) Received: from mail.shad0w.org.uk (mal-nat01.jm-crowther.co.uk [195.149.46.207]) by hub.freebsd.org (Postfix) with ESMTP id F414637B409 for ; Mon, 6 May 2002 15:38:33 -0700 (PDT) Received: from lucy by mail.shad0w.org.uk with local (Exim 4.04) id 174r7j-000OOx-00 for FreeBSD-gnats-submit@freebsd.org; Mon, 06 May 2002 23:38:27 +0100 Message-Id: Date: Mon, 06 May 2002 23:38:27 +0100 From: hikari-chan Reply-To: hikari-chan To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: ports/37803: New port: mod_v2h mass vhosting module for Apache Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 37803 >Category: ports >Synopsis: New port: mod_v2h mass vhosting module for Apache >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon May 06 15:40:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: hikari-chan >Release: FreeBSD 4.5-STABLE i386 >Organization: disorganization >Environment: System: FreeBSD pandora.shad0w.org.uk 4.5-STABLE FreeBSD 4.5-STABLE #1: Fri Feb 22 14:45:34 GMT 2002 root@pandora.shad0w.org.uk:/usr/obj/usr/src/sys/PANDORA i386 >Description: mod_v2h is a mass virtual hosting module for Apache, it uses mySQL for holding its data. I needed to install on a system, so I figured I might as well write a port for it while I was at it :) mod_v2h normaly builds inside the Apache 2 modules directory, so I've had to clobber together a Makefile to do the build and install instead and pinched a little of the Apache apxs script to add the LoadModule line to httpd.conf. >How-To-Repeat: >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # #/usr/ports/www/mod_v2h/ #/usr/ports/www/mod_v2h/Makefile #/usr/ports/www/mod_v2h/pkg-comment #/usr/ports/www/mod_v2h/pkg-descr #/usr/ports/www/mod_v2h/distinfo #/usr/ports/www/mod_v2h/patches #/usr/ports/www/mod_v2h/patches/patch-aa #/usr/ports/www/mod_v2h/pkg-plist # echo c - /usr/ports/www/mod_v2h/ mkdir -p /usr/ports/www/mod_v2h/ > /dev/null 2>&1 echo x - /usr/ports/www/mod_v2h/Makefile sed 's/^X//' >/usr/ports/www/mod_v2h/Makefile << 'END-of-/usr/ports/www/mod_v2h/Makefile' X# X# ports collection makefile for: mod_v2h X# X# Date created: 6th May 2002 X# Whom: hikari-chan X# X# $FreeBSD$ X# X XPORTNAME=mod_v2h XPORTVERSION=2.0 XCATEGORIES?=www XMASTER_SITES=http://www.fractal.net/files/ XDISTNAME=mod_v2h X XMAINTAINER= hikari@hikari.org.uk X XBUILD_DEPENDS= ${LOCALBASE}/sbin/httpd:${PORTSDIR}/www/apache2:\ X${LOCALBASE}/lib/mysql/libmysqlclient.so:${PORTSDIR}/databases/mysql323-client XRUN_DEPENDS= ${LOCALBASE}/sbin/httpd:${PORTSDIR}/www/apache2:\ X${LOCALBASE}/lib/mysql/libmysqlclient.so:${PORTSDIR}/databases/mysql323-client X XPATCHDIR= patches X XWRKSRC= ${WRKDIR}/$(DISTNAME)-2 X X# yadda yadda Xpost-install: X@echo "" X@echo "===> Stripping ${LOCALBASE}/libexec/apache2/mod_v2h.so" X@strip ${LOCALBASE}/libexec/apache2/mod_v2h.so X@echo "" X@echo "---------------------------------------" X@echo "Remember to check the documentation on:" X@echo "http://www.fractal.net/mod_v2h.tm" X@echo "---------------------------------------" X@echo "" X X.include END-of-/usr/ports/www/mod_v2h/Makefile echo x - /usr/ports/www/mod_v2h/pkg-comment sed 's/^X//' >/usr/ports/www/mod_v2h/pkg-comment << 'END-of-/usr/ports/www/mod_v2h/pkg-comment' XA mass virtual hosting module for Apache with support END-of-/usr/ports/www/mod_v2h/pkg-comment echo x - /usr/ports/www/mod_v2h/pkg-descr sed 's/^X//' >/usr/ports/www/mod_v2h/pkg-descr << 'END-of-/usr/ports/www/mod_v2h/pkg-descr' Xmod_v2h is a mass virtual hosting module for Apache with support Xfor referencing translation paths from MySQL. mod_v2h also has Xthe ability to cache translation rules into a memory image for Xfaster performance. X XWWW: http://www.fractal.net/mod_v2h.tm X X- hikari-chan Xhikari@hikari.org.uk END-of-/usr/ports/www/mod_v2h/pkg-descr echo x - /usr/ports/www/mod_v2h/distinfo sed 's/^X//' >/usr/ports/www/mod_v2h/distinfo << 'END-of-/usr/ports/www/mod_v2h/distinfo' XMD5 (mod_v2h.tar.gz) = 8333be4ea39c043ad0bdfe0950709d64 END-of-/usr/ports/www/mod_v2h/distinfo echo c - /usr/ports/www/mod_v2h/patches mkdir -p /usr/ports/www/mod_v2h/patches > /dev/null 2>&1 echo x - /usr/ports/www/mod_v2h/patches/patch-aa sed 's/^X//' >/usr/ports/www/mod_v2h/patches/patch-aa << 'END-of-/usr/ports/www/mod_v2h/patches/patch-aa' X--- /dev/nullTue May 7 00:58:02 2002 X+++ MakefileTue May 7 00:31:27 2002 X@@ -0,0 +1,26 @@ X+APXS=${LOCALBASE}/sbin/apxs X+PERL=/usr/bin/perl X+RM=/bin/rm X+CP=/bin/cp X+MKDIR=/bin/mkdir X+ X+CXX=g++ X+CFLAGS+=-shared X+EXTRA_INCLUDES+=-I${LOCALBASE}/include/mysql -I${LOCALBASE}/include/apache2 X+LIBS+=-lmysqlclient X+LDFLAGS+=-L${LOCALBASE}/lib/mysql -Wl,-R,/usr/local/lib/mysql \ X+-Wl,-soname,mod_v2h.so X+ X+all: X+$(CXX) $(CFLAGS) $(EXTRA_INCLUDES) $(LDFLAGS) $(LIBS) -o mod_v2h.so mod_v2h.cpp X+ X+install: X+$(CP) mod_v2h.so ${LOCALBASE}/libexec/apache2/mod_v2h.so X+$(PERL) add-module X+$(MKDIR) -p ${LOCALBASE}/share/doc/mod_v2h X+$(CP) README AUTHORS ${LOCALBASE}/share/doc/mod_v2h/ X+ X+clean: X+$(RM) -rf .libs X+$(RM) -f mod_v2h.la X+ X--- /dev/nullTue May 7 00:58:02 2002 X+++ add-moduleTue May 7 00:30:25 2002 X@@ -0,0 +1,60 @@ X+#!/usr/bin/perl X+ X+# This was stolen from the Apache apxs script X+$CFG_SYSCONFDIR = "/usr/local/etc/apache2"; X+$CFG_TARGET = "httpd"; X+$name = "v2h"; X+$dir = "libexec/apache2/"; X+$t = "mod_v2h.so"; X+ X+push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t")); X+ X+open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die("Couldn't open conf file"); X+my $content = join('', ); X+close(FP); X+ X+if ($content !~ m|\n#?\s*LoadModule\s+|) { X+ error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file."); X+ error("At least one `LoadModule' directive already has to exist."); X+ exit(1); X+} X+ X+my $lmd; X+my $c = ''; X+ X+foreach $lmd (@lmd) { X+ if ($content !~ m|\n#?\s*$lmd|) { X+ $content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|sg; X+ } else { X+ $content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|sg; X+ } X+ X+ $lmd =~ m|LoadModule\s+(.+?)_module.*|; X+ notice("[activating module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]"); X+} X+ X+my $amd; X+ X+foreach $amd (@amd) { X+ if ($content !~ m|\n#?\s*$amd|) { X+ $content =~ s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|sg; X+ } else { X+ $content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|sg; X+ } X+} X+ X+if (@lmd or @amd) { X+ if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) { X+ print FP $content; X+ close(FP); X+ system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " . "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " . "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new"); X+} else { X+ notice("unable to open configuration file"); X+} X+ X+} X+ X+sub notice{ X+ print STDERR "$_[0]\n"; X+} X+ X END-of-/usr/ports/www/mod_v2h/patches/patch-aa echo x - /usr/ports/www/mod_v2h/pkg-plist sed 's/^X//' >/usr/ports/www/mod_v2h/pkg-plist << 'END-of-/usr/ports/www/mod_v2h/pkg-plist' Xlibexec/apache2/mod_v2h.so X%%PORTDOCS%%share/doc/mod_v2h/AUTHORS X%%PORTDOCS%%share/doc/mod_v2h/README X%%PORTDOCS%%@dirrm share/doc/mod_v2h END-of-/usr/ports/www/mod_v2h/pkg-plist exit >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message