mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-04-22 23:11:15 +00:00
* GSWAdaptors/Apache/mod_gsweb.c: Rename GSWeb_Module to
gsweb_module for apxs integration. * INSTALL: Refer to GSWAdaptors/Apache/INSTALL for Apache specific installation instructions. Move Apache specific installation instructions to GSWAdaptors/Apache/INSTALL. * GSWAdaptors/Apache/INSTALL: Update to new ./configure usage and new install and httpdconfig make targets. * GSWAdaptors/Apache/GNUmakefile.in: New file to build the adaptor module with apxs and apr-config. * GSWAdaptors/Apache/configure[.ac]: New files * GSWAdaptors/Apache/config.guess: Ditto. * GSWAdaptors/Apache/config.sub: Ditto. * GSWAdaptors/Apache/install-sh: Ditto. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@21206 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
b8d239ee06
commit
00f397580c
10 changed files with 8220 additions and 91 deletions
22
ChangeLog
22
ChangeLog
|
@ -1,15 +1,31 @@
|
|||
2005-05-04 David Ayers <d.ayers@inode.at>
|
||||
2005-05-09 David Ayers <d.ayers@inode.at>
|
||||
|
||||
* GSWAdaptors/Apache/mod_gsweb.c: Rename GSWeb_Module to
|
||||
gsweb_module for apxs integration.
|
||||
* INSTALL: Refer to GSWAdaptors/Apache/INSTALL for Apache
|
||||
specific installation instructions. Move Apache specific
|
||||
installation instructions to GSWAdaptors/Apache/INSTALL.
|
||||
* GSWAdaptors/Apache/INSTALL: Update to new ./configure
|
||||
usage and new install and httpdconfig make targets.
|
||||
* GSWAdaptors/Apache/GNUmakefile.in: New file to build
|
||||
the adaptor module with apxs and apr-config.
|
||||
* GSWAdaptors/Apache/configure[.ac]: New files
|
||||
* GSWAdaptors/Apache/config.guess: Ditto.
|
||||
* GSWAdaptors/Apache/config.sub: Ditto.
|
||||
* GSWAdaptors/Apache/install-sh: Ditto.
|
||||
|
||||
2005-05-04 David Ayers <d.ayers@inode.at>
|
||||
|
||||
* GSWeb.framework/GSWUtils.h/m (GetTmpName): Remove unused
|
||||
function which generates warnings about tempnam usage.
|
||||
|
||||
2005-05-03 David Ayers <d.ayers@inode.at>
|
||||
2005-05-03 David Ayers <d.ayers@inode.at>
|
||||
|
||||
* GSWAdaptors/common/GSWStats.c (GSWStats_formatStats):
|
||||
Use standard strtod instead of the GNU extension strtof
|
||||
which is stored in a double anyway.
|
||||
|
||||
2005-05-02 David Ayers <d.ayers@inode.at>
|
||||
2005-05-02 David Ayers <d.ayers@inode.at>
|
||||
|
||||
* GNUmakefile, Examples/hello/GNUmakefile,
|
||||
GSWExtensions.framework/GNUmakefile,
|
||||
|
|
159
GSWAdaptors/Apache/GNUmakefile.in
Normal file
159
GSWAdaptors/Apache/GNUmakefile.in
Normal file
|
@ -0,0 +1,159 @@
|
|||
# Makefile for Apache GNUstepWeb module
|
||||
# Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# Written by: David Ayers <d.ayers@inode.at>
|
||||
# Based on work by: Manuel Guesdon <mguesdon@sbuilders.com>
|
||||
# Date: March 2005
|
||||
#
|
||||
# This file is part of the GNUstep Web Library.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# Library General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Library General Public
|
||||
# License along with this library; if not, write to the Free
|
||||
# Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
APXS:=@APXS@
|
||||
SERVERAPI:=@SERVERAPI@
|
||||
APRCONFIG:=@APRCONFIG@
|
||||
|
||||
C_CPPFLAGS=@CONFIG_CPPFLAGS@
|
||||
C_LDFLAGS=@CONFIG_LDFLAGS@
|
||||
|
||||
|
||||
# To avoid ABI (Application Binary Interface) issues
|
||||
# we build all module components with APXS which should
|
||||
# invoke the same compiler with the same options with
|
||||
# which the Apache server was built.
|
||||
# The following variables should be the basis of any
|
||||
# Apache specific flags we need to build the module.
|
||||
# Some are currently unused and should be removed once
|
||||
# this file stabalizes.
|
||||
AP_CC := $(shell ($(APXS) -q CC))
|
||||
AP_CFLAGS := $(shell ($(APXS) -q CFLAGS))
|
||||
AP_CFLAGS_SH := $(shell ($(APXS) -q CFLAGS_SHLIB))
|
||||
AP_LDFLAGS_SH := $(shell ($(APXS) -q LDFLAGS_SHLIB))
|
||||
AP_LIBS_SH := $(shell ($(APXS) -q LIBS_SHLIB))
|
||||
|
||||
AP_INCDIR := $(shell ($(APXS) -q INCLUDEDIR))
|
||||
AP_LIBDIR := $(shell ($(APXS) -q LIBEXECDIR))
|
||||
AP_SYSDIR := $(shell ($(APXS) -q SYSCONFDIR))
|
||||
|
||||
ifeq ($(SERVERAPI),Apache2)
|
||||
APR_CFLAGS := $(shell ($(APRCONFIG) --cflags))
|
||||
APR_CPPFLAGS := $(shell ($(APRCONFIG) --cppflags))
|
||||
APR_INCDIR := $(shell ($(APRCONFIG) --includedir))
|
||||
APR_LDFLAGS := $(shell ($(APRCONFIG) --ldflags))
|
||||
APR_LIBS := $(shell ($(APRCONFIG) --libs))
|
||||
|
||||
ifneq ($(APR_INCDIR),)
|
||||
APR_CPPFLAGS += -I$(APR_INCDIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
# It is not clear, why some versions of of apxs do not
|
||||
# specify -shared in AP_LDFLAGS_SH as it seems to be the
|
||||
# key flag to create DSO (Dynamic Shared Objects) which
|
||||
# is stated goal of apxs compilation. For now we
|
||||
# simply add it if AP_LDFLAGS_SH is not set.
|
||||
ifeq ($(AP_LDFLAGS_SH),)
|
||||
AP_LDFLAGS_SH = -shared
|
||||
endif
|
||||
|
||||
CC:=$(APXS) -c
|
||||
|
||||
# Not really sure how this variable is useful.
|
||||
SRCROOT = ..
|
||||
|
||||
ifeq ($(MOD_CONF_DIR),)
|
||||
MOD_CONF_DIR=$(AP_SYSDIR)
|
||||
endif
|
||||
|
||||
ifeq ($(SERVERAPI),Apache2)
|
||||
ADAPTOR := mod_gsweb.la
|
||||
else
|
||||
ADAPTOR := mod_gsweb.so
|
||||
endif
|
||||
MOD_CONF := mod_gsweb.conf
|
||||
|
||||
COMMON = $(SRCROOT)/common
|
||||
|
||||
GSW_CPPFLAGS = \
|
||||
-D$(SERVERAPI) -DREENTRANT -DEAPI \
|
||||
-I. -I$(COMMON) \
|
||||
-I$(AP_INCDIR) $(APR_CPPFLAGS) \
|
||||
$(C_CPPFLAGS) $(OTHER_CPPFLAGS)
|
||||
|
||||
GSW_CFLAGS = \
|
||||
$(AP_CFLAGS) $(AP_CFLAGS_SH) \
|
||||
$(APR_CFLAGS) \
|
||||
$(OTHER_CFLAGS)
|
||||
|
||||
GSW_LDFLAGS = \
|
||||
$(AP_LDFLAGS_SH) $(AP_LIBS_SH) \
|
||||
$(APR_LDFLAGS) $(APR_LIBS) \
|
||||
-lPropList \
|
||||
$(C_LDFLAGS) $(OTHER_LDFLAGS)
|
||||
|
||||
# We currently include the CPPFLAGS in the CFLAGS so the
|
||||
# common makefiles still work.
|
||||
comma:=,
|
||||
CFLAGS = $(GSW_CPPFLAGS)
|
||||
CFLAGS += $(addprefix -Wc$(comma),$(GSW_CFLAGS))
|
||||
LDFLAGS = $(addprefix -Wl$(comma),$(GSW_LDFLAGS))
|
||||
|
||||
# Declare default rule before including common.make
|
||||
all:: $(ADAPTOR) $(MOD_CONF)
|
||||
|
||||
# Include common.make to set COMMONFILES
|
||||
include $(COMMON)/common.make
|
||||
|
||||
# Link the final adaptor module with APXS
|
||||
$(ADAPTOR): $(COMMONFILES) $(SRCROOT)/Apache/mod_gsweb.c
|
||||
$(APXS) -c -o $@ $(APXS_FLAGS) $(CFLAGS) $(LDFLAGS) \
|
||||
$(COMMONFILES) $(SRCROOT)/Apache/mod_gsweb.c
|
||||
|
||||
# Create mod_gsweb.conf file based on MOD_CONF_DIR (apxs)
|
||||
$(MOD_CONF):
|
||||
@echo "Creating $(MOD_CONF)" ; \
|
||||
echo "# The this file is maintained by GSWeb " > $(MOD_CONF) ; \
|
||||
echo "GSWeb_ConfigFilePath $(MOD_CONF_DIR)/gsweb.conf" \
|
||||
>> $(MOD_CONF) ; \
|
||||
echo "GSWeb_Alias /GSWeb" >> $(MOD_CONF) ; \
|
||||
echo "<Location /GSWeb*>" >> $(MOD_CONF) ; \
|
||||
echo " SetHandler GSWeb" >> $(MOD_CONF) ; \
|
||||
echo "</Location>" >> $(MOD_CONF) ;
|
||||
|
||||
# Install module (via apxs) and mod_gsweb.conf file
|
||||
install: $(ADAPTOR) $(MOD_CONF)
|
||||
$(APXS) -i -n gsweb $(ADAPTOR)
|
||||
cp $(MOD_CONF) $(MOD_CONF_DIR)
|
||||
|
||||
httpdconfig: $(ADAPTOR)
|
||||
$(APXS) -e -a -n gsweb $(ADAPTOR)
|
||||
@if ( ! grep '$(MOD_CONF)' $(AP_SYSDIR)/httpd.conf \
|
||||
> /dev/null ) ; then \
|
||||
echo Updating $(AP_SYSDIR)/httpd.conf ; \
|
||||
echo "" >> $(AP_SYSDIR)/httpd.conf ; \
|
||||
echo "# The following line was added by GSWeb " \
|
||||
>> $(AP_SYSDIR)/httpd.conf ; \
|
||||
echo "Include $(AP_SYSDIR)/$(MOD_CONF)" \
|
||||
>> $(AP_SYSDIR)/httpd.conf ; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
rm -f $(ADAPTOR) $(MOD_CONF) core *~
|
||||
rm -rf .libs ../common/.libs
|
||||
rm -f *.o *.la *.lo *.slo
|
||||
rm -f ../common/*.o ../common/*.la ../common/*.lo ../common/*.slo
|
||||
|
||||
distclean: clean
|
||||
rm -rf config.log config.status GNUmakefile autom4te.cache
|
|
@ -1,3 +1,138 @@
|
|||
Installation
|
||||
************
|
||||
|
||||
Insure that the development packages of the prerequisites
|
||||
- libPropList-dev
|
||||
- apache(2)-dev)
|
||||
are installed. This includes the apxs tool and for Apache 2.x
|
||||
also the apr-config tool.
|
||||
|
||||
The canonical form to build the adaptor is:
|
||||
|
||||
./configure
|
||||
make
|
||||
make install
|
||||
|
||||
You may want to use on of the following configure options:
|
||||
|
||||
--with-apxs=[FILE|PATH]
|
||||
... to find the apxs tool to build the module. The default is apxs
|
||||
but you may want to specify apxs2 for systems that have multiple
|
||||
verions of apache installed. Or you may want to explicitly specify
|
||||
the path of the tool.
|
||||
|
||||
--with-server-api=[Apache|Apache2]
|
||||
... to explicitly specify the API as Apache or Apache2. The
|
||||
default is determined by the output of running apxs -q TARGET
|
||||
with the -v option. This output is grepped for "Apache/1"
|
||||
and will set the API to Apache if found otherwise it will
|
||||
assume Apache2. This option will be replaced dedicated
|
||||
feature tests in the future.
|
||||
|
||||
--with-apr-config=[FILE|PATH]
|
||||
... to find the apr-config tool for the Apaceh2 API. This is only
|
||||
evaluated for the Apache2 API. The apr-config tool is used to
|
||||
determine further compile and linker flags.
|
||||
|
||||
Configuration
|
||||
*************
|
||||
|
||||
To configure your Apache server to use the gsweb module you have the
|
||||
following options:
|
||||
|
||||
- run 'make httpdconfig' which will:
|
||||
1. use the apxs -a option to edit the httpd.conf file
|
||||
to add the LoadModule and AddModule directives
|
||||
2. append an Include directive to the httpd.conf file
|
||||
which includes the mod_gsweb.conf file generated during the build
|
||||
and installed during module installation into apxs -q SYSCONFDIR.
|
||||
|
||||
OR
|
||||
|
||||
- Manually configure you httpd.conf (or correponding configure) by
|
||||
adding the following lines in the appropriate places.
|
||||
|
||||
LoadModule gsweb_module [Path to APXS -q LIBEXECDIR]/mod_gsweb.so
|
||||
AddModule mod_gsweb.c
|
||||
|
||||
Then you should include the mod_gsweb.conf configuration file
|
||||
generated during the build:
|
||||
|
||||
Include /etc/httpd/mod_gsweb.conf
|
||||
|
||||
This file should contain the following GSWeb specific declarations:
|
||||
|
||||
GSWeb_ConfigFilePath /etc/httpd/conf/gsweb.conf
|
||||
# The path to the configuration file used by the module
|
||||
|
||||
GSWeb_Alias /GSWeb
|
||||
|
||||
<Location /GSWeb*>
|
||||
SetHandler GSWeb
|
||||
</Location>
|
||||
# If you use virtual hosts (Apache in localhost does not requiered them),
|
||||
# you can Include this file within the virtual host definitions.
|
||||
|
||||
|
||||
Then, create the file configuration file /etc/httpd/conf/gsweb.conf
|
||||
which contains parameters for GNUstepWeb Applications:
|
||||
|
||||
The format is (there is an example for values below):
|
||||
|
||||
{
|
||||
canDumpStatus = YES;
|
||||
//YES if server can display status (URL: /GSWeb/status)
|
||||
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
//URL of GSWExtensions Framework WebServerResources directory
|
||||
|
||||
applications = {
|
||||
ApplicationName = {
|
||||
//URL of GSWExtensions Framework WebServerResources directory.
|
||||
//It overides Global parameter
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
|
||||
//YES to say that this application can be listed when the
|
||||
//adaptor don't find an application
|
||||
canDump = YES;
|
||||
|
||||
instances = {
|
||||
InstanceNumber = {
|
||||
host = IPAdressOfTheComputerOnWhichRunTheApplication;
|
||||
port = ThePortListenByTheApplication;
|
||||
parameters = { transport= socket; };
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Example values for a localhost use:
|
||||
{
|
||||
canDumpStatus = YES;
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
applications = {
|
||||
MyApp = {
|
||||
canDump = YES;
|
||||
instances = {
|
||||
1 = {
|
||||
host = 127.0.0.1;
|
||||
port = 9001;
|
||||
parameters = { transport= socket; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Now, develop an application and run it !
|
||||
|
||||
Deprecated Documentation
|
||||
************************
|
||||
You have to do:
|
||||
|
||||
For Apache 1.x:
|
||||
|
|
1410
GSWAdaptors/Apache/config.guess
vendored
Executable file
1410
GSWAdaptors/Apache/config.guess
vendored
Executable file
File diff suppressed because it is too large
Load diff
1510
GSWAdaptors/Apache/config.sub
vendored
Executable file
1510
GSWAdaptors/Apache/config.sub
vendored
Executable file
File diff suppressed because it is too large
Load diff
4545
GSWAdaptors/Apache/configure
vendored
Executable file
4545
GSWAdaptors/Apache/configure
vendored
Executable file
File diff suppressed because it is too large
Load diff
140
GSWAdaptors/Apache/configure.ac
Normal file
140
GSWAdaptors/Apache/configure.ac
Normal file
|
@ -0,0 +1,140 @@
|
|||
# configure.ac for GNUstepWeb library
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
#
|
||||
# Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# Author: David Ayers <d.ayers@inode.at>
|
||||
#
|
||||
#
|
||||
# This file is part of the GNUstepWeb library
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by the
|
||||
# Free Software Foundation; either version 2, or (at your option) any
|
||||
# later version.
|
||||
#
|
||||
# This library is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with program; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
#
|
||||
AC_INIT
|
||||
AC_CONFIG_SRCDIR([mod_gsweb.c])
|
||||
AC_CANONICAL_TARGET([])
|
||||
|
||||
BIN_PATH=$PATH:/usr/local/sbin:/usr/apache/sbin:/usr/sbin:/usr/pkg/sbin
|
||||
|
||||
case "$target_os" in
|
||||
freebsd* | openbsd* )
|
||||
CPPFLAGS="$CPPFLAGS -I/usr/local/include"
|
||||
LDFLAGS="$LDFLAGS -L/usr/local/lib";;
|
||||
netbsd*) CPPFLAGS="$CPPFLAGS -I/usr/pkg/include"
|
||||
LDFLAGS="$LDFLAGS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib";;
|
||||
esac
|
||||
|
||||
# Some distributions associate libPropList with WindowMaker and therefor
|
||||
# place its files in X specific subdirectories. Therefore we search these
|
||||
# directories for headers and libraries when available.
|
||||
AC_PATH_X
|
||||
|
||||
if test "${have_x}" == yes; then
|
||||
CPPFLAGS="$CPPFLAGS -I${ac_x_includes}"
|
||||
LDFLAGS="$LDFLAGS -L${ac_x_libraries}"
|
||||
else
|
||||
# We will now really try to just make this work here by testing
|
||||
# certain common paths explicitly.
|
||||
AC_CHECK_FILE( /usr/X11/include/proplist.h,
|
||||
[ CPPFLAGS="$CPPFLAGS -I/usr/X11/include" ], [])
|
||||
AC_CHECK_FILE( /usr/X11/lib/libPropList.so,
|
||||
[ LDFLAGS="$LDFLAGS -L/usr/X11/lib" ], [])
|
||||
fi
|
||||
|
||||
AC_CHECK_HEADERS(proplist.h, [],
|
||||
[ AC_MSG_ERROR([ proplist.h not found. Set CPPFLAGS to add -I directives. ])])
|
||||
|
||||
AC_CHECK_LIB(PropList, PLGetProplistWithDescription, [],
|
||||
[ AC_MSG_ERROR([ libPropList not found. Set LDFLAGS to add -L directives. ])])
|
||||
|
||||
AC_ARG_WITH(apxs,
|
||||
[[ --with-apxs=[FILE|PATH] Path to apxs tool. Default is apxs.]],
|
||||
APXS_OPT="$withval", APXS_OPT=default)
|
||||
|
||||
AC_ARG_WITH(apr-config,
|
||||
[[ --with-apr-config=[FILE|PATH] Path to apr-config tool. Default is apr-config.]],
|
||||
APRCONFIG_NAME="$withval", APRCONFIG_NAME=apr-config)
|
||||
|
||||
# Set APXS_NAME
|
||||
# Default to apxs but remeber in APXS_OPT that no option was given.
|
||||
if test "$APXS_OPT" = "default" ; then
|
||||
APXS_NAME=apxs
|
||||
else
|
||||
APXS_NAME="$APXS_OPT"
|
||||
fi
|
||||
|
||||
# If the user specified an executable, use it. Otherwise search
|
||||
# for a usable apxs executable.
|
||||
if test -x "$APXS_NAME"; then
|
||||
APXS=APXS_NAME
|
||||
else
|
||||
AC_PATH_PROG(APXS, "$APXS_NAME", "no", $BIN_PATH)
|
||||
if test "$APXS_OPT" = "default" ; then
|
||||
if test "$APXS" = "no" -o "$APXS" = "" ; then
|
||||
AC_PATH_PROG(APXS2, apxs2, "no", $BIN_PATH)
|
||||
APXS="$APXS2"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$APXS" = "no" -o "$APXS" = ""; then
|
||||
AC_MSG_ERROR([ apxs tool not found. Check path or use --with-apxs and specify a full path to the apxs tool. ])
|
||||
fi
|
||||
|
||||
# This is currently testing for SERVERAPI which
|
||||
# currently should be Apache for 1.3 and Apache2 for 2
|
||||
# In the future it would be better to test for
|
||||
# the actual features which we are using and
|
||||
# generate a config.h with the correct defines.
|
||||
|
||||
AC_ARG_WITH(server-api,
|
||||
[[ --with-server-api=[Apache|Apache2] Specify SERVERAPI explicitly.]],
|
||||
server_api="$withval", server_api="no")
|
||||
if test ${server_api} != "no"; then
|
||||
SERVERAPI="${server_api}"
|
||||
else
|
||||
APXS_TARGET=`$APXS -q TARGET`
|
||||
AC_PATH_PROG(APACHE, "$APXS_TARGET", "no", $BIN_PATH)
|
||||
if ( $APACHE -v | grep "Apache@<:@^@<:@:space:@:>@@:>@*/1." > /dev/null 2>&1) ; then
|
||||
SERVERAPI=Apache
|
||||
elif ( $APACHE -v | grep "Apache@<:@^@<:@:space:@:>@@:>@*/2." > /dev/null 2>&1) ; then
|
||||
SERVERAPI=Apache2
|
||||
else
|
||||
SERVERAPI=unknown
|
||||
fi
|
||||
fi
|
||||
AC_MSG_CHECKING(server API)
|
||||
AC_MSG_RESULT($SERVERAPI)
|
||||
|
||||
if test "$SERVERAPI" = "unknown"; then
|
||||
AC_MSG_ERROR([ Could not determine Apache API version. Use --with-server-api and specify either Apache or Apache2. ])
|
||||
fi
|
||||
|
||||
if test ${SERVERAPI} == "Apache2"; then
|
||||
AC_PATH_PROG(APRCONFIG, "$APRCONFIG_NAME", "no", $BIN_PATH)
|
||||
fi
|
||||
|
||||
CONFIG_CPPFLAGS="$CPPFLAGS"
|
||||
CONFIG_LDFLAGS="$LDFLAGS"
|
||||
|
||||
AC_SUBST(APXS)
|
||||
AC_SUBST(APRCONFIG)
|
||||
AC_SUBST(SERVERAPI)
|
||||
AC_SUBST(CONFIG_CPPFLAGS)
|
||||
AC_SUBST(CONFIG_LDFLAGS)
|
||||
|
||||
AC_CONFIG_FILES([GNUmakefile])
|
||||
AC_OUTPUT
|
295
GSWAdaptors/Apache/install-sh
Executable file
295
GSWAdaptors/Apache/install-sh
Executable file
|
@ -0,0 +1,295 @@
|
|||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2003-09-24.23
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=
|
||||
transform_arg=
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
|
||||
usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
|
||||
or: $0 -d DIR1 DIR2...
|
||||
|
||||
In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
|
||||
In the second, create the directory path DIR.
|
||||
|
||||
Options:
|
||||
-b=TRANSFORMBASENAME
|
||||
-c copy source (using $cpprog) instead of moving (using $mvprog).
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrp installed files to GROUP.
|
||||
-m MODE $chmod installed files to MODE.
|
||||
-o USER $chown installed files to USER.
|
||||
-s strip installed files (using $stripprog).
|
||||
-t=TRANSFORM
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test -n "$1"; do
|
||||
case $1 in
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-c) instcmd=$cpprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--help) echo "$usage"; exit 0;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit 0;;
|
||||
|
||||
*) if test -z "$src"; then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test -z "$src"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src ;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
src=
|
||||
|
||||
if test -d "$dst"; then
|
||||
instcmd=:
|
||||
chmodcmd=
|
||||
else
|
||||
instcmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst ;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
dst=$dst/`basename "$src"`
|
||||
fi
|
||||
fi
|
||||
|
||||
# This sed command emulates the dirname command.
|
||||
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if test ! -d "$dstdir"; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
|
||||
oIFS=$IFS
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS=$oIFS
|
||||
|
||||
pathcomp=
|
||||
|
||||
while test $# -ne 0 ; do
|
||||
pathcomp=$pathcomp$1
|
||||
shift
|
||||
test -d "$pathcomp" || $mkdirprog "$pathcomp"
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
$doit $instcmd "$dst" \
|
||||
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||
|
||||
else
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
if test -z "$transformarg"; then
|
||||
dstfile=`basename "$dst"`
|
||||
else
|
||||
dstfile=`basename "$dst" $transformbasename \
|
||||
| sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename.
|
||||
test -z "$dstfile" && dstfile=`basename "$dst"`
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
$doit $instcmd "$src" "$dsttmp" &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
||||
|
||||
# Now remove or move aside any old file at destination location. We
|
||||
# try this two ways since rm can't unlink itself on some systems and
|
||||
# the destination file might be busy for other reasons. In this case,
|
||||
# the final cleanup might fail but the new file should still install
|
||||
# successfully.
|
||||
{
|
||||
if test -f "$dstdir/$dstfile"; then
|
||||
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||
|| {
|
||||
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||
(exit 1); exit
|
||||
}
|
||||
else
|
||||
:
|
||||
fi
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
fi &&
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
{
|
||||
(exit 0); exit
|
||||
}
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# End:
|
|
@ -55,7 +55,7 @@
|
|||
// Module Definition:
|
||||
|
||||
// Declare the module
|
||||
module GSWeb_Module;
|
||||
module gsweb_module;
|
||||
|
||||
|
||||
typedef struct _GSWeb_Config
|
||||
|
@ -71,7 +71,7 @@ typedef struct _GSWeb_Config
|
|||
* Declare ourselves so the configuration routines can find and know us.
|
||||
* We'll fill it in at the end of the module.
|
||||
*/
|
||||
module AP_MODULE_DECLARE_DATA GSWeb_Module;
|
||||
module AP_MODULE_DECLARE_DATA gsweb_module;
|
||||
|
||||
#include <ap_compat.h>
|
||||
#include <apr_pools.h>
|
||||
|
@ -130,7 +130,7 @@ static GSWeb_Config *
|
|||
GSWeb_GetServerConfig(server_rec *p_pServerRec)
|
||||
{
|
||||
return (GSWeb_Config *)ap_get_module_config(p_pServerRec->module_config,
|
||||
&GSWeb_Module);
|
||||
&gsweb_module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -219,7 +219,7 @@ GSWeb_SetDocRoot(cmd_parms *p_pCmdParams,
|
|||
|
||||
GSWDebugLog(pServerRec,"Start GSWeb_SetDocRoot");
|
||||
pConfig=(GSWeb_Config *)ap_get_module_config(pServerRec->module_config,
|
||||
&GSWeb_Module);
|
||||
&gsweb_module);
|
||||
pConfig->pszRoot = p_pszArg;
|
||||
GSWDebugLog(pServerRec,"Start GSWeb_SetDocRoot");
|
||||
return NULL;
|
||||
|
@ -902,7 +902,7 @@ static const command_rec GSWeb_Commands[] =
|
|||
{NULL}
|
||||
};
|
||||
|
||||
module AP_MODULE_DECLARE_DATA GSWeb_Module =
|
||||
module AP_MODULE_DECLARE_DATA gsweb_module =
|
||||
{
|
||||
STANDARD20_MODULE_STUFF,
|
||||
NULL,//x_create_dir_config, /* per-directory config creator */
|
||||
|
@ -960,7 +960,7 @@ handler_rec GSWeb_Handlers[] =
|
|||
* Module definition for configuration. If a particular callback is not
|
||||
* needed, replace its routine name below with the word NULL.
|
||||
*/
|
||||
module GSWeb_Module =
|
||||
module gsweb_module =
|
||||
{
|
||||
STANDARD_MODULE_STUFF,
|
||||
GSWeb_Init, // Init
|
||||
|
|
83
INSTALL
83
INSTALL
|
@ -46,12 +46,7 @@ Installing `gsweb'
|
|||
Go in the gsweb folder. make and make install.
|
||||
|
||||
4) Apaches modules for GNUstepWeb
|
||||
Still in the gsweb folder there is a GSWAdaptors/Apache folder.
|
||||
Change to that directory. 'su' to root and make. There's no make
|
||||
install. Instead you must copy the mod_gsweb.so module in you
|
||||
Apache libexec directory (something like /usr/apache/libexec).
|
||||
|
||||
At this point everything is done, still remains the Apache configuration:
|
||||
Please read GSWAdaptors/Apache/INSTALL
|
||||
|
||||
If you do not want the extensions you can compile with
|
||||
ADDITIONAL_OBJCFLAGS += -DNOEXTENSIONS
|
||||
|
@ -61,82 +56,6 @@ If you want to use TCSimpleDB you have to add
|
|||
ADDITIONAL_OBJCFLAGS += -DTCSDB
|
||||
in config.mak
|
||||
|
||||
Configurating Apache:
|
||||
=====================
|
||||
|
||||
In Apache httpd.conf file, add thoses lines:
|
||||
|
||||
LoadModule GSWeb_Module libexec/mod_gsweb.so
|
||||
AddModule mod_gsweb.c
|
||||
|
||||
And this one to specify the configuration file
|
||||
(for exemple /etc/httpd/conf/gsweb.conf)
|
||||
|
||||
GSWeb_ConfigFilePath /etc/httpd/conf/gsweb.conf
|
||||
|
||||
|
||||
If you use virtual hosts (Apache in localhost does not requiered them),
|
||||
add the following lines:
|
||||
|
||||
<Location /GSWeb*>
|
||||
SetHandler GSWeb
|
||||
</Location>
|
||||
|
||||
Then, create the file configuration file
|
||||
(for exemple /etc/httpd/conf/gsweb.conf)
|
||||
which contains parameters for GNUstepWeb Applications:
|
||||
|
||||
The format is(there is an example for values below):
|
||||
|
||||
{
|
||||
canDumpStatus = YES;
|
||||
//YES if server can display status (URL: /GSWeb/status)
|
||||
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
//URL of GSWExtensions Framework WebServerResources directory
|
||||
|
||||
applications = {
|
||||
ApplicationName = {
|
||||
//URL of GSWExtensions Framework WebServerResources directory.
|
||||
//It overides Global parameter
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
|
||||
//YES to say that this application can be listed when the
|
||||
//adaptor don't find an application
|
||||
canDump = YES;
|
||||
|
||||
instances = {
|
||||
InstanceNumber = {
|
||||
host = IPAdressOfTheComputerOnWhichRunTheApplication;
|
||||
port = ThePortListenByTheApplication;
|
||||
parameters = { transport= socket; };
|
||||
}
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Example values for a localhost use:
|
||||
{
|
||||
canDumpStatus = YES;
|
||||
GSWExtensionsFrameworkWebServerResources =
|
||||
"/GSW/GSWExtensions/WebServerResources";
|
||||
applications = {
|
||||
MyApp = {
|
||||
canDump = YES;
|
||||
instances = {
|
||||
1 = {
|
||||
host = 127.0.0.1;
|
||||
port = 9001;
|
||||
parameters = { transport= socket; };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Now, develop an application and run it !
|
||||
|
||||
|
|
Loading…
Reference in a new issue