diff options
author | Clement Laforet <clement@FreeBSD.org> | 2004-08-20 07:50:11 +0000 |
---|---|---|
committer | Clement Laforet <clement@FreeBSD.org> | 2004-08-20 07:50:11 +0000 |
commit | 2c81e95b5c0b3f7451b5130a4bc8839aba7d4985 (patch) | |
tree | 2747b7ab202a5c9dc635c266493ea29ccb5a1730 /www/apache13-fp/files | |
parent | - Move notif2 from x11-toolkits to x11-themes. (diff) |
- Remove www/apache13-fp
Notes
Notes:
svn path=/head/; revision=116740
Diffstat (limited to 'www/apache13-fp/files')
-rw-r--r-- | www/apache13-fp/files/apache.sh.tmpl | 117 | ||||
-rw-r--r-- | www/apache13-fp/files/createdwFP.txt | 17 | ||||
-rw-r--r-- | www/apache13-fp/files/mod_frontpage.c | 878 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-aa | 42 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-ab | 162 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-ag | 133 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-ak | 117 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-al | 24 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-fd | 55 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-fe | 169 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-ff | 11 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-fh | 10 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-fi | 37 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-fj | 11 | ||||
-rw-r--r-- | www/apache13-fp/files/patch-lang.en | 32 |
15 files changed, 0 insertions, 1815 deletions
diff --git a/www/apache13-fp/files/apache.sh.tmpl b/www/apache13-fp/files/apache.sh.tmpl deleted file mode 100644 index da843d3d95a2..000000000000 --- a/www/apache13-fp/files/apache.sh.tmpl +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# -# $FreeBSD$ - -# PROVIDE: apache -# REQUIRE: DAEMON -# KEYWORD: FreeBSD shutdown -# -# NOTE for FreeBSD 5.0+: -# If you want this script to start with the base rc scripts -# move apache.sh to /etc/rc.d/apache - -prefix=%%PREFIX%% - -# Define the following apache_* variables in one of the following: -# /etc/rc.conf -# /etc/rc.conf.d/apache -# /etc/rc.conf.d/apache -# -# DO NOT CHANGE THESE DEFAULT VALUES HERE -# -apache_enable="YES" # Enable Apache -#apache_program="${prefix}/sbin/httpd # Location of httpd -apache_start="start_FP" # Subcommand sent to apachectl to control how - # httpd is started. - -apache_doit () -{ - case $1 in - start) action=${apache_start} ;; - reload) action=graceful ;; - *) action=$1 ;; - esac - ${ctl_command} ${action} -} - -# Create New FrontPage suidkey - -new_key() { - - CUR_UMASK=`umask` - skdir=${prefix}/frontpage/version%%FP_VER%%/apache-fp - PERL=%%PERL5%% - - if [ -x ${prefix}/libexec/apache/mod_frontpage.so ] - then - - #NOTE: We need Perl 5, to generate a new key - if [ -x ${PERL} ] - then - umask 077 - ${PERL} -e '@a=(split(//, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*-=_+")); print((map {$a[rand(scalar @a)]} (1..128)), "\n");' > $skdir/suidkey - umask ${CUR_UMASK} - fi - fi - -} - -if [ -f /etc/rc.subr ]; then - - . /etc/rc.subr - - name="apache" - rcvar=`set_rcvar` - command="${prefix}/sbin/httpd" - ctl_command="${prefix}/sbin/apachectl" - # pidfile=/var/run/httpd.pid - required_files="${prefix}/etc/apache/httpd.conf" - extra_commands="reload" - start_precmd="new_key" - start_cmd="apache_doit start" - stop_cmd="apache_doit stop" - restart_cmd="apache_doit restart" - reload_cmd="apache_doit reload" - - load_rc_config $name - run_rc_command "$1" -else - # Suck in the configuration variables. - if [ -z "${source_rc_confs_defined}" ]; then - if [ -r /etc/defaults/rc.conf ]; then - . /etc/defaults/rc.conf - source_rc_confs - elif [ -r /etc/rc.conf ]; then - . /etc/rc.conf - fi - fi - - rc=0 - - case "${apache_enable}" in - [Yy][Ee][Ss]) - case "$1" in - start) - if [ -x ${prefix}/sbin/apachectl ]; then - new_key - ${prefix}/sbin/apachectl ${apache_start} && echo -n ' httpd' - fi - ;; - stop) - if [ -r /var/run/httpd.pid ]; then - ${prefix}/sbin/apachectl stop && echo -n ' httpd' - fi - ;; - *) - echo "usage: $0 {start|stop}" 1>&2 - rc=64 - ;; - esac - ;; - *) - rc=0 - ;; - esac - - exit $rc -fi diff --git a/www/apache13-fp/files/createdwFP.txt b/www/apache13-fp/files/createdwFP.txt deleted file mode 100644 index 406544bc397f..000000000000 --- a/www/apache13-fp/files/createdwFP.txt +++ /dev/null @@ -1,17 +0,0 @@ - Usage Guidelines for the Microsoft FrontPage Logo (createdwFP.gif) - -The Microsoft FrontPage(R) Logo Program is designed to provide you with the -guidelines necessary for displaying the Created and Managed with Microsoft -FrontPage logo (the "Logo") on your Web site. - -1. Except as Microsoft may authorize elsewhere, non-Microsoft Web sites - may display only the Created and Managed with Microsoft FrontPage logo - provided ("Logo"). By displaying the Logo on your Web site, you agree - to be bound by these Policies. - -2. You may only display the Logo on your Web site, and not in any other - manner than specified herein. It must always be an active link to the - Microsoft FrontPage home page at http://www.microsoft.com/frontpage/. - -For more restrictions see: - http://www.microsoft.com/frontpage/logo.htm diff --git a/www/apache13-fp/files/mod_frontpage.c b/www/apache13-fp/files/mod_frontpage.c deleted file mode 100644 index 267777665bd1..000000000000 --- a/www/apache13-fp/files/mod_frontpage.c +++ /dev/null @@ -1,878 +0,0 @@ -/* ==================================================================== - * - * Apache FrontPage module. - * - * Copyright (c) 1996-2001 Microsoft Corporation -- All Rights Reserved. - * - * NO WARRANTIES. Microsoft expressly disclaims any warranty for this code and - * information. This code and information and any related documentation is - * provided "as is" without warranty of any kind, either express or implied, - * including, without limitation, the implied warranties or merchantability, - * fitness for a particular purpose, or noninfringement. The entire risk - * arising out of use or performance of this code and information remains with - * you. - * - * NO LIABILITY FOR DAMAGES. In no event shall Microsoft or its suppliers be - * liable for any damages whatsoever (including, without limitation, damages - * for loss of business profits, business interruption, loss of business - * information, or any other pecuniary loss) arising out of the use of or - * inability to use this Microsoft product, even if Microsoft has been advised - * of the possibility of such damages. Because some states/jurisdictions do not - * allow the exclusion or limitation of liability for consequential or - * incidental damages, the above limitation may not apply to you. - */ - - -/* - * User configurable items. We will not run the server extensions with any - * UID/GID less than LOWEST_VALID_UID/LOWEST_VALID_GID. - */ - -#if defined(LINUX) -#define LOWEST_VALID_UID 15 -#else -#define LOWEST_VALID_UID 11 -#endif - -#if defined(HPUX) || defined(IRIX) || defined(SUNOS4) -#define LOWEST_VALID_GID 20 -#else -#if defined(SCO) -#define LOWEST_VALID_GID 24 -#else -#define LOWEST_VALID_GID 21 /* Solaris, AIX, Alpha, Bsdi, *BSD, etc. */ -#endif -#endif - -/* - * End of user configurable items - */ - - -#include "httpd.h" -#include "http_config.h" -#include "http_conf_globals.h" -#include "http_log.h" - -#include <stdio.h> -#include <sys/time.h> - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif -#if (MAXPATHLEN < 1024) -#undef MAXPATHLEN -#define MAXPATHLEN 1024 -#endif - -#define KEYLEN 128 /* Should be a multiple of sizeof(int) */ - -static char gszKeyVal[KEYLEN+1]; /* SUID key value used by this module */ -static int gfdKeyPipe[2]; /* Pipe to fpexe stub CGI */ -static int gbKeyPipeActive = FALSE;/* Pipe to fpexe stub CGI is active */ -static int gbEnabled = FALSE; /* TRUE when SUID scheme is enabled */ -#if !defined(SHARED_MODULE) -static int giInitializeCount = 0; /* FrontPageInit called previously */ -#endif - -static const char FP[] = - "/usr/local/frontpage/version5.0"; -static const char FPKEYDIR[] = - "/usr/local/frontpage/version5.0/apache-fp"; -static const char KEYFILEXOR[] = - "/usr/local/frontpage/version5.0/apache-fp/suidkey"; -static const char KEYFILE[] = - "/usr/local/frontpage/version5.0/apache-fp/suidkey.%d"; -static const char FPSTUBDIR[] = - "/usr/local/frontpage/version5.0/apache-fp/_vti_bin"; -static const char FPSTUB[] = - "/usr/local/frontpage/version5.0/apache-fp/_vti_bin/fpexe"; -static const char GLOBALADMINDIR[] = - "/usr/local/frontpage/version5.0/admin-exes"; -static const char IMAGESDIR[] = - "/exes/_vti_bin/_vti_adm/images" ; -static const char SHTML[] = - "/_vti_bin/shtml.exe"; -static const char SHTML2[] = - "/_vti_bin/shtml.dll"; -static const char VTI_BIN[] = - "/_vti_bin"; -static const char FPCOUNT[] = - "/_vti_bin/fpcount.exe"; -static const char AUTHOR[] = - "/_vti_bin/_vti_aut/author.exe" ; -static const char ADMIN[] = - "/_vti_bin/_vti_adm/admin.exe" ; -static const char ADMINCGI[] = - "/_vti_bin/_vti_adm/fpadmcgi.exe" ; -static const char PASSWD[] = - "/passwd.htm" ; -static const char VTIHELP[] = - "/_vti_bin/_vti_adm/help/" ; -static const char VTI_ADM[] = - "/_vti_bin/_vti_adm/" ; -static const char HELPDIR[] = - "/help" ; -static const char ADMINDIR[] = - "/admin" ; - -const int iVTI_LEN = sizeof(VTI_ADM)/sizeof(VTI_ADM[0]) - 1; -const int iHELP = sizeof(VTIHELP)/sizeof(VTIHELP[0]) - 1; - - -MODULE_VAR_EXPORT module frontpage_module; - -/* - * Print a descriptive error in the httpd's error_log. The format string - * should be length limited so that it is no longer than 1800 bytes. - */ -static void LogFrontPageError( - server_rec* s, - const char* szFormat, - const char* szFile, - const char* szRoutine, - int bIsDisabled) -{ - char szBuf[MAXPATHLEN * 2]; - sprintf(szBuf, szFormat, szFile); - strcat(szBuf, " in "); - strcat(szBuf, szRoutine); - strcat(szBuf, "."); - if (bIsDisabled) - { - strcat(szBuf, " Until this problem is fixed, the FrontPage security patch is disabled and the FrontPage extensions may not work correctly."); - gbEnabled = FALSE; /* Make double sure we're not enabled */ - } - ap_log_error(APLOG_MARK, APLOG_ERR, s, szBuf); -} - - -/* - * Clean up stale keyfiles. Failure to clean up stale keyfiles does not - * stop the FrontPage SUID scheme. - */ -static void FrontPageCleanup(server_rec *s) -{ - DIR *d; - struct DIR_TYPE *dstruct; - int myPid = getpid(); - - if (!(d = opendir(FPKEYDIR))) - { - /* - * This should be a rare occurrence, because we're running as root and - * should have access to the directory. Stale key files can be - * exploited. User recovery: Check that the directory exists and is - * properly protected (owned by root, permissions rwx--x--x), and that - * there are no stale key files in it (suidkey.*, where * is a - * non-existant PID). - */ - LogFrontPageError(s, "Can't clean stale key files from directory \"%-.1024s\"", - FPKEYDIR, "FrontPageCleanup()", FALSE); - return; - } - - while ((dstruct = readdir(d))) - { - if (strncmp("suidkey.", dstruct->d_name, 8) == 0) - { - /* - * Make sure the key file contains a pid number - otherwise - * it is harmless and you can ignore it. - */ - char* pEnd = 0; - int pid = strtol(dstruct->d_name + 8, &pEnd, 10); - if (!pEnd || *pEnd) - continue; - - /* - * Make sure there isn't some other server using this key file. - * If the process group isn't alive, then the file is stale - * and we want to remove it. - */ - if (pid == myPid || kill(pid, 0) == -1) - { - char szBuf[MAXPATHLEN]; - sprintf(szBuf, "%-.500s/%-.500s", FPKEYDIR, dstruct->d_name); - if (unlink(szBuf) == -1) - { - /* - * This should be a rare occurrence, because we're running - * as root and should always have permission to delete the - * file. Stale key files can be exploited. User recovery: - * delete the offending file. - */ - LogFrontPageError(s, "Can't unlink stale key file \"%-.1024s\"", - szBuf, "FrontPageCleanup()", FALSE); - } - } - } - } - - closedir(d); -} - -/* - * Checks that all the permissions are currently correct for the FrontPage - * fpexe SUID stub to run correctly. If not, it logs an error and aborts - * initialization, effectively disabling the FrontPage SUID scheme. - * It checks both the file permissions (owned by root and not writable to - * group, other) and that the directory is not writable. - */ -static int FrontPageCheckup(server_rec *s) -{ - struct stat fs; - - if (geteuid() != 0) - { - /* - * We need to be root to have the security scheme work correctly. - * User recovery: run the server as root. - */ - LogFrontPageError(s, "Not running as root", - 0, "FrontPageCheckup()", TRUE); - return (FALSE); - } - - if (lstat(FPKEYDIR, &fs) == -1 || /* We can't stat the key dir */ - fs.st_uid || /* key dir not owned by root */ - (fs.st_mode & (S_IRGRP | S_IROTH)) || /* key dir is readable */ - (fs.st_mode & (S_IWGRP | S_IWOTH)) || /* key dir is writable */ - !(fs.st_mode & (S_IXGRP | S_IXOTH)) || /* key dir is not executable */ - !(S_ISDIR(fs.st_mode))) - { - /* - * User recovery: set directory to be owned by by root with permissions - * rwx--x--x. Note you need the execute bit for group and other so - * that non-root programs can run apache-fp/_vti_bin/fpexe (even though - * non-root cannot list the directory). - */ - LogFrontPageError(s, "Incorrect permissions on key directory \"%-.1024s\", needs root ownership and permissions rwx--x--x", - FPKEYDIR, "FrontPageCheckup()", TRUE); - return (FALSE); - } - - if (lstat(FPSTUBDIR, &fs) == -1 || /* We can't stat the stub dir */ - fs.st_uid || /* stub dir not owned by root */ - (fs.st_mode & (S_IWGRP | S_IWOTH)) || /* stub dir is writable */ - (!S_ISDIR(fs.st_mode))) - { - /* - * User recovery: set directory to be owned by by root with permissions - * r*x*-x*-x. - */ - LogFrontPageError(s, "Incorrect permissions on stub directory \"%-.1024s\", needs root ownership and permissions r*x*-x*-x", - FPSTUBDIR, "FrontPageCheckup()", TRUE); - return (FALSE); - } - - if (stat(FPSTUB, &fs) == -1 || /* We can't stat the stub */ - fs.st_uid || /* stub not owned by root */ - !(fs.st_mode & S_ISUID) || /* stub is not set-uid */ - (fs.st_mode & S_ISGID) || /* stub is set-gid */ - (fs.st_mode & (S_IWGRP | S_IWOTH)) || /* stub is writable */ - !(fs.st_mode & (S_IXGRP | S_IXOTH))) /* stub is not executable */ - { - /* - * User recovery: set stub to be owned by by root with permissions - * r*s*-x*-x. - */ - LogFrontPageError(s, "Incorrect permissions on stub \"%-.1024s\", needs root ownership and permissions r*s*-x*-x", - FPSTUB, "FrontPageCheckup()", TRUE); - return (FALSE); - } - - return (TRUE); -} - - -/* - * Module-initializer: Create the suidkey file and local value. - * Everything needs to be just right, or we don't create the key file, and - * therefore, the fpexe SUID stub refuses to run. - */ -static void FrontPageInit(server_rec *s, pool *p) -{ - int fdPipe[2]; - pid_t pid; - FILE *f; - struct stat fs; - int fd; - char szKeyFile[MAXPATHLEN]; - int iRandom[5]; - char* szRandom = (char*)iRandom; - struct timeval tp; - struct timezone tz; - - (void)p; /* p is unused */ - -#if !defined(SHARED_MODULE) - /* - * Standalone servers call initialization twice: once in main() and again - * in standalone_main(). The fully initializing on the the first call is a - * waste of time, and a race condition can leave a stale suidkey.pgrpid - * file around. - */ - if (ap_standalone && !giInitializeCount++) - return; -#endif - - /* - * Disable the suid scheme until everything falls perfectly into place. - */ - gbEnabled = FALSE; - gbKeyPipeActive = FALSE; - - /* - * Clean up old key files before we start - */ - FrontPageCleanup(s); - if (!FrontPageCheckup(s)) - return; - - if (pipe(fdPipe) == -1) - { - /* - * This should be a rare occurrence. User recovery: check to see why - * the system cannot allocate a pipe (is the file table full from - * run-away processes?), and fix the problem or reboot, then try again. - */ - LogFrontPageError(s, "pipe() failed", 0, "FrontPageInit()", TRUE); - return; - } - - gettimeofday(&tp, &tz); - iRandom[0] = tp.tv_sec; - iRandom[1] = tp.tv_usec | tp.tv_usec << 20; - - pid = fork(); - if (pid == -1) - { - /* - * This should be a rare occurrence. User recovery: check to see why - * the system cannot allocate a process (is the process table full from - * run-away processes?), and fix the problem or reboot, then try again. - */ - LogFrontPageError(s, "fork() failed", 0, "FrontPageInit()", TRUE); - return; - } - - if (pid) - { - /* - * I am the parent process. Try to read a random number from the - * child process. - */ - - unsigned int npos = (unsigned int)-1; - unsigned int v1 = npos, v2 = npos, v3 = npos, v4 = npos; - int stat; - int iCount; - - close(fdPipe[1]); - if (waitpid(pid, &stat, 0) == -1 || - (!WIFEXITED(stat) || WIFEXITED(stat) && WEXITSTATUS(stat))) - { - /* - * This should be a rare occurrence. User recovery: Make sure you - * have a /bin/sh, or change the shell location in the execl - * command below. Try the commands defined in RAND_CMD in a - * /bin/sh session to make sure they work properly. Rebuild this - * module and your httpd with the proper commands. - */ - LogFrontPageError(s, "Random number generator exited abnormally", 0, - "FrontPageInit()", TRUE); - return; - } - - iCount = read(fdPipe[0], gszKeyVal, KEYLEN); - close(fdPipe[0]); - if (iCount < 0) - { - /* - * This should be a rare occurrence. See the above comment under - * the waitpid failure condition for user recovery steps. - */ - LogFrontPageError(s, "Could not read random numbers", 0, - "FrontPageInit()", TRUE); - return; - } - gszKeyVal[iCount] = 0; - - sscanf(gszKeyVal, "%u %u %u %u", &v2, &v1, &v4, &v3); - if (v1 == npos || v2 == npos || v3 == npos || v4 == npos) - { - /* - * This should be a rare occurrence. See the above comment under - * the waitpid failure condition for user recovery steps. - */ - LogFrontPageError(s, "Could not scan random numbers", 0, - "FrontPageInit()", TRUE); - return; - } - - iRandom[2] = (v1 << 16) + v2 + (v4 << 12) + v3; - } - else - { - /* - * I am the child process. Create a random number which shouldn't - * be easily duplicated. - */ - - if (dup2(fdPipe[1], 1) == -1) - exit(1); /* Parent picks up the error */ - - close(fdPipe[0]); - -#ifdef LINUX -#define RAND_CMD "/bin/ps laxww | /usr/bin/sum ; /bin/ps laxww | /usr/bin/sum" -#else -#if defined ( bsdi ) || ( defined ( BSD ) && ( BSD >= 199103 )) -#define RAND_CMD "/bin/ps laxww | /usr/bin/cksum -o 1 ; /bin/ps laxww | /usr/bin/cksum -o 1" -#else -#define RAND_CMD "/bin/ps -ea | /bin/sum ; /bin/ps -ea | /bin/sum" -#endif -#endif - execl("/bin/sh", "/bin/sh", "-c", RAND_CMD, NULL); - exit(1); - } - - gettimeofday(&tp, &tz); - iRandom[3] = tp.tv_sec; - iRandom[4] = tp.tv_usec | tp.tv_usec << 20; - - /* - * See if there is an 'suidkey' file to merge into our key. - */ - if (stat(KEYFILEXOR, &fs) == -1) - { - /* - * It's a security violation if the key file is not present. User - * recovery: Make sure the key file is present and properly protected - * (owned by root, permissions r**------). - */ - LogFrontPageError(s, "The key file \"%-.1024s\" does not exist", - KEYFILEXOR, "FrontPageInit()", TRUE); - return; - } - else - { - int i, iCount; - char szBuf[KEYLEN]; - - if ((fs.st_mode & (S_IRWXG | S_IRWXO)) || fs.st_uid) - { - /* - * It's a security violation if the key file is not owned by root, - * and is not protected from all other group. User recovery: Make - * sure the key file is properly protected (owned by root, - * permissions r**------). - */ - LogFrontPageError(s, "The key file \"%-.1024s\" must not be accessible except by root and with permissions r**------", - KEYFILEXOR, "FrontPageInit()", TRUE); - return; - } - - if ((fd = open(KEYFILEXOR, O_RDONLY)) == -1) - { - /* - * This should be a rare occurrence. User recovery: Make sure - * the key file exists, is properly owned and protected, and is - * readable. - */ - LogFrontPageError(s, "Cannot open key file \"%-.1024s\"", - KEYFILEXOR, "FrontPageInit()", TRUE); - return; - } - - iCount = read(fd, szBuf, KEYLEN); - if (iCount < 8) - { - /* - * The keyfile must be at least 8 bytes. If it longer than 128 - * bytes, only the first 128 bytes will be used. Any character - * value from 0-255 is fine. User recovery: Make sure the key file - * is at least 8 bytes long. - */ - LogFrontPageError(s, "Key file \"%-.1024s\" is unreadable or is too short (must be at least 8 bytes)", - KEYFILEXOR, "FrontPageInit()", TRUE); - close(fd); - return; - } - - /* - * Now generate the effective key we'll be using by XORing your key - * with 5 "random" 32-bit integers. The primary security of this - * scheme is your key; properly setting it and changing it often keeps - * the FrontPage SUID scheme secure. All this work above to generate 5 - * random 32-bit integers is soley to make your key somewhat harder to - * crack (assuming the key files are properly protected). If you don't - * like the algorithm used to generate the 5 random integers, feel free - * to substitute as appropriate (check out SGI's Lavarand (TM) at - * lavarand.sgi.com). - */ - for (i = 0; i < KEYLEN; i++) - gszKeyVal[i] = szBuf[i % iCount] ^ szRandom[i % sizeof(iRandom)]; - - /* - * Thanks to A.Mayrhofer@Austria.EU.net 980130 - */ - close(fd); - } - -#if defined(SUNOS4) - pid = getpgrp(0); -#else - pid = getpgrp(); -#endif - sprintf(szKeyFile, KEYFILE, (int)pid); - - fd = creat(szKeyFile, 0600); - if (fd < 0) - { - /* - * This should be a rare occurrence, because we're running as root and - * should always have permission to create the file. User recovery: - * check that you are not out of disk space, or that the file is not - * NFS-mounted on a share where you do not have permissions. - */ - LogFrontPageError(s, "Could not create key file \"%-.1024s\"", - szKeyFile, "FrontPageInit()", TRUE); - return; - } - - if (write(fd, gszKeyVal, 128) != 128) - { - /* - * This should be a rare occurrence. User recovery: check that you are - * not out of disk space. - */ - close(fd); - unlink(szKeyFile); - LogFrontPageError(s, "Could not write to key file \"%-.1024s\"", - szKeyFile, "FrontPageInit()", TRUE); - return; - } - - close(fd); - - /* - * Everything looks OK enough to start the suid scheme. - */ - gbEnabled = TRUE; - - /* - * Thanks to Scot Hetzel (hetzels@westbend.net) - */ - ap_add_version_component("FrontPage/5.0.2.2510"); -} - -static int FrontPageCheckWebRoot( - request_rec* r, - char* szCgi, - struct stat *pWebroot) -{ - int iLen; - struct stat vti_pvt; - char szBuf[MAXPATHLEN]; - char chSave; - char szFormat[MAXPATHLEN * 2]; - - chSave = szCgi[1]; - szCgi[1] = '\0'; - ap_translate_name(r); - szCgi[1] = chSave; - - /* - * Zap trailing slash that confuses some OSes. - */ - iLen = strlen(r->filename); - r->filename[--iLen] = 0; - - if (iLen > MAXPATHLEN - 10) - return DECLINED; - sprintf(szBuf, "%s/_vti_pvt", r->filename); - - /* - * Decline if webroot and webroot/_vti_pvt don't have the same - * user and group or uid < LOWEST_VALID_UID or gid < LOWEST_VALID_GID. - */ - if (stat(szBuf, &vti_pvt) != 0 || - stat(r->filename, pWebroot) != 0 || - pWebroot->st_uid != vti_pvt.st_uid || - pWebroot->st_gid != vti_pvt.st_gid) - { - /* - * The webroot and webroot/_vti_pvt don't match. User recovery: fix - * the owners and groups of both directories to match, and have both a - * uid and gid in the allowable range. - */ - sprintf(szFormat, "Incorrect permissions on webroot \"%%-.0124s\" and webroot's _vti_pvt directory, the owners and groups must match and have a uid >= %d and gid >= %d", LOWEST_VALID_UID, LOWEST_VALID_GID); - LogFrontPageError(r->server, szFormat, - szBuf, "FrontPageAlias()", FALSE); - return DECLINED; - } - - if ((!strcmp(r->filename,GLOBALADMINDIR)) ? vti_pvt.st_uid > 0 - : (vti_pvt.st_uid < LOWEST_VALID_UID || - vti_pvt.st_gid < LOWEST_VALID_GID)) - { - /* - * User recovery: fix the owners and groups of both directories to - * match, and have both a uid and gid in the allowable range. - */ - sprintf(szFormat, "Incorrect permissions on webroot \"%%-.0124s\" and webroot's _vti_pvt directory, the owners and groups must match and have a uid >= %d and gid >= %d", LOWEST_VALID_UID, LOWEST_VALID_GID); - LogFrontPageError(r->server, szFormat, - szBuf, "FrontPageAlias()", FALSE); - return DECLINED; - } - - return OK; -} - - -/* - * Look for a valid FrontPage extensions scenario and fake a scriptalias if - * appropriate. If there are any problems, we silently decline. - */ -static int FrontPageAlias( - request_rec* r, - char* szCgi, - const char* szFpexe) -{ - struct stat webroot; - struct stat stub; - char szBuf[MAXPATHLEN]; - - /* - * Decline if we cannot run the stub, or it is writable. - */ - if (stat(FPSTUB, &stub) == -1 || !(stub.st_mode & S_IXOTH) || - stub.st_mode & (S_IWGRP | S_IWOTH)) - { - /* - * The stub used to be correctly permissioned; what happened? User - * recovery: set stub to be owned by by root with permissions - * r*s*-x*-x. - */ - LogFrontPageError(r->server, "Incorrect permissions on stub \"%-.1024s\", must be owned by root with permissions r*s*-x*-x", - FPSTUB, "FrontPageAlias()", FALSE); - return DECLINED; - } - - if (OK != FrontPageCheckWebRoot(r, szCgi, &webroot)) - return DECLINED; - - /* - * If the pipe is active, it was because we previously executed a CGI. - * That CGI must have finished by now (otherwise we wouldn't be processing - * this next request), so we can and should close the pipe to avoid a - * resource leak. - */ - if (gbKeyPipeActive) - { - close(gfdKeyPipe[0]); - gbKeyPipeActive = FALSE; - } - - /* - * If we can't get a pipe, that's really bad. We'll log an error, and - * decline. This should be a rare occurrence. User recovery: check to see - * why the system cannot allocate a pipe (is the file table full from - * run-away processes?), and fix the problem or reboot, then try again. - */ - if (pipe(gfdKeyPipe) == -1) - { - LogFrontPageError(r->server, "pipe() failed", 0, - "FrontPageAlias()", FALSE); - return DECLINED; - } - - /* - * Note: ap_pstrdup allocates memory, but it checks for out of memory - * conditions - it will not return if out of memory. - */ - r->handler = ap_pstrdup(r->pool, "cgi-script"); - ap_table_set(r->notes, "alias-forced-type", r->handler); - - ap_table_set(r->subprocess_env, "FPEXE", ap_pstrdup(r->pool, szFpexe)); - sprintf(szBuf, "%d", webroot.st_uid ); - ap_table_set(r->subprocess_env, "FPUID", ap_pstrdup(r->pool, szBuf)); - sprintf(szBuf, "%d", webroot.st_gid ); - ap_table_set(r->subprocess_env, "FPGID", ap_pstrdup(r->pool, szBuf)); - sprintf(szBuf, "%d", gfdKeyPipe[0]); - ap_table_set(r->subprocess_env, "FPFD", ap_pstrdup(r->pool, szBuf)); - - r->execfilename = ap_pstrcat(r->pool, FPSTUB, szCgi+strlen(szFpexe), NULL); - r->filename = ap_pstrcat(r->pool, r->filename, szCgi, NULL); - - if (write(gfdKeyPipe[1], gszKeyVal, 128) != 128) - { - /* - * If we can't write to the pipe, that's really bad. We'll log an - * error, and decline. This should be a rare occurrence. User - * recovery: check to see why the system cannot write to the pipe (is - * the system being choked with too much load?), and fix the problem or - * reboot, then try again. - */ - LogFrontPageError(r->server, "Write to pipe failed", 0, - "FrontPageAlias()", FALSE); - close (gfdKeyPipe[0]); - close (gfdKeyPipe[1]); - return DECLINED; - } - close(gfdKeyPipe[1]); - - gbKeyPipeActive = TRUE; - return OK; -} - -static int FrontPageGetLcid(const char* szDir) -{ - int iLcid; - iLcid = atoi(szDir); - if (iLcid < 1 || iLcid > 9999) - iLcid = 1033; - return iLcid; -} - -/* - * Look for a valid FrontPage extensions scenario and fake an alias if - * appropriate. If there are any problems, we silently decline. - */ -static int FrontPageStaticAlias( - request_rec* r, - char* szCgi, - const char* szDir, - int iLcid) -{ - struct stat webroot; - char szBuf[8]; - char* szBase; - - if (OK != FrontPageCheckWebRoot(r, szCgi, &webroot)) - return DECLINED; - - szBase = strrchr(r->uri, '/'); - if (!szBase) - return DECLINED; - - szBuf[0] = 0; - if (iLcid > 0 && iLcid < 10000) - sprintf(szBuf, "/%04d", iLcid); - - r->execfilename = ap_pstrcat(r->pool, FP, szDir, szBuf, szBase, NULL); - r->filename = ap_pstrcat(r->pool, r->filename, szCgi, NULL); - - return OK; -} - - -/* - * This routine looks for shtml.exe, fpcount.exe, author.exe and admin.exe - * in a URI, and if found we call FrontPageAlias() to check for a valid - * FrontPage scenario. - * - * The return value is OK or DECLINED. - */ -static int FrontPageXlate( - request_rec *r) -{ - char *szVti; - char *szCgi; - - /* - * Decline if we're improperly initialized. - */ - if (!gbEnabled) - return DECLINED; - - /* - * Check once for anything with _vti_bin. This is much faster than - * checking all our paths, because anything without this is definitely - * not a FrontPage scenario. - */ - if (!(szVti = strstr(r->uri, VTI_BIN))) - return DECLINED; - - /* - * Test for FrontPage server extenders: - * .../_vti_bin/shtml.exe... - * .../_vti_bin/shtml.dll... - * .../_vti_bin/fpcount.exe... - * .../_vti_bin/_vti_aut/author.exe... - * .../_vti_bin/_vti_adm/admin.exe... - * .../_vti_bin/_vti_adm/owsadm.exe... - */ - if (szCgi = strstr(szVti, AUTHOR )) - return FrontPageAlias(r, szCgi, AUTHOR); - /* - * Convert inadvertent shtml.dll to shtml.exe - * Thanks for the idea to Scot Hetzel (hetzels@westbend.net) - */ - if (szCgi = strstr(szVti, SHTML2 )) - { - int iShtmlExtPos = strlen(SHTML2) - 3; - strncpy(szCgi + iShtmlExtPos, SHTML + iShtmlExtPos, 3); - } - if (szCgi = strstr(szVti, SHTML )) - return FrontPageAlias(r, szCgi, SHTML); - if (szCgi = strstr(szVti, ADMIN )) - return FrontPageAlias(r, szCgi, ADMIN); - if (szCgi = strstr(szVti, ADMINCGI )) - return FrontPageAlias(r, szCgi, ADMINCGI); - if (szCgi = strstr(szVti, FPCOUNT)) - return FrontPageAlias(r, szCgi, FPCOUNT); - - if (szCgi = strstr(szVti, VTIHELP)) - return FrontPageStaticAlias(r, szVti, HELPDIR, - FrontPageGetLcid(szVti + iHELP)); - if ((szCgi = strrchr(szVti,'/')) && !strcmp(szCgi, PASSWD) && - (iVTI_LEN < strlen(szVti))) - return FrontPageStaticAlias(r, szVti, ADMINDIR, - FrontPageGetLcid(szVti + iVTI_LEN)); - if ((szCgi = strrchr(szVti,'.')) && !strcmp(szCgi, ".gif")) - return FrontPageStaticAlias(r, szVti, IMAGESDIR, 0); - if ((szCgi = strrchr(szVti,'.')) && !strcmp(szCgi, ".css") && - (iVTI_LEN < strlen(szVti))) - return FrontPageStaticAlias(r, szVti, ADMINDIR, - FrontPageGetLcid(szVti + iVTI_LEN)); - - return DECLINED; -} - - -/* - * Declare ourselves so the configuration routines can find us. - */ -module MODULE_VAR_EXPORT frontpage_module = -{ - STANDARD_MODULE_STUFF, - FrontPageInit, /* initializer */ - NULL, /* per-directory config creater */ - NULL, /* dir config merger - default is to override */ - NULL, /* server config creator */ - NULL, /* server config merger */ - NULL, /* command table */ - NULL, /* [6] list of handlers */ - FrontPageXlate, /* [1] URI-to-filename translation */ - NULL, /* [4] check/validate HTTP user_id */ - NULL, /* [5] check HTTP user_id is valid *here* */ - NULL, /* [3] check access by host address, etc. */ - NULL, /* [6] MIME type checker/setter */ - NULL, /* [7] fixups */ - NULL, /* [9] logger */ - NULL, /* [2] header parser */ - NULL, /* child_init */ - NULL, /* child_exit */ - NULL /* post read-request */ -}; diff --git a/www/apache13-fp/files/patch-aa b/www/apache13-fp/files/patch-aa deleted file mode 100644 index efa5a46583b7..000000000000 --- a/www/apache13-fp/files/patch-aa +++ /dev/null @@ -1,42 +0,0 @@ ---- configure.orig Tue May 21 07:24:59 2002 -+++ configure Tue Jun 18 23:39:04 2002 -@@ -1169,7 +1169,8 @@ - conf_port="80" - fi - conf_serveradmin="you@your.address" --conf_servername="new.host.name" -+conf_servername="`$aux/buildinfo.sh -n %h%d`" -+#conf_servername="new.host.name" - if [ "x$confadjust" = "x1" ]; then - if [ -f /etc/passwd ]; then - if [ "x$conf_user" = "x" ]; then -@@ -1193,7 +1194,10 @@ - conf_port="8080" - fi - conf_serveradmin="`$aux/buildinfo.sh -n %u@%h%d`" -- conf_servername="`$aux/buildinfo.sh -n %h%d`" -+# conf_servername="`$aux/buildinfo.sh -n %h%d`" -+fi -+if [ ".$suexec" = .1 ]; then -+ conf_user="$suexec_caller" - fi - - ## -@@ -1251,7 +1255,7 @@ - echo " DEFAULT_PIDLOG: ${runtimedir_relative}${thetarget}.pid" - echo " DEFAULT_SCOREBOARD: ${runtimedir_relative}${thetarget}.scoreboard" - echo " DEFAULT_LOCKFILE: ${runtimedir_relative}${thetarget}.lock" -- echo " DEFAULT_ERRORLOG: ${logfiledir_relative}error_log" -+ echo " DEFAULT_ERRORLOG: ${logfiledir_relative}httpd-error.log" - echo " TYPES_CONFIG_FILE: ${sysconfdir_relative}mime.types" - echo " SERVER_CONFIG_FILE: ${sysconfdir_relative}${thetarget}.conf" - echo " ACCESS_CONFIG_FILE: ${sysconfdir_relative}access.conf" -@@ -1349,7 +1353,7 @@ - echo "echo '-DDEFAULT_PIDLOG=\"${runtimedir_relative}${thetarget}.pid\"'" >>$src/apaci - echo "echo '-DDEFAULT_SCOREBOARD=\"${runtimedir_relative}${thetarget}.scoreboard\"'" >>$src/apaci - echo "echo '-DDEFAULT_LOCKFILE=\"${runtimedir_relative}${thetarget}.lock\"'" >>$src/apaci --echo "echo '-DDEFAULT_ERRORLOG=\"${logfiledir_relative}error_log\"'" >>$src/apaci -+echo "echo '-DDEFAULT_ERRORLOG=\"${logfiledir_relative}httpd-error.log\"'" >>$src/apaci - echo "echo '-DTYPES_CONFIG_FILE=\"${sysconfdir_relative}mime.types\"'" >>$src/apaci - echo "echo '-DSERVER_CONFIG_FILE=\"${sysconfdir_relative}${thetarget}.conf\"'" >>$src/apaci - echo "echo '-DACCESS_CONFIG_FILE=\"${sysconfdir_relative}access.conf\"'" >>$src/apaci diff --git a/www/apache13-fp/files/patch-ab b/www/apache13-fp/files/patch-ab deleted file mode 100644 index 838a13835bc4..000000000000 --- a/www/apache13-fp/files/patch-ab +++ /dev/null @@ -1,162 +0,0 @@ ---- Makefile.tmpl.orig Wed Nov 28 09:02:12 2001 -+++ Makefile.tmpl Tue Feb 12 23:07:11 2002 -@@ -127,6 +127,7 @@ - runtimedir = @runtimedir@ - logfiledir = @logfiledir@ - proxycachedir = @proxycachedir@ -+docsdir = $(prefix)/share/doc/apache - - libexecdir_relative = @libexecdir_relative@ - -@@ -270,10 +271,10 @@ - $(MKDIR) $(root)$(mandir)/man1 - $(MKDIR) $(root)$(mandir)/man8 - $(MKDIR) $(root)$(sysconfdir) -- $(MKDIR) $(root)$(htdocsdir) -+ $(MKDIR) $(root)$(docsdir) - $(MKDIR) $(root)$(manualdir) - $(MKDIR) $(root)$(iconsdir) -- $(MKDIR) $(root)$(cgidir) -+ $(MKDIR) $(root)$(cgidir).default - $(MKDIR) $(root)$(includedir) - $(MKDIR) $(root)$(includedir)/xml - $(MKDIR) $(root)$(runtimedir) -@@ -329,19 +330,34 @@ - echo "$(INSTALL_DSO) $(TOP)/$(SRC)/$${mod} $(root)$(libexecdir)/$${file}"; \ - $(INSTALL_DSO) $(TOP)/$(SRC)/$${mod} $(root)$(libexecdir)/$${file}; \ - name=`$(TOP)/$(AUX)/fmn.sh $(TOP)/$(SRC)/$${mod}`; \ -+ if [ ".$$name" = .frontpage_module ]; then \ -+ echo "<IfDefine MOD_FP>" >>$(SRC)/.apaci.install.conf; \ -+ fi; \ - echo dummy | awk '{ printf("LoadModule %-18s %s\n", modname, modpath); }' \ - modname="$${name}" modpath="$(libexecdir_relative)$${file}" >>$(SRC)/.apaci.install.conf; \ -+ if [ ".$$name" = .frontpage_module ]; then \ -+ echo "</IfDefine>" >>$(SRC)/.apaci.install.conf; \ -+ fi; \ - done; \ - echo "" >>$(SRC)/.apaci.install.conf; \ - echo "# Reconstruction of the complete module list from all available modules" >>$(SRC)/.apaci.install.conf; \ - echo "# (static and shared ones) to achieve correct module execution order." >>$(SRC)/.apaci.install.conf; \ - echo "# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE THIS, TOO]" >>$(SRC)/.apaci.install.conf; \ - echo "ClearModuleList" >>$(SRC)/.apaci.install.conf; \ -- egrep "^[ ]*(Add|Shared)Module" $(SRC)/Configuration.apaci |\ -- sed -e 's:SharedModule:AddModule:' \ -- -e 's:modules/[^/]*/::' \ -- -e 's:[ ]lib: mod_:' \ -- -e 's:\.[soam].*$$:.c:' >>$(SRC)/.apaci.install.conf; \ -+ for mod in `egrep "^[ ]*(Add|Shared)Module" $(SRC)/Configuration.apaci |\ -+ sed -e 's:[ ]*SharedModule::' \ -+ -e 's:[ ]*AddModule::' \ -+ -e 's:modules/[^/]*/::' \ -+ -e 's:[ ]lib: mod_:' \ -+ -e 's:\.[soam].*$$:.c:'`; do \ -+ if [ ".$$mod" = .mod_frontpage.c ]; then \ -+ echo "<IfDefine MOD_FP>" >>$(SRC)/.apaci.install.conf; \ -+ fi; \ -+ echo "AddModule $$mod" >>$(SRC)/.apaci.install.conf; \ -+ if [ ".$$mod" = .mod_frontpage.c ]; then \ -+ echo "</IfDefine>" >>$(SRC)/.apaci.install.conf; \ -+ fi; \ -+ done; \ - fi - @echo "<=== [programs]" - -@@ -411,6 +427,7 @@ - echo "$(INSTALL_SCRIPT) $(TOP)/$(SRC)/support/apachectl[*] $(root)$(sbindir)/$${apachectl}"; \ - sed -e 's;PIDFILE=.*;PIDFILE=$(runtimedir)/$(TARGET).pid;' \ - -e 's;HTTPD=.*;HTTPD=$(sbindir)/$(TARGET);' \ -+ -e 's;LD_LIBRARY_PATH=.*;LD_LIBRARY_PATH=/usr/lib\:$(prefix)/lib;' \ - < $(TOP)/$(SRC)/support/apachectl > $(TOP)/$(SRC)/.apaci.install.tmp && \ - $(INSTALL_SCRIPT) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(sbindir)/$${apachectl}; \ - echo "$(INSTALL_DATA) $(TOP)/$(SRC)/support/apachectl.8 $(root)$(mandir)/man8/$${apachectl}.8"; \ -@@ -459,15 +476,15 @@ - # icons and distributed CGI scripts. - install-data: - @echo "===> [data: Installing initial data files]" -- -@if [ -f $(root)$(htdocsdir)/index.html ] || [ -f $(root)$(htdocsdir)/index.html.en ]; then \ -- echo "[PRESERVING EXISTING DATA SUBDIR: $(root)$(htdocsdir)/]"; \ -- else \ -- echo "Copying tree $(TOP)/htdocs/ -> $(root)$(htdocsdir)/"; \ -+# -@if [ -f $(root)$(htdocsdir)/index.html ] || [ -f $(root)$(htdocsdir)/index.html.en ]; then \ -+# echo "[PRESERVING EXISTING DATA SUBDIR: $(root)$(htdocsdir)/]"; \ -+# else \ -+ echo "Copying tree $(TOP)/htdocs/ -> $(root)$(docsdir)/"; \ - (cd $(TOP)/htdocs/ && $(TAR) $(TAROPT) - index* apache_pb.* ) |\ -- (cd $(root)$(htdocsdir)/ && $(TAR) -xf -); \ -- find $(root)$(htdocsdir)/ -type d -exec chmod a+rx {} \; ; \ -- find $(root)$(htdocsdir)/ -type f -print | xargs chmod a+r ; \ -- fi -+ (cd $(root)$(docsdir)/ && $(TAR) -xf -); \ -+ find $(root)$(docsdir)/ -type d -exec chmod a+rx {} \; ; \ -+ find $(root)$(docsdir)/ -type f -print | xargs chmod a+r ; \ -+# fi - -@if [ -d $(TOP)/htdocs/manual ]; then \ - echo "Copying tree $(TOP)/htdocs/manual -> $(root)/$(manualdir)/"; \ - (cd $(TOP)/htdocs/manual/ && $(TAR) $(TAROPT) - *) |\ -@@ -475,17 +492,17 @@ - find $(root)$(manualdir)/ -type d -exec chmod a+rx {} \; ; \ - find $(root)$(manualdir)/ -type f -print | xargs chmod a+r ; \ - fi -- -@if [ -f $(root)$(cgidir)/printenv ]; then \ -- echo "[PRESERVING EXISTING CGI SUBDIR: $(root)$(cgidir)/]"; \ -- else \ -+# -@if [ -f $(root)$(cgidir)/printenv ]; then \ -+# echo "[PRESERVING EXISTING CGI SUBDIR: $(root)$(cgidir)/]"; \ -+# else \ - for script in printenv test-cgi; do \ - cat $(TOP)/cgi-bin/$${script} |\ - sed -e 's;^#!/.*perl;#!$(PERL);' \ - > $(TOP)/$(SRC)/.apaci.install.tmp; \ -- echo "$(INSTALL_DATA) $(TOP)/conf/$${script}[*] $(root)$(cgidir)/$${script}"; \ -- $(INSTALL_DATA) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(cgidir)/$${script}; \ -+ echo "$(INSTALL_DATA) $(TOP)/conf/$${script}[*] $(root)$(cgidir).default/$${script}"; \ -+ $(INSTALL_DATA) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(cgidir).default/$${script}; \ - done; \ -- fi -+# fi - @echo "Copying tree $(TOP)/icons/ -> $(root)$(iconsdir)/"; \ - (cd $(TOP)/icons/ && $(TAR) $(TAROPT) - *) |\ - (cd $(root)$(iconsdir)/ && $(TAR) -xf -); \ -@@ -519,15 +536,17 @@ - -e 's;@@ServerRoot@@/icons;$(iconsdir);' \ - -e 's;@@ServerRoot@@/cgi-bin;$(cgidir);' \ - -e 's;@@ServerRoot@@/proxy;$(proxycachedir);' \ -+ -e 's;@@ServerRoot@@/srm.conf;/dev/null;' \ -+ -e 's;@@ServerRoot@@/access.conf;/dev/null;' \ - -e 's;@@ServerRoot@@;$(prefix);g' \ - -e 's;httpd\.conf;$(TARGET).conf;' \ - -e 's;logs/accept\.lock;$(runtimedir)/$(TARGET).lock;' \ - -e 's;logs/apache_runtime_status;$(runtimedir)/$(TARGET).scoreboard;' \ - -e 's;logs/httpd\.pid;$(runtimedir)/$(TARGET).pid;' \ -- -e "s;logs/access_log;$(logfiledir)/$${target_prefix}access_log;" \ -- -e "s;logs/error_log;$(logfiledir)/$${target_prefix}error_log;" \ -- -e "s;logs/referer_log;$(logfiledir)/$${target_prefix}referer_log;" \ -- -e "s;logs/agent_log;$(logfiledir)/$${target_prefix}agent_log;" \ -+ -e "s;logs/access_log;$(logfiledir)/httpd-access.log;" \ -+ -e "s;logs/error_log;$(logfiledir)/httpd-error.log;" \ -+ -e "s;logs/referer_log;$(logfiledir)/httpd-referer.log;" \ -+ -e "s;logs/agent_log;$(logfiledir)/httpd-agent.log;" \ - -e 's;conf/magic;$(sysconfdir)/magic;' \ - -e 's;conf/mime\.types;$(sysconfdir)/mime.types;' \ - -e 's;User nobody;User $(conf_user);' \ -@@ -539,13 +558,14 @@ - > $(TOP)/$(SRC)/.apaci.install.tmp && \ - echo "$(INSTALL_DATA) $(TOP)/conf/$${conf}-dist[*] $(root)$(sysconfdir)/$${target_conf}.default"; \ - $(INSTALL_DATA) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(sysconfdir)/$${target_conf}.default; \ -- if [ ! -f "$(root)$(sysconfdir)/$${target_conf}" ]; then \ -- echo "$(INSTALL_DATA) $(TOP)/conf/$${conf}-dist[*] $(root)$(sysconfdir)/$${target_conf}"; \ -- $(INSTALL_DATA) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(sysconfdir)/$${target_conf}; \ -- else \ -- echo "[PRESERVING EXISTING CONFIG FILE: $(root)$(sysconfdir)/$${target_conf}]"; \ -- fi; \ - done -+# if [ ! -f "$(root)$(sysconfdir)/$${target_conf}" ]; then \ -+# echo "$(INSTALL_DATA) $(TOP)/conf/$${conf}-dist[*] $(root)$(sysconfdir)/$${target_conf}"; \ -+# $(INSTALL_DATA) $(TOP)/$(SRC)/.apaci.install.tmp $(root)$(sysconfdir)/$${target_conf}; \ -+# else \ -+# echo "[PRESERVING EXISTING CONFIG FILE: $(root)$(sysconfdir)/$${target_conf}]"; \ -+# fi; \ -+# done - -@for conf in mime.types magic; do \ - echo "$(INSTALL_DATA) $(TOP)/conf/$${conf} $(root)$(sysconfdir)/$${conf}.default"; \ - $(INSTALL_DATA) $(TOP)/conf/$${conf} $(root)$(sysconfdir)/$${conf}.default; \ diff --git a/www/apache13-fp/files/patch-ag b/www/apache13-fp/files/patch-ag deleted file mode 100644 index ed0f472bc837..000000000000 --- a/www/apache13-fp/files/patch-ag +++ /dev/null @@ -1,133 +0,0 @@ ---- conf/httpd.conf-dist.orig Wed Jan 9 10:05:31 2002 -+++ conf/httpd.conf-dist Fri Jan 25 15:07:51 2002 -@@ -95,6 +95,9 @@ - #ResourceConfig conf/srm.conf - #AccessConfig conf/access.conf - -+ResourceConfig @@ServerRoot@@/srm.conf -+AccessConfig @@ServerRoot@@/access.conf -+ - # - # Timeout: The number of seconds before receives and sends time out. - # -@@ -276,7 +279,7 @@ - # documents. By default, all requests are taken from this directory, but - # symbolic links and aliases may be used to point to other locations. - # --DocumentRoot "@@ServerRoot@@/htdocs" -+DocumentRoot @@ServerRoot@@/htdocs - - # - # Each directory to which Apache has access, can be configured with respect -@@ -317,7 +320,16 @@ - # override. Can also be "All", or any combination of "Options", "FileInfo", - # "AuthConfig", and "Limit" - # -- AllowOverride None -+<IfDefine MOD_FP> -+### These are the Minimum options need by the FrontPage Module. -+### With out these options set the FrontPage Client will not be -+### able to access the server. -+ AllowOverride AuthConfig Limit Indexes Options -+</IfDefine> -+ -+<IfDefine !MOD_FP> -+# AllowOverride None -+</IfDefine> - - # - # Controls who can get stuff from this server. -@@ -351,12 +363,36 @@ - # </LimitExcept> - #</Directory> - -+### In Order for FrontPage to work in User and Virtual ### -+### Web Directories, they need to be set up as shown: ### -+<IfDefine MOD_FP> -+ <Directory /*/public_html> -+ AllowOverride AuthConfig Limit Indexes Options -+ Options ExecCGI -+ </Directory> -+</IfDefine> -+ - # - # DirectoryIndex: Name of the file or files to use as a pre-written HTML - # directory index. Separate multiple entries with spaces. - # - <IfModule mod_dir.c> -- DirectoryIndex index.html -+ <IfModule mod_php3.c> -+ <IfModule mod_php4.c> -+ DirectoryIndex index.php index.php3 index.html -+ </IfModule> -+ <IfModule !mod_php4.c> -+ DirectoryIndex index.php3 index.html -+ </IfModule> -+ </IfModule> -+ <IfModule !mod_php3.c> -+ <IfModule mod_php4.c> -+ DirectoryIndex index.php index.html -+ </IfModule> -+ <IfModule !mod_php4.c> -+ DirectoryIndex index.html -+ </IfModule> -+ </IfModule> - </IfModule> - - # -@@ -476,7 +512,7 @@ - # define per-<VirtualHost> access logfiles, transactions will be - # logged therein and *not* in this file. - # --CustomLog logs/access_log common -+#CustomLog logs/access_log common - - # - # If you would like to have agent and referer logfiles, uncomment the -@@ -489,7 +525,7 @@ - # If you prefer a single logfile with access, agent, and referer information - # (Combined Logfile Format) you can use the following directive. - # --#CustomLog logs/access_log combined -+CustomLog logs/access_log combined - - # - # Optionally add a line containing the server version and virtual host -@@ -765,6 +801,21 @@ - # AddType allows you to tweak mime.types without actually editing it, or to - # make certain files to be certain types. - # -+ # For example, the PHP 3.x module (not part of the Apache distribution - see -+ # http://www.php.net) will typically use: -+ # -+ <IfModule mod_php3.c> -+ AddType application/x-httpd-php3 .php3 -+ AddType application/x-httpd-php3-source .php3s -+ </IfModule> -+ # -+ # And for PHP 4.x, use: -+ # -+ <IfModule mod_php4.c> -+ AddType application/x-httpd-php .php -+ AddType application/x-httpd-php-source .phps -+ </IfModule> -+ - AddType application/x-tar .tgz - - # -@@ -972,4 +1023,15 @@ - # ServerName dummy-host.example.com - # ErrorLog logs/dummy-host.example.com-error_log - # CustomLog logs/dummy-host.example.com-access_log common -+#</VirtualHost> -+ -+# This Virtual Host makes it so FrontPage will display pages from the -+# root web. When multiple Listen directives are specified, Frontpage -+# will try to access the pages from the wrong virutal host. This fixes it. -+# -+#NOTE: This Virtual Host Entry must be kept as the last _default_ -+# virtual host entry. -+#<VirtualHost _default_:80> -+# ServerAdmin webmaster@@@HOSTNAME@@ -+# ServerName @@HOSTNAME@@ - #</VirtualHost> diff --git a/www/apache13-fp/files/patch-ak b/www/apache13-fp/files/patch-ak deleted file mode 100644 index a976cce63aa7..000000000000 --- a/www/apache13-fp/files/patch-ak +++ /dev/null @@ -1,117 +0,0 @@ ---- src/support/apachectl.orig Tue Apr 6 15:36:33 1999 -+++ src/support/apachectl Thu Feb 24 22:20:05 2000 -@@ -27,6 +27,10 @@ - # the path to your httpd binary, including options if necessary - HTTPD='/usr/local/apache/src/httpd' - # -+# shared object search path -+LD_LIBRARY_PATH= -+export LD_LIBRARY_PATH -+# - # a command that outputs a formatted text version of the HTML at the - # url given on the command line. Designed for lynx, however other - # programs may work. -@@ -39,6 +43,8 @@ - # -------------------- -------------------- - # |||||||||||||||||||| END CONFIGURATION SECTION |||||||||||||||||||| - -+eval `limits -e -C daemon` >/dev/null 2>&1 -+ - ERROR=0 - ARGV="$@" - if [ "x$ARGV" = "x" ] ; then -@@ -47,6 +53,9 @@ - - for ARG in $@ $ARGS - do -+ -+ MODULES=`echo $ARG | awk 'BEGIN { RS="_"}!($1 == "start" || $1 == "stop" || $1 == "restart" || $1 == "fullstatus" || $1 == "status" || $1 == "graceful" || $1 == "configtest"){ s = sprintf("%s -DMOD_%s", s, $1)}END{ printf s}'` -+ - # check for pidfile - if [ -f $PIDFILE ] ; then - PID=`cat $PIDFILE` -@@ -63,12 +72,12 @@ - fi - - case $ARG in -- start) -+ start*) - if [ $RUNNING -eq 1 ]; then - echo "$0 $ARG: httpd (pid $PID) already running" - continue - fi -- if $HTTPD ; then -+ if $HTTPD $MODULES; then - echo "$0 $ARG: httpd started" - else - echo "$0 $ARG: httpd could not be started" -@@ -82,22 +91,23 @@ - fi - if kill $PID ; then - echo "$0 $ARG: httpd stopped" -+ rm $PIDFILE - else - echo "$0 $ARG: httpd could not be stopped" - ERROR=4 - fi - ;; -- restart) -+ restart*) - if [ $RUNNING -eq 0 ]; then - echo "$0 $ARG: httpd not running, trying to start" -- if $HTTPD ; then -+ if $HTTPD $MODULES; then - echo "$0 $ARG: httpd started" - else - echo "$0 $ARG: httpd could not be started" - ERROR=5 - fi - else -- if $HTTPD -t >/dev/null 2>&1; then -+ if $HTTPD -t ${MODULES} >/dev/null 2>&1; then - if kill -HUP $PID ; then - echo "$0 $ARG: httpd restarted" - else -@@ -111,17 +121,17 @@ - fi - fi - ;; -- graceful) -+ graceful*) - if [ $RUNNING -eq 0 ]; then - echo "$0 $ARG: httpd not running, trying to start" -- if $HTTPD ; then -+ if $HTTPD $MODULES; then - echo "$0 $ARG: httpd started" - else - echo "$0 $ARG: httpd could not be started" - ERROR=5 - fi - else -- if $HTTPD -t >/dev/null 2>&1; then -+ if $HTTPD -t ${MODULES} >/dev/null 2>&1; then - if kill -USR1 $PID ; then - echo "$0 $ARG: httpd gracefully restarted" - else -@@ -141,8 +151,8 @@ - fullstatus) - $LYNX $STATUSURL - ;; -- configtest) -- if $HTTPD -t; then -+ configtest*) -+ if $HTTPD -t ${MODULES}; then - : - else - ERROR=8 -@@ -161,6 +171,10 @@ - graceful - do a graceful restart by sending a SIGUSR1 or start if not running - configtest - do a configuration syntax test - help - this screen -+ -+ -+ NOTE: You may also use (start|restart|graceful|configtest)_MODULE1[_MODULE2[..]] -+ to start the server with -DMOD_MODULE1[ -DMOD_MODULE2[..]]. - - EOF - ERROR=2 diff --git a/www/apache13-fp/files/patch-al b/www/apache13-fp/files/patch-al deleted file mode 100644 index b355a697b4ab..000000000000 --- a/www/apache13-fp/files/patch-al +++ /dev/null @@ -1,24 +0,0 @@ ---- src/support/log_server_status.orig Fri Jun 4 19:54:19 1999 -+++ src/support/log_server_status Fri Sep 3 15:53:16 1999 -@@ -67,10 +67,10 @@ - # - require 'sys/socket.ph'; - --$wherelog = "/var/log/graph/"; # Logs will be like "/var/log/graph/19960312" -+$wherelog = "/var/log/httpd-status-"; - $server = "localhost"; # Name of server, could be "www.foo.com" - $port = "80"; # Port on server --$request = "/status/?auto"; # Request to send -+$request = "/server-status/?auto"; # Request to send - - sub tcp_connect - { -@@ -100,7 +100,7 @@ - chomp($date); - ($day,$time)=split(/:/,$date); - $res=&tcp_connect($server,$port); -- open(OUT,">>$wherelog$day"); -+ open(OUT,">>$wherelog$day.log"); - if ($res) { - print OUT "$time:-1:-1:-1:-1:$res\n"; - exit 1; diff --git a/www/apache13-fp/files/patch-fd b/www/apache13-fp/files/patch-fd deleted file mode 100644 index 737ed6fa9358..000000000000 --- a/www/apache13-fp/files/patch-fd +++ /dev/null @@ -1,55 +0,0 @@ ---- src/support/suexec.h.orig Fri Jan 1 13:05:35 1999 -+++ src/support/suexec.h Fri Nov 5 19:55:49 1999 -@@ -56,6 +56,17 @@ - */ - - /* -+ * "FPEXE modification made on 98.05.21 by Scot Hetzel (hetzels@westbend.net) -+ * based on previous FPEXE modifications supplied by Mark Wormgoor -+ * (riddles@ipe.nl) -+ * -+ * Changes were made in order to use Suexec and Frontpage 98 at the same time. -+ * After we change to the target_uid and target_gid. We check if cmd = FPEXE, -+ * if it does then we execute the cmd without performing any further tests. -+ * -+ */ -+ -+/* - * suexec.h -- user-definable variables for the suexec wrapper code. - * (See README.configure on how to customize these variables.) - */ -@@ -130,6 +141,34 @@ - */ - #ifndef DOC_ROOT - #define DOC_ROOT "/usr/local/apache/htdocs" -+#endif -+ -+/* -+ * FPEXE, FPSTUB -+ * FPSTUBDIR -- We are running frontpage and we don't need to run -+ * fpexe suid, since it's already set suid. Also, the -+ * dir-rights are incorrect and so on... -+ */ -+#ifndef FPEXE -+#define FPEXE "fpexe" -+#endif -+ -+#ifndef FPSTUBDIR -+#define FPSTUBDIR "/usr/local/frontpage/version4.0/apache-fp/_vti_bin" -+#endif -+ -+#ifndef FPSTUB -+#define FPSTUB FPSTUBDIR "/fpexe" -+#endif -+ -+/* -+ * SYSTEM_CGI -- Define as the cgi directory for system-wide CGI's -+ * Note that UID/GID of the cgi or the directory are -+ * NOT matched if they're in this directory, although -+ * all the other checks still apply. Caveat Emptor. -+*/ -+#ifndef SYSTEM_CGI -+#define SYSTEM_CGI "/usr/local/www/cgi-bin" - #endif - - /* diff --git a/www/apache13-fp/files/patch-fe b/www/apache13-fp/files/patch-fe deleted file mode 100644 index 2e4fd965c3b6..000000000000 --- a/www/apache13-fp/files/patch-fe +++ /dev/null @@ -1,169 +0,0 @@ ---- src/support/suexec.c.orig Tue Jan 11 13:47:59 2000 -+++ src/support/suexec.c Sun Feb 20 17:38:47 2000 -@@ -82,11 +82,35 @@ - * info: Normal activity message - * debug: Self-explanatory - */ -+/* -+ * "System" CGI modification 97.05.10 by Rick Franchuk (rickf@netnation.com) -+ * -+ * I found that while it's great to make scripts run under the UID and GID -+ * specified in httpd.conf or what /etc/passwd says is 'cool', suEXEC can -+ * really put a damper on 'System' cgi's, forcing copies of the scripts -+ * to be installed into users' home directories. That didn't seem very -+ * fitting... so I changed it so that the target UID check is disabled in -+ * a system directory #defined in suexec+.h. I hope you all find it useful. -+ * -+ * The docroot check had to be bypassed to allow functionality for VirtualHost -+ * entries. I'm somewhat suprised noone encountered that behavior before. -+ */ -+ /* -+ * "FPEXE modification made on 98.05.19 by Scot Hetzel (hetzels@westbend.net) -+ * based on previous FPEXE modifications supplied by Mark Wormgoor -+ * (riddles@ipe.nl) -+ * -+ * Changes were made in order to use Suexec and Frontpage 98 at the same time. -+ * After we change to the target_uid and target_gid. We check if cmd = FPEXE, -+ * if it does then we execute the cmd without performing any further tests. -+ * -+ */ - - #include "ap_config.h" - #include <sys/param.h> - #include <sys/stat.h> - #include <sys/types.h> -+#include <login_cap.h> - - #include <stdarg.h> - -@@ -262,6 +286,7 @@ - char *cmd; /* command to be executed */ - char cwd[AP_MAXPATH]; /* current working directory */ - char dwd[AP_MAXPATH]; /* docroot working directory */ -+ login_cap_t *lc; /* user resource limits */ - struct passwd *pw; /* password entry holder */ - struct group *gr; /* group entry holder */ - struct stat dir_info; /* directory info holder */ -@@ -420,6 +445,19 @@ - } - - /* -+ * Apply user resource limits based on login class. -+ */ -+ if ((lc = login_getclassbyname(pw->pw_class, pw)) == NULL) { -+ log_err("login_getclassbyname() failed\n"); -+ exit(248); -+ } -+ -+ if ((setusercontext(lc, pw, uid, LOGIN_SETRESOURCES)) != 0) { -+ log_err("setusercontext() failed\n"); -+ exit(249); -+ } -+ -+ /* - * Change UID/GID here so that the following tests work over NFS. - * - * Initialize the group access list for the target user, -@@ -439,6 +477,14 @@ - } - - /* -+ * We logged everything, changed to the target uid/gid, and know the -+ * user is ok. We run fpexe now and bail out before anything goes wrong. -+ */ -+#ifdef FPEXE -+ if ((strcmp(cmd, FPEXE)) != NULL) { -+#endif -+ -+ /* - * Get the current working directory, as well as the proper - * document root (dependant upon whether or not it is a - * ~userdir request). Error out if we cannot get either one, -@@ -470,10 +516,16 @@ - } - } - -+ /* -+ * This section must be commented out to work properly with -+ * VirtualHosts running CGI in thier own directories. -+ * -+ - if ((strncmp(cwd, dwd, strlen(dwd))) != 0) { - log_err("error: command not in docroot (%s/%s)\n", cwd, cmd); - exit(114); - } -+ */ - - /* - * Stat the cwd and verify it is a directory, or error out. -@@ -519,6 +571,9 @@ - * Error out if the target name/group is different from - * the name/group of the cwd or the program. - */ -+#ifdef SYSTEM_CGI -+ if (strncmp(cwd, SYSTEM_CGI, strlen(SYSTEM_CGI))) { -+#endif - if ((uid != dir_info.st_uid) || - (gid != dir_info.st_gid) || - (uid != prg_info.st_uid) || -@@ -530,6 +585,10 @@ - prg_info.st_uid, prg_info.st_gid); - exit(120); - } -+#ifdef SYSTEM_CGI -+ } -+#endif -+ - /* - * Error out if the program is not executable for the user. - * Otherwise, she won't find any error in the logs except for -@@ -551,6 +610,49 @@ - umask(SUEXEC_UMASK); - #endif /* SUEXEC_UMASK */ - clean_env(); -+ -+#ifdef FPEXE -+ } -+ else { -+ -+ /* The following taken from mod_frontpage.c to check permissions */ -+ -+ /* -+ * We can't stat the stub dir. Make sure the stub directory is not -+ * owned by root and not group/world writable -+ */ -+ if ((lstat(FPSTUBDIR, &dir_info) == -1 || -+ dir_info.st_uid || -+ (dir_info.st_mode & (S_IWGRP | S_IWOTH)) || -+ (!S_ISDIR(dir_info.st_mode)))) { -+ /* -+ * User recovery: set directory to be owned by by root with -+ * permissions r*x*-x*-x. -+ */ -+ log_err("Incorrect permissions on stub directory \"%-.1024s\"", -+ FPSTUBDIR); -+ exit (250); -+ } -+ -+ /* -+ * We can't stat the stub. Make sure the stub is not owned by root, -+ * set-uid, set-gid, and is not group/world writable or executable. -+ */ -+ if ((stat(cmd, &prg_info) == -1 || -+ prg_info.st_uid || -+ !(prg_info.st_mode & S_ISUID) || -+ (prg_info.st_mode & S_ISGID) || -+ (prg_info.st_mode & (S_IWGRP | S_IWOTH)) || -+ !(prg_info.st_mode & (S_IXGRP | S_IXOTH)))) { -+ /* -+ * User recovery: set stub to be owned by by root with permissions -+ * r*s*-x*-x. -+ */ -+ log_err("Incorrect permissions on stub \"%-.1024s\"", cmd); -+ exit (251); -+ } -+ } -+#endif - - /* - * Be sure to close the log file so the CGI can't diff --git a/www/apache13-fp/files/patch-ff b/www/apache13-fp/files/patch-ff deleted file mode 100644 index dbb076f676a5..000000000000 --- a/www/apache13-fp/files/patch-ff +++ /dev/null @@ -1,11 +0,0 @@ ---- src/support/Makefile.tmpl.orig Thu Dec 9 11:19:48 1999 -+++ src/support/Makefile.tmpl Sun Feb 20 17:43:34 2000 -@@ -39,7 +39,7 @@ - -e 's%@LIBS_SHLIB@%$(LIBS_SHLIB)%g' && chmod a+x apxs - - suexec: suexec.o -- $(CC) $(CFLAGS) -o suexec $(LDFLAGS) suexec.o $(LIBS) -+ $(CC) $(CFLAGS) -o suexec $(LDFLAGS) suexec.o $(LIBS) -lutil - - clean: - rm -f $(TARGETS) *.o diff --git a/www/apache13-fp/files/patch-fh b/www/apache13-fp/files/patch-fh deleted file mode 100644 index 0e45ae964f41..000000000000 --- a/www/apache13-fp/files/patch-fh +++ /dev/null @@ -1,10 +0,0 @@ ---- src/include/httpd.h.orig Mon Oct 8 22:56:05 2001 -+++ src/include/httpd.h Wed Oct 17 14:37:56 2001 -@@ -855,6 +855,7 @@ - * record to improve 64bit alignment the next time we need to break - * binary compatibility for some other reason. - */ -+ char *execfilename; /* physical filename to exec */ - }; - - diff --git a/www/apache13-fp/files/patch-fi b/www/apache13-fp/files/patch-fi deleted file mode 100644 index dff77f91e093..000000000000 --- a/www/apache13-fp/files/patch-fi +++ /dev/null @@ -1,37 +0,0 @@ ---- src/main/http_request.c.orig Tue Jan 11 08:13:41 2000 -+++ src/main/http_request.c Sun Feb 20 18:44:49 2000 -@@ -176,7 +176,7 @@ - { - char *cp; - char *path = r->filename; -- char *end = &path[strlen(path)]; -+ char *end; - char *last_cp = NULL; - int rv; - #ifdef HAVE_DRIVE_LETTERS -@@ -188,6 +188,9 @@ - return OK; - } - -+ if (r->execfilename) path = r->execfilename; -+ end = path + strlen(path); -+ - #ifdef HAVE_DRIVE_LETTERS - /* If the directory is x:\, then we don't want to strip - * the trailing slash since x: is not a valid directory. -@@ -576,6 +579,7 @@ - res = ap_parse_htaccess(&htaccess_conf, r, overrides_here, - ap_pstrdup(r->pool, test_dirname), - sconf->access_name); -+ if (r->execfilename) r->filename = r->execfilename; - if (res) - return res; - -@@ -586,6 +590,7 @@ - r->per_dir_config = per_dir_defaults; - } - } -+ if (r->execfilename) r->filename = r->execfilename; - } - - /* diff --git a/www/apache13-fp/files/patch-fj b/www/apache13-fp/files/patch-fj deleted file mode 100644 index 0df391d7b4d8..000000000000 --- a/www/apache13-fp/files/patch-fj +++ /dev/null @@ -1,11 +0,0 @@ ---- src/main/util.c.orig Thu Feb 1 04:06:37 2001 -+++ src/main/util.c Wed Mar 21 21:12:35 2001 -@@ -708,7 +708,7 @@ - char *res; - - for (x = 0; (*line)[x]; x++) { -- if (ap_isspace((*line)[x])) { -+ if (ap_isspace((*line)[x]) && ((*line)[x] & 0x80)==0) { - pos = x; - break; - } diff --git a/www/apache13-fp/files/patch-lang.en b/www/apache13-fp/files/patch-lang.en deleted file mode 100644 index 72b578997fe0..000000000000 --- a/www/apache13-fp/files/patch-lang.en +++ /dev/null @@ -1,32 +0,0 @@ ---- htdocs/index.html.en.orig Thu May 3 19:00:38 2001 -+++ htdocs/index.html.en Wed Oct 17 18:58:19 2001 -@@ -29,10 +29,26 @@ - <p>The Apache <a href="manual/">documentation</a> has been included - with this distribution.</p> - --<p>You are free to use the image below on an Apache-powered web --server. Thanks for using Apache!</p> -+<p>The Microsoft FrontPage 2002 Extentions has been installed with this -+Apache Server. Read the -+<A HREF="manual/frontpage/">Microsoft FrontPage 2002 documentation</A> -+carefully.</p> -+ -+<p>Information of the FreeBSD operating system can be found on the -+<A HREF="http://www.freebsd.org">FreeBSD</A> web site.</p> -+ -+<p>You are free to use the images below on the Apache-powered web -+server. Thanks for using Apache and FreeBSD!</p> -+ -+<DIV ALIGN="CENTER"> -+ <A HREF="http://www.apache.org"> -+ <IMG SRC="/images/apache_pb.gif" ALT="Powered by Apache"></A> -+ <A HREF="http://www.freebsd.org"> -+ <IMG SRC="/images/powerlogo.gif" ALT="Site driven by FreeBSD - FreeBSD: The Power to Server!"></A> -+ <A HREF="http://www.microsoft.com/frontpage/default.htm"> -+ <IMG SRC="/images/createdwFP.gif" ALT="Create with Microsoft Frontpage 2002"></A> -+</DIV> - --<div align="center"><img src="apache_pb.gif" alt="" /></div> - </body> - </html> - |