
commit
c91f0380ae
11 changed files with 1544 additions and 0 deletions
@ -0,0 +1,10 @@
|
||||
Makefile.in |
||||
aclocal.m4 |
||||
autom4te.cache |
||||
compile |
||||
config.h.in |
||||
configure |
||||
depcomp |
||||
install-sh |
||||
ltmain.sh |
||||
missing |
@ -0,0 +1,55 @@
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR) |
||||
|
||||
cmake_policy(VERSION 2.6.0) |
||||
|
||||
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) |
||||
|
||||
INCLUDE(CheckIncludeFiles) |
||||
INCLUDE(CheckLibraryExists) |
||||
INCLUDE(FindPkgConfig) |
||||
INCLUDE(AddTargetProperties) |
||||
|
||||
|
||||
PROJECT(scgi-cgi C) |
||||
SET(PACKAGE_VERSION 0.1.0) |
||||
|
||||
IF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
||||
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE) |
||||
ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "") |
||||
|
||||
OPTION(GCC_LIBEVENT_STATIC "link libevent static") |
||||
|
||||
# libevent |
||||
pkg_check_modules (LIBEVENT REQUIRED libevent>=2.0) |
||||
IF(GCC_LIBEVENT_STATIC) |
||||
SET(MYLIBEVENT_LDFLAGS -Wl,-Bstatic ${LIBEVENT_LDFLAGS} -Wl,-Bdynamic) |
||||
ELSE(GCC_LIBEVENT_STATIC) |
||||
SET(MYLIBEVENT_LDFLAGS ${LIBEVENT_LDFLAGS}) |
||||
ENDIF(GCC_LIBEVENT_STATIC) |
||||
|
||||
|
||||
SET(MAIN_SOURCE scgi-cgi.c) |
||||
|
||||
SET(PACKAGE_NAME ${CMAKE_PROJECT_NAME}) |
||||
SET(PACKAGE_VERSION ${PACKAGE_VERSION}) |
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_BINARY_DIR}/config.h ESCAPE_QUOTES) |
||||
ADD_DEFINITIONS(-DHAVE_CONFIG_H) |
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) |
||||
|
||||
add_executable(scgi-cgi ${MAIN_SOURCE}) |
||||
|
||||
ADD_TARGET_PROPERTIES(scgi-cgi COMPILE_FLAGS "-std=gnu99 -Wall -g -Wshadow -W -pedantic -fPIC") |
||||
|
||||
# libev |
||||
TARGET_LINK_LIBRARIES(scgi-cgi ${MYLIBEVENT_LDFLAGS}) |
||||
ADD_TARGET_PROPERTIES(scgi-cgi COMPILE_FLAGS ${LIBEVENT_CFLAGS}) |
||||
|
||||
INSTALL(TARGETS scgi-cgi DESTINATION bin) |
||||
|
||||
# man page |
||||
|
||||
SET(CMAKE_MAN_DIR "share/man" CACHE STRING |
||||
"Install location for man pages (relative to prefix).") |
||||
MARK_AS_ADVANCED(CMAKE_MAN_DIR) |
||||
|
||||
INSTALL(FILES scgi-cgi.1 DESTINATION ${CMAKE_MAN_DIR}/man1) |
@ -0,0 +1,22 @@
|
||||
|
||||
The MIT License |
||||
|
||||
Copyright (c) 2013 Stefan Bühler |
||||
|
||||
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 |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
THE SOFTWARE. |
@ -0,0 +1,8 @@
|
||||
EXTRA_DIST=autogen.sh CMakeLists.txt config.h.cmake scgi-cgi.1 README.rst
|
||||
man1_MANS=scgi-cgi.1
|
||||
|
||||
AM_CFLAGS=$(LIBEVENT_CFLAGS)
|
||||
scgi_cgi_LDADD=$(LIBEVENT_LIBS)
|
||||
|
||||
bin_PROGRAMS=scgi-cgi
|
||||
scgi_cgi_SOURCES=scgi-cgi.c
|
@ -0,0 +1,50 @@
|
||||
Description |
||||
----------- |
||||
|
||||
:Homepage: |
||||
http://redmine.lighttpd.net/projects/scgi-cgi/wiki |
||||
|
||||
scgi-cgi is a SCGI application to run normal cgi applications. It doesn't |
||||
make CGI applications faster, but it allows you to run them on a different |
||||
host and with different user permissions (without the need for suexec). |
||||
|
||||
scgi-cgi is released under the `MIT license <http://git.lighttpd.net/scgi-cgi.cgi/tree/COPYING>`_ |
||||
|
||||
Usage |
||||
----- |
||||
|
||||
Examples for spawning a scgi-cgi instance with daemontools or runit:: |
||||
|
||||
#!/bin/sh |
||||
# run script |
||||
|
||||
exec spawn-scgi -n -s /var/run/scgi-cgi.sock -u www-default -U www-data -- /usr/bin/scgi-cgi |
||||
|
||||
|
||||
Build dependencies |
||||
------------------ |
||||
|
||||
* libevent (http://libevent.org/) |
||||
* cmake or autotools (for snapshots/releases the autotool generated files are included) |
||||
|
||||
|
||||
Build |
||||
----- |
||||
|
||||
* snapshot/release with autotools:: |
||||
|
||||
./configure |
||||
make |
||||
|
||||
* build from git: ``git clone git://git.lighttpd.net/scgi-cgi.git`` |
||||
|
||||
* with autotools:: |
||||
|
||||
./autogen.sh |
||||
./configure |
||||
make |
||||
|
||||
* with cmake (should work with snapshots/releases too):: |
||||
|
||||
cmake . |
||||
make |
@ -0,0 +1,38 @@
|
||||
#!/bin/sh |
||||
# Run this to generate all the initial makefiles, etc. |
||||
|
||||
if which glibtoolize >/dev/null 2>&1; then |
||||
LIBTOOLIZE=${LIBTOOLIZE:-glibtoolize} |
||||
else |
||||
LIBTOOLIZE=${LIBTOOLIZE:-libtoolize} |
||||
fi |
||||
LIBTOOLIZE_FLAGS="--copy --force" |
||||
ACLOCAL=${ACLOCAL:-aclocal} |
||||
AUTOHEADER=${AUTOHEADER:-autoheader} |
||||
AUTOMAKE=${AUTOMAKE:-automake} |
||||
AUTOMAKE_FLAGS="--add-missing --copy" |
||||
AUTOCONF=${AUTOCONF:-autoconf} |
||||
|
||||
ARGV0=$0 |
||||
|
||||
set -e |
||||
|
||||
if [ ! -f configure.ac -o ! -f COPYING ]; then |
||||
echo "Doesn't look like you're in the source directory" >&2 |
||||
exit 1 |
||||
fi |
||||
|
||||
run() { |
||||
echo "$ARGV0: running \`$@'" |
||||
$@ |
||||
} |
||||
|
||||
run rm -f aclocal.m4 ar-lib config.guess config.sub configure depcomp instal-sh ltmain.sh missing |
||||
run rm -rf m4 autom4te.cache |
||||
|
||||
run $LIBTOOLIZE $LIBTOOLIZE_FLAGS |
||||
run $ACLOCAL $ACLOCAL_FLAGS |
||||
run $AUTOHEADER |
||||
run $AUTOMAKE $AUTOMAKE_FLAGS |
||||
run $AUTOCONF |
||||
echo "Now type './configure ...' and 'make' to compile." |
@ -0,0 +1,13 @@
|
||||
MACRO(ADD_TARGET_PROPERTIES _target _name) |
||||
SET(_properties) |
||||
FOREACH(_prop ${ARGN}) |
||||
SET(_properties "${_properties} ${_prop}") |
||||
ENDFOREACH(_prop) |
||||
GET_TARGET_PROPERTY(_old_properties ${_target} ${_name}) |
||||
MESSAGE(STATUS "adding property to ${_target} ${_name}:" ${_properties}) |
||||
IF(NOT _old_properties) |
||||
# in case it's NOTFOUND |
||||
SET(_old_properties) |
||||
ENDIF(NOT _old_properties) |
||||
SET_TARGET_PROPERTIES(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}") |
||||
ENDMACRO(ADD_TARGET_PROPERTIES) |
@ -0,0 +1,6 @@
|
||||
/* |
||||
CMake autogenerated config.h file. Do not edit! |
||||
*/ |
||||
|
||||
#define PACKAGE_NAME "${PACKAGE_NAME}" |
||||
#define PACKAGE_VERSION "${PACKAGE_VERSION}" |
@ -0,0 +1,49 @@
|
||||
# -*- Autoconf -*- |
||||
# Process this file with autoconf to produce a configure script. |
||||
|
||||
AC_PREREQ([2.63]) |
||||
AC_INIT([scgi-cgi], [0.1.0], [lighttpd@stbuehler.de]) |
||||
AC_CONFIG_SRCDIR([scgi-cgi.c]) |
||||
AC_CONFIG_HEADERS([config.h]) |
||||
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign]) |
||||
|
||||
# Checks for programs. |
||||
AC_PROG_CC |
||||
AC_PROG_MAKE_SET |
||||
|
||||
# Checks for libraries. |
||||
|
||||
# libevent |
||||
PKG_CHECK_MODULES(LIBEVENT, libevent >= 2.0, [],[AC_MSG_ERROR("libevent >= 2.0 not found")]) |
||||
|
||||
# Checks for header files. |
||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h stdlib.h string.h sys/socket.h unistd.h]) |
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics. |
||||
AC_TYPE_PID_T |
||||
AC_TYPE_SIZE_T |
||||
|
||||
# Checks for library functions. |
||||
AC_FUNC_FORK |
||||
AC_CHECK_FUNCS([dup2]) |
||||
|
||||
# check for extra compiler options (warning options) |
||||
if test "${GCC}" = "yes"; then |
||||
CFLAGS="${CFLAGS} -Wall -W -Wshadow -pedantic -std=gnu99" |
||||
fi |
||||
|
||||
AC_ARG_ENABLE(extra-warnings, |
||||
AC_HELP_STRING([--enable-extra-warnings],[enable extra warnings (gcc specific)]), |
||||
[case "${enableval}" in |
||||
yes) extrawarnings=true ;; |
||||
no) extrawarnings=false ;; |
||||
*) AC_MSG_ERROR(bad value ${enableval} for --enable-extra-warnings) ;; |
||||
esac],[extrawarnings=false]) |
||||
|
||||
if test x$extrawarnings = xtrue; then |
||||
CFLAGS="${CFLAGS} -g -O2 -g2 -Wall -Wmissing-declarations -Wdeclaration-after-statement -Wno-pointer-sign -Wcast-align -Winline -Wsign-compare -Wnested-externs -Wpointer-arith -Wl,--as-needed -Wformat-security" |
||||
fi |
||||
|
||||
AC_CONFIG_FILES([Makefile]) |
||||
AC_OUTPUT |
@ -0,0 +1,30 @@
|
||||
.TH scgi-cgi 1 "Oct 1, 2013" |
||||
. |
||||
.SH NAME |
||||
. |
||||
scgi-cgi \- a SCGI application to run cgi applications |
||||
. |
||||
.SH OPTIONS |
||||
. |
||||
.TP 8 |
||||
.B \-b <binary> |
||||
Executable to start instead of INTERPRETER or SCRIPT_FILENAME from SCGI environment. |
||||
.TP 8 |
||||
.B \-c <number> |
||||
Maximum number of connections (default 16) |
||||
.TP 8 |
||||
.B \-v |
||||
Shows version information and exits |
||||
. |
||||
.SH DESCRIPTION |
||||
scgi-cgi is a SCGI application to run normal cgi applications. It doesn't |
||||
make CGI applications faster, but it allows you to run them on a different |
||||
host and with different user permissions (without the need for suexec). |
||||
.P |
||||
For running you probably want spawn-fcgi (http://redmine.lighttpd.net/projects/spawn-fcgi) |
||||
.SH EXAMPLE |
||||
Example usage: |
||||
|
||||
spawn-fcgi -n -s /var/run/scgi-cgi.sock -u www-default -U www-data -- /usr/bin/scgi-cgi |
||||
.SH AUTHOR |
||||
scgi-cgi was written by Stefan Bühler. |
Loading…
Reference in new issue